{"id":"b8078952-ec22-4a22-9c25-8e14c52b8f9f","entityType":"agent","slug":"clawhub-skillmelody-article-html-to-ppt","name":"MeowClaw PPT Smith","canonicalUrl":"https://www.xpersona.co/agent/clawhub-skillmelody-article-html-to-ppt","canonicalPath":"/agent/clawhub-skillmelody-article-html-to-ppt","generatedAt":"2026-10-09T21:12:39.024Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:24:47.923Z","emptyReason":null},"description":"Create editable PPTX from documents, reconstruct supplied slide design images, or preserve native PPTX templates. Design with structured native objects and real previews; image-generation tools are optional. Use for source-based presentations, design-to-PPT reconstruction, template reuse, and revisions to PPT Smith tasks.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.6K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s170nrfswjm6b85r9mbasnfbj9884xq5:article-html-to-ppt","sourceUrl":"https://clawhub.ai/skillmelody/article-html-to-ppt","homepage":"https://clawhub.ai/skillmelody/skills/article-html-to-ppt","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/skillmelody/article-html-to-ppt","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/skillmelody/skills/article-html-to-ppt","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":68,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"MeowClaw PPT Smith technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:24:47.923Z","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-09T13:24:47.923Z","emptyReason":null},"stars":null,"forks":null,"downloads":2574,"packageName":null,"latestVersion":"5.1.1","tractionLabel":"2.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:24:47.922Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T13:24:47.923Z","lastCrawledAt":"2026-10-09T13:24:47.922Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T13:24:47.922Z","lastVerifiedAt":null,"highlights":[{"version":"5.1.1","createdAt":"2026-09-23T08:53:46.384Z","changelog":"v5.1.1：同步模板风格参考与原生模板保留路线，补充 README 作品画廊与公开示例；保留无生图原生设计流程。","fileCount":288,"zipByteSize":678194},{"version":"5.1.0","createdAt":"2026-09-21T14:01:42.604Z","changelog":"v5.1.0：简化 create/recreate/template 三种使用场景；支持无生图工具的原生设计与真实预览；新增紧凑输入、字体预检、对象补丁和版本绑定审核继承。保留 v5.0 的 20 页案例（447 个原生对象及 1 张可替换图片）和 v5.1 的 6 页案例（120 个原生对象）。公开包排除开发测试、日志和临时产物。","fileCount":286,"zipByteSize":667995},{"version":"5.0.1","createdAt":"2026-09-21T09:40:43.500Z","changelog":"V5.0.1: portable declarative-design runtime, Windows-safe task I/O, and streamlined public operating references. Legacy V4 routes remain compatible.","fileCount":300,"zipByteSize":670587},{"version":"5.0.0-alpha.1","createdAt":"2026-09-20T10:46:41.996Z","changelog":"Alpha preview: declarative design runtime with checked content/design/scene/assets JSON, fixed native-object rendering, isolated preview, hash-bound review, and fail-closed delivery. V4 Bespoke, Template, and Standard routes remain compatible.","fileCount":314,"zipByteSize":700788},{"version":"4.1.0-beta.1","createdAt":"2026-09-10T09:02:22.427Z","changelog":"Public Beta: model-directed Bespoke and Template authoring, diagnostic Standard route, source-bound QA, real rendering, speaker notes, and public bundle hardening.","fileCount":304,"zipByteSize":663242},{"version":"3.0.2","createdAt":"2026-08-11T06:47:09.374Z","changelog":"License update: MeowClaw Lab Non-Commercial Source License v1.0 — third-party commercial use requires prior written permission; author (MeowClaw Lab) and its written designees retain full commercial rights.","fileCount":252,"zipByteSize":555921},{"version":"3.0.1","createdAt":"2026-08-10T07:15:41.617Z","changelog":"公开 PMO 生产运行时；发行包过滤本地测试与生成物。","fileCount":250,"zipByteSize":552171},{"version":"3.0.0","createdAt":"2026-08-10T04:56:59.997Z","changelog":"v3.0.0：双路径生成、八条专业路线、视觉叙事与证据质量门禁；公开发行包仅含核心技能文件与公开样例，不含本地测试、生成产物或私有生产包。","fileCount":178,"zipByteSize":361769}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s170nrfswjm6b85r9mbasnfbj9884xq5:article-html-to-ppt","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s170nrfswjm6b85r9mbasnfbj9884xq5:article-html-to-ppt` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/skillmelody/article-html-to-ppt before using production credentials."],"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-skillmelody-article-html-to-ppt/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skillmelody-article-html-to-ppt/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skillmelody-article-html-to-ppt/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skillmelody-article-html-to-ppt/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skillmelody-article-html-to-ppt/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skillmelody-article-html-to-ppt/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-09T21:12:39.021Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skillmelody-article-html-to-ppt/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skillmelody-article-html-to-ppt/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skillmelody-article-html-to-ppt/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skillmelody-article-html-to-ppt/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":"medium","updatedAt":"2026-10-09T13:24:47.923Z","emptyReason":null},"readme":"Skill: MeowClaw PPT Smith\n\nOwner: skillmelody\n\nSummary: Create editable PPTX from documents, reconstruct supplied slide design images, or preserve native PPTX templates. Design with structured native objects and real previews; image-generation tools are optional. Use for source-based presentations, design-to-PPT reconstruction, template reuse, and revisions to PPT Smith tasks.\n\nTags: alpha:5.0.1, articles:4.1.0-beta.1, beta:4.1.0-beta.1, design:5.1.1, dynamic:3.0.1, feishu:3.0.1, latest:5.1.1, powerpoint:4.1.0-beta.1, ppt:5.1.1, slides:4.1.0-beta.1\n\nVersion history:\n\nv5.1.1 | 2026-09-23T08:53:46.384Z | user\n\nv5.1.1：同步模板风格参考与原生模板保留路线，补充 README 作品画廊与公开示例；保留无生图原生设计流程。\n\nv5.1.0 | 2026-09-21T14:01:42.604Z | user\n\nv5.1.0：简化 create/recreate/template 三种使用场景；支持无生图工具的原生设计与真实预览；新增紧凑输入、字体预检、对象补丁和版本绑定审核继承。保留 v5.0 的 20 页案例（447 个原生对象及 1 张可替换图片）和 v5.1 的 6 页案例（120 个原生对象）。公开包排除开发测试、日志和临时产物。\n\nv5.0.1 | 2026-09-21T09:40:43.500Z | user\n\nV5.0.1: portable declarative-design runtime, Windows-safe task I/O, and streamlined public operating references. Legacy V4 routes remain compatible.\n\nv5.0.0-alpha.1 | 2026-09-20T10:46:41.996Z | user\n\nAlpha preview: declarative design runtime with checked content/design/scene/assets JSON, fixed native-object rendering, isolated preview, hash-bound review, and fail-closed delivery. V4 Bespoke, Template, and Standard routes remain compatible.\n\nv4.1.0-beta.1 | 2026-09-10T09:02:22.427Z | user\n\nPublic Beta: model-directed Bespoke and Template authoring, diagnostic Standard route, source-bound QA, real rendering, speaker notes, and public bundle hardening.\n\nv3.0.2 | 2026-08-11T06:47:09.374Z | user\n\nLicense update: MeowClaw Lab Non-Commercial Source License v1.0 — third-party commercial use requires prior written permission; author (MeowClaw Lab) and its written designees retain full commercial rights.\n\nv3.0.1 | 2026-08-10T07:15:41.617Z | user\n\n公开 PMO 生产运行时；发行包过滤本地测试与生成物。\n\nv3.0.0 | 2026-08-10T04:56:59.997Z | user\n\nv3.0.0：双路径生成、八条专业路线、视觉叙事与证据质量门禁；公开发行包仅含核心技能文件与公开样例，不含本地测试、生成产物或私有生产包。\n\nv2.1.4 | 2026-07-30T12:19:51.236Z | user\n\nEmergency rollback release: exact PPT Smith 2.0.7 implementation from GitHub commit 99221090ff14d8263e1e8dda0e712f1500f421f7. Version 2.1.4 is distribution-only because registry versions are immutable.\n\nv2.1.3 | 2026-07-30T12:14:08.010Z | user\n\nEmergency rollback: restore the exact PPT Smith 2.0.7 implementation from GitHub commit 99221090ff14d8263e1e8dda0e712f1500f421f7 after the 2.1.x quality regression.\n\nv2.1.2 | 2026-07-28T11:23:48.173Z | user\n\nScan-clean security hardening: safe macOS renderer argv handling, contained cleanup, minimized font disclosure, static safety-test imports, Visual Planner, semantic renderers, and verified Standard delivery.\n\nv2.1.1 | 2026-07-28T11:00:44.033Z | user\n\nSecurity-hardened 2.1: safe macOS renderer argv handling, contained cleanup, minimized font disclosure, Visual Planner, semantic renderers, and verified Standard delivery.\n\nv2.1.0 | 2026-07-28T10:17:22.084Z | user\n\nVisual Planner, editable semantic renderers, Deck Rhythm, stronger overflow/contrast/arrow safety, and verified Standard delivery.\n\nv2.0.7 | 2026-07-21T10:33:21.655Z | user\n\nAdd native connector routing and diagram topology gates while preserving the MeowClaw PPT Smith name and SEO copy.\n\nv2.0.6 | 2026-07-21T09:32:29.287Z | user\n\nImprove discoverability by standardizing the public display name as MeowClaw PPT Smith.\n\nv2.0.5 | 2026-07-21T07:46:35.926Z | user\n\nFix native process connectors: one arrowed line object bound to both endpoint shapes; block unsupported complex-diagram downgrades; detect stray solid-color blocks; preserve truthful renderer-unavailable status.\n\nv2.0.4 | 2026-07-20T12:15:15.148Z | user\n\nClean public registry recovery release for the engineering-complete PPTSmith v2.0 capability line; publishes the correct GitHub source package, excludes scanner-triggering test-only harness files, preserves backward-compatible routing, and links verified acceptance scope.\n\nv2.0.3 | 2026-07-20T11:59:01.157Z | user\n\nPublic registry recovery release for the engineering-complete PPTSmith v2.0 capability line; Chinese-first docs, backward-compatible article-html-to-ppt routing, verified LibreOffice acceptance scope, and GitHub source linkage.\n\nv2.0.2 | 2026-07-20T11:21:53.261Z | user\n\nRegistry recovery and public-distribution patch for the PPTSmith v2.0 capability line; Chinese-first docs, backward-compatible article-html-to-ppt routing, and verified GitHub source linkage.\n\nv2.0.1 | 2026-07-20T10:50:45.739Z | user\n\nChinese-first public documentation for PPTSmith v2.0, synchronized GitHub source metadata, and explicit open-source/commercial boundaries. Includes the v2 core engine, five foundational visual systems, dual builders, component routing, production profiles, and evidence-backed QA.\n\nv2.0.0 | 2026-07-20T02:39:43.919Z | user\n\nv2.0: dual production builders (python-pptx and PptxGenJS), single-command Fast/Standard pipeline, production template packs, regression matrix, structural QA, and truthful Premium render gating.\n\nv1.2.0 | 2026-07-16T10:36:27.175Z | user\n\nRename public identity to MeowClaw PPTSmith, add v1.2 contract engineering docs, and include the first v1.5 python_pptx runtime builder. v2.0 is not marked complete.\n\nv1.1.1 | 2026-07-14T13:22:05.520Z | user\n\nUpgrade default palette contracts to restrained low-chroma colors, add warm neutral surfaces, and remove meowclaw-ip enum residue from templates.\n\nv1.1.0 | 2026-07-13T11:02:18.965Z | user\n\nAdd fixed hex palette contracts per persona style; add Style & Palette Confirmation Gate; remove undesigned meowclaw-ip style\n\nv1.0.6 | 2026-07-12T11:52:24.461Z | user\n\nApply master PPT production workflow and localized raster fallback rules for complex relationship components.\n\nv1.0.5 | 2026-07-10T10:16:06.315Z | user\n\nAdd explicit Feishu/Lark cloud export privacy notice and pre-upload confirmation gate for sensitive drafts.\n\nv1.0.4 | 2026-07-10T10:11:45.102Z | user\n\nAdd low-rework persona-fit PPT defaults for product owners, Agent engineers, and knowledge creators; clarify SVG/HTML preview policy and consulting-style QA gates.\n\nv1.0.3 | 2026-07-02T12:36:11.455Z | user\n\nAdd CyberPPT-inspired content lock, slide manifest, and visual QA gates; refresh public metadata.\n\nv1.0.2 | 2026-07-01T02:55:25.131Z | user\n\nAdd direct PPTX and native dynamic PPTX export routing, plus Feishu Slides delivery guidance.\n\nv1.0.1 | 2026-06-30T08:47:49.739Z | user\n\nAdd ClawHub skill card and keep formal article-to-deck workflow release metadata complete.\n\nv1.0.0 | 2026-06-30T08:44:56.298Z | user\n\nInitial release: formal brand-consistent article-to-deck workflow with source-rights, capability, and verification gates.\n\nArchive index:\n\nArchive v5.1.1: 288 files, 678194 bytes\n\nFiles: assets/samples/v5.0-latin-america-ai-zh-evidence.json (9548b), assets/samples/v5.1-no-image-policy-evidence.json (6662b), builders/__init__.py (379b), builders/base.py (2761b), builders/custom_adapter.py (1506b), builders/html_svg_adapter.py (1692b), builders/officecli_adapter.py (1681b), builders/pptxgenjs_adapter.py (10149b), builders/python_pptx_adapter.py (58307b), builders/registry.py (904b), builders/selector.py (12226b), engine/__init__.py (413b), engine/__main__.py (23144b), engine/authored_page.py (17313b), engine/autonomy.py (8287b), engine/bespoke_quality.py (8419b), engine/bespoke_runtime.py (12966b), engine/bespoke.py (5549b), engine/chart_inference.py (7550b), engine/compile.py (13064b), engine/component_atlas_report.py (5290b), engine/component_atlas.py (52527b), engine/component_composer.py (19441b), engine/component_intent.py (6695b), engine/component_inventory.py (6115b), engine/content_contract.py (4548b), engine/content_integrity_gate.py (2905b), engine/coverage.py (6642b), engine/deck_diversity.py (2180b), engine/design_contract.py (6007b), engine/design_scene/__init__.py (99b), engine/design_scene/authoring.py (10291b), engine/design_scene/backend.py (17837b), engine/design_scene/cli.py (23712b), engine/design_scene/contract.py (18296b), engine/design_scene/incremental.py (6131b), engine/design_scene/isolation_probe.py (3088b), engine/design_scene/pipeline.py (22413b), engine/design_scene/preflight.py (7924b), engine/design_scene/runtime.py (11783b), engine/design_scene/store.py (7748b), engine/design_scene/targets.py (2590b), engine/design_scene/windows_io.py (6523b), engine/design_scene/worker.py (1504b), engine/diagram.py (16777b), engine/evidence_ledger.py (5234b), engine/evidence_outline.py (1997b), engine/extractive_ir.py (6437b), engine/font_metrics.py (2676b), engine/high_fidelity_guard.py (1680b), engine/layout.py (35407b), engine/manuscript_component_planner.py (24298b), engine/manuscript_strict_preview.py (18526b), engine/metrics/arial-unicode-ms.json (1004b), engine/metrics/helvetica.json (1006b), engine/metrics/songti-sc.json (1013b), engine/metrics/system-font.json (1004b), engine/model_authored_quality.py (7016b), engine/model_template_component_runtime.py (15891b), engine/model_template_composer.py (11248b), engine/narrative_contract.py (7354b), engine/policy.py (9161b), engine/pptx_builder.py (10249b), engine/pptxgenjs_builder.py (3272b), engine/presentation_subset.py (1543b), engine/production_request.py (8964b), engine/proposal_apply.py (5333b), engine/provenance.py (6984b), engine/qa_plan.py (4370b), engine/refine_renderers.py (10713b), engine/refine_spec.py (3930b), engine/route_policy.py (801b), engine/source_doc.py (4625b), engine/speaker_notes.py (5675b), engine/strict_template.py (68046b), engine/structural_parser.py (9664b), engine/style_pack.py (7547b), engine/style_validator.py (5626b), engine/template_component_adaptation.py (11989b), engine/template_delivery_quality.py (5038b)\n\nFile v5.1.1:SKILL.md\n\n---\nname: \"article-html-to-ppt\"\ndescription: \"Create editable PPTX from documents, reconstruct supplied slide design images, or preserve native PPTX templates. Design with structured native objects and real previews; image-generation tools are optional. Use for source-based presentations, design-to-PPT reconstruction, template reuse, and revisions to PPT Smith tasks.\"\nmetadata:\n  display_name: \"MeowClaw PPT Smith\"\n  english_alias: \"MeowClaw PPT Smith\"\n  public_slug: \"meowclaw-pptsmith\"\n  version: \"5.1.1\"\n  compatibility_aliases: [\"article-html-to-ppt\", \"meowclaw-decksmith\"]\n---\n\n# MeowClaw PPT Smith\n\n## Select the user's intent\n\n| User wants | Route | Read when selected |\n| --- | --- | --- |\n| Make a presentation from a document, optionally with brand/style references | `create` (default) | [Declarative workflow](references/declarative-design.md) |\n| Reconstruct supplied complete slide designs as editable objects | `recreate` | [Declarative workflow](references/declarative-design.md) |\n| Reuse a native PPTX template and its components | `template` | [Template workflow](references/routes/v4-template-route.md) |\n\nInfer intent, audience, language and page budget from the request. Ask only about material conflicts, such as exact image reconstruction versus native template preservation. A style image does not imply exact reconstruction. A PPTX supplied only as a style reference uses create; preserve masters/native layouts only when requested. For template-inspired redesign, read [template visual design](references/template-visual-design.md). A source page count does not prescribe slide count.\n\n## Shared authoring contract\n\nRead the full source once, preserve page/evidence anchors, then use the relevant evidence for each slide. The model owns narrative, assertion titles, visual encoding and page-specific design. The backend executes those decisions; it does not replace them with generic extractive layouts. Insufficient authoring capability returns `MODEL_AUTHORING_REQUIRED`.\n\nChoose typography, palette, composition and visual rhythm for the current content, audience and references. Do not copy the last task's colours, card layout, footer or brand. Reusable components are primitives, not mandatory page styles.\n\nKeep checked text/data in content records, geometry in scene records, and detailed reasoning, sources and qualifications in speaker notes. Unknown chart data stays unknown. Reconstructable charts/tables use native data; isolated pictures are replaceable assets, not editable internal objects. Do not insert a whole-page screenshot to claim editable reconstruction. Disclose deliberate simplifications and accepted raster exceptions.\n\n## Efficient native design and revisions\n\nFor create/recreate run `python3 -m engine design capabilities`. The host supplies model capabilities; local code cannot infer whether the current model sees or generates images.\n\nFor **create**, author structured design, render a native candidate to PNG, inspect and revise it. Image generation is optional for independent illustrations or an explicitly requested external design target. No image tool is needed for ordinary native design. Do not convert your own preview into a fake external reference or claim self-comparison proves design quality.\n\nFor **recreate**, visually read the supplied complete target, verify its content against the source, and preserve approved geometry. Do not invent source numbers from chart pixel heights. Keep original targets, approved changes and actual PPTX previews distinct.\n\nUse the compact author format and page-scoped context described in the selected guide. The fixed compiler expands style/source/symbol references into validated native objects. Do not execute task-authored scripts to bypass unsupported features.\n\nRun the real-office font preflight before expanding a large deck. Check representative compositions first; continue without mandatory user approval unless the request needs a consequential choice. Fontconfig matching alone does not prove actual Chinese font rendering.\n\nDefault tool feedback is a summary. Read full reports only for relevant failures; keep task state and evidence in files. Use guarded object patches instead of rewriting the deck. For changed builds, inherit independent page review only through the verified inheritance command; changed content, notes, geometry, assets, fonts or renderer invalidate the affected evidence.\n\n## Review and delivery\n\nActual PPTX rendering, checked content/data, resolved fonts, structural editability, target-software edit/save/reopen checks, and independent visual review are required. Review every new or changed page at readable resolution; a contact sheet alone cannot verify small text.\n\nOriginal design without an external target uses `reconstruction: not_applicable`; design, content, fonts and editability still require approval. Reconstruction with a target requires fidelity approval. Reused review must retain its original reviewer observations and evidence, never a fabricated second identity. A generator's own review is not independent.\n\n`candidate_unreviewed`, `draft`, and `render_incomplete` are not final. Deliver only when the exact candidate passes the selected route's gates. User-visible output includes editable PPTX, actual preview and material editing limitations.\n\nQuality acceptance is separate from OS isolation. `--isolation auto` chooses available macOS isolation or host execution. Host may deliver after quality acceptance, while reporting OS isolation unverified. `--require-os-isolation` remains binding; do not downgrade it. Do not claim untested PowerPoint/WPS or cross-platform parity.\n\n## Compatibility only\n\nLegacy `new_design` and `style_transfer` init arguments map to create; register requested style references explicitly. Existing saved legacy tasks retain their old target contract. Draft is a state/diagnostic option, not another production promise.\n\nBespoke remains an advanced compatibility authoring route where needed: read [its guide](references/routes/v4-bespoke-route.md). Template preserves native assets and never silently falls back to blank-slide reconstruction. Their detailed [V4 authoring contract](references/routes/v4-authoring-contract.md) loads only for those routes.\n\nStandard / Engineering remains available for internal diagnostics and explicit engineering drafts, not as a substitute for final model-authored design. Do not load all compatibility guides for a normal create task.\n\nFile v5.1.1:README.md\n\n# MeowClaw PPT Smith\n\n<p align=\"center\">\n  <img src=\"assets/branding/pptsmith-github-zh.png\" alt=\"MeowClaw PPT Smith 图标\" width=\"836\">\n</p>\n\n> [English](README.en.md) · [Skill 执行入口](SKILL.md) · [工作流](references/declarative-design.md) · [可编辑样例](assets/samples/v5.1-no-image-policy-native.pptx)\n\n把源文档、设计图或原生 PPT 模板，转成有来源、有真实预览、可以继续修改的演示文稿。模型负责理解内容和设计页面，固定后端负责生成原生对象与核验交付。\n\n**当前版本：`5.1.1`。** 公共标识为 `meowclaw-pptsmith`，兼容安装名为 `article-html-to-ppt`、`meowclaw-decksmith`；许可证为 Apache-2.0。\n\n本次更新明确区分原生模板保留与模板风格参考，并补充可选生图设计目标、按页内容绑定及逐页视觉审核。下方的 v5.0、v5.1 历史样例保留原始版本与统计口径。\n\n## 作品画廊\n\n以下收录 `assets/samples/` 中的示例图，按**图片首次加入仓库的日期倒序**排列；日期不是 PPT 的制作日期。点击缩略图查看原图，较早的设计与架构示例可展开查看。可编辑对象数仅对应各自的交付 PPTX，历史案例的验证范围见下文。\n\n<table>\n  <tr>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5.1-template-image-guided-4page-2col-overview.png\"><img src=\"assets/samples/v5.1-template-image-guided-4page-2col-overview.png\" alt=\"生图设计后原生重建，四页两列总览\" width=\"100%\"></a><br><strong>2026-09-23 · 模板风格重建</strong><br><small>4 页 · 179 个可编辑对象 · <a href=\"assets/samples/v5.1-template-image-guided-4page.pptx\">下载 PPTX</a></small></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5.1-template-native-4page-2col-overview.png\"><img src=\"assets/samples/v5.1-template-native-4page-2col-overview.png\" alt=\"原生模板组件复用，四页两列总览\" width=\"100%\"></a><br><strong>2026-09-23 · 原生组件复用</strong><br><small>4 页 · 61 个可编辑对象 · <a href=\"assets/samples/v5.1-template-native-4page.pptx\">下载 PPTX</a></small></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5.1-no-image-policy-page-01.png\"><img src=\"assets/samples/v5.1-no-image-policy-page-01.png\" alt=\"v5.1 无生图政策解读封面\" width=\"100%\"></a><br><strong>2026-09-21 · v5.1 无生图封面</strong><br><small>6 页政策解读中的第 1 页 · <a href=\"assets/samples/v5.1-no-image-policy-native.pptx\">下载 PPTX</a></small></td>\n  </tr>\n  <tr>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5.1-no-image-policy-page-02.png\"><img src=\"assets/samples/v5.1-no-image-policy-page-02.png\" alt=\"v5.1 无生图政策解读三年目标页\" width=\"100%\"></a><br><strong>2026-09-21 · v5.1 目标页</strong><br><small>同一份 6 页可编辑政策 PPT</small></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5.1-no-image-policy-page-06.png\"><img src=\"assets/samples/v5.1-no-image-policy-page-06.png\" alt=\"v5.1 无生图政策解读行动页\" width=\"100%\"></a><br><strong>2026-09-21 · v5.1 行动页</strong><br><small>同一份 6 页可编辑政策 PPT</small></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5.0-latin-america-ai-zh-overview.png\"><img src=\"assets/samples/v5.0-latin-america-ai-zh-overview.png\" alt=\"v5.0 拉美 AI 与就业研究二十页总览\" width=\"100%\"></a><br><strong>2026-09-21 · v5.0 研究解读</strong><br><small>20 页 · 447 个原生可编辑对象 · <a href=\"assets/samples/v5.0-latin-america-ai-zh-native.pptx\">下载 PPTX</a></small></td>\n  </tr>\n  <tr>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5-declarative-design-native-preview.png\"><img src=\"assets/samples/v5-declarative-design-native-preview.png\" alt=\"v5 声明式设计原生预览\" width=\"100%\"></a><br><strong>2026-09-20 · v5 设计预览</strong><br><small>早期声明式设计示例</small></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/mgi-template-v4-31-page-contact-sheet.png\"><img src=\"assets/samples/mgi-template-v4-31-page-contact-sheet.png\" alt=\"V4 模板路线三十一页联系表\" width=\"100%\"></a><br><strong>2026-09-10 · V4 Template</strong><br><small>31 页研究报告演示</small></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/state-ai-2025-independent-bespoke-23-page-contact-sheet.png\"><img src=\"assets/samples/state-ai-2025-independent-bespoke-23-page-contact-sheet.png\" alt=\"V4 Bespoke 路线二十三页联系表\" width=\"100%\"></a><br><strong>2026-09-10 · V4 Bespoke</strong><br><small>23 页独立设计演示</small></td>\n  </tr>\n</table>\n\n<details>\n<summary>展开更早的 9 张示例图（2026-08 → 2026-07）</summary>\n\n<table>\n  <tr>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v120-deepseek-v4-pro-state-of-ai-contact-sheet.png\"><img src=\"assets/samples/v120-deepseek-v4-pro-state-of-ai-contact-sheet.png\" alt=\"早期 State of AI 模型路径演示联系表\" width=\"100%\"></a><br><strong>2026-08-11 · State of AI 对照稿</strong></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/model-path-comparison-grid.png\"><img src=\"assets/samples/model-path-comparison-grid.png\" alt=\"模型路径对照网格\" width=\"100%\"></a><br><strong>2026-08-11 · 模型路径对照</strong></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/stateofai-2025-final-contact-sheet.png\"><img src=\"assets/samples/stateofai-2025-final-contact-sheet.png\" alt=\"早期 State of AI 演示联系表\" width=\"100%\"></a><br><strong>2026-07-21 · State of AI 演示</strong></td>\n  </tr>\n  <tr>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/ai-project-core-upgrade-contact-sheet.png\"><img src=\"assets/samples/ai-project-core-upgrade-contact-sheet.png\" alt=\"AI 项目核心升级示例联系表\" width=\"100%\"></a><br><strong>2026-07-21 · AI 项目升级</strong></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/ai-project-model-routing.png\"><img src=\"assets/samples/ai-project-model-routing.png\" alt=\"AI 项目模型路由示意\" width=\"100%\"></a><br><strong>2026-07-21 · 模型路由</strong></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/ai-project-agent-router.png\"><img src=\"assets/samples/ai-project-agent-router.png\" alt=\"AI 项目 Agent Router 示意\" width=\"100%\"></a><br><strong>2026-07-21 · Agent Router</strong></td>\n  </tr>\n  <tr>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/ai-project-execution-layer.png\"><img src=\"assets/samples/ai-project-execution-layer.png\" alt=\"AI 项目执行层示意\" width=\"100%\"></a><br><strong>2026-07-21 · 执行层</strong></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/palette-upgrade-overview.png\"><img src=\"assets/samples/palette-upgrade-overview.png\" alt=\"早期配色升级总览\" width=\"100%\"></a><br><strong>2026-07-21 · 配色升级</strong></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/native-architecture-diagram.png\"><img src=\"assets/samples/native-architecture-diagram.png\" alt=\"原生架构示意图\" width=\"100%\"></a><br><strong>2026-07-21 · 原生架构</strong></td>\n  </tr>\n</table>\n\n</details>\n\n## 适用场景：三个入口\n\n| 你要完成的事 | 输入 | 路线与结果 |\n| --- | --- | --- |\n| 把报告、政策文件、PRD、文章做成汇报或课程 | 源文档；可选品牌、风格参考图 | **create 资料生成**：按内容与受众设计，生成原生 PPT 和真实预览 |\n| 把设计师交稿、完整幻灯片设计图还原为可编辑 PPT | 整页设计图；用于核对文字和数值的源文档 | **recreate 设计图还原**：重建对象，并对照冻结目标检查差异 |\n| 使用公司或客户的 PPTX 模板，且必须保留母版或原生组件 | 原生 PPTX 模板与源材料 | **template 模板保留**：分析并复用原生组件，按模板视觉规则补充缺口 |\n\n模板仅供风格参考、允许重新设计时使用 create；要求忠实还原已批准的整页设计图时使用 recreate。必须保留原生母版和组件时使用独立的 Template 工作流。资料页数不等于演示页数，页数预算应依据受众、目的和信息密度确定。\n\n**设计风格不固定。** 配色、字体、构图、图表和页面节奏由当前内容、受众与品牌约束决定。复用的样式、来源索引和图标只是减少重复描述，不会强制所有页面套用同一组卡片。\n\n模板风格参考可选“参考模板图 → 生图设计稿 → 原生对象重建”；无生图工具时，模型仍可识读模板和真实预览并直接设计原生页面。两种风格参考做法都不等于继承 PPTX 母版。详见[模板风格设计与使用边界](references/template-visual-design.md)。\n\n## 模板路线对照：保留原生组件，或参考风格重新设计\n\n同一份拉美 AI 与就业研究报告、同一份 37 页视觉模板，选取中文封面、57% 工时技术潜力、三类国家路径、66% 技能共享四页。两稿使用相同的 42 个内容项、四页讲稿和两组图表数据。下列总览均由最终 PPTX 的实际办公软件渲染页拼成，每张图按两列展示四页；未把设计图或截图放入 PPTX 充当整页内容。\n\n| 使用约束 | 应选流程 | 本次四页样例 |\n| --- | --- | --- |\n| 母版、版式、图表工作簿和指定组件必须保留 | `template`：核验模板 → 选择与克隆原生对象 → 绑定新内容 → 真实预览与编辑验收 | A 展示原生组件复用及编排 |\n| 只借鉴模板风格，可重新排版；无生图工具 | `create`：读模板视觉规则 → 锁定源内容 → 原生对象设计 → 渲染预览 → 视觉修订 | 可按此流程使用；本组未单独制作第三稿 |\n| 只借鉴模板风格，可使用生图工具 | `create`：锁定内容 → 生成并核对整页设计目标 → 冻结目标 → 原生重建 → 逐页对照与编辑验收 | B 展示生图设计稿后原生重建 |\n| 已有批准的完整页面设计图，要求尽量还原 | `recreate`：登记目标图 → 以源文档核对文字和数据 → 原生重建与差异审核 | 设计目标由用户提供时适用；本组 B 的目标由生图工具产生 |\n\n**A · 原生模板组件复用。** [下载四页可编辑 PPTX](assets/samples/v5.1-template-native-4page.pptx)。使用真实原生形状、图表和工作簿克隆与数据绑定能力，完成本次四页编排。**这是组件能力与视觉效果的对照样本，不是完整 strict-template 输入合同的端到端认证。**\n\n![A：原生模板组件复用的四页 PPT 实际渲染，两列总览](assets/samples/v5.1-template-native-4page-2col-overview.png)\n\n**B · 参考模板生图设计后原生重建。** [下载四页可编辑 PPTX](assets/samples/v5.1-template-image-guided-4page.pptx)。本例先生成四张整页设计稿，其中一张因未锁定文案被修正；再把合格设计稿作为目标，用原生文字、形状和图表重建。B 通过完整声明式构建与独立逐页审核，交付门禁为 `final_delivery_ready`、0 个阻断项。设计稿与交付稿在纹理、渐变、图标和换行上仍有差异，不能视为逐像素 1:1。\n\n![B：模板风格生图设计并重建的四页 PPT 实际渲染，两列总览](assets/samples/v5.1-template-image-guided-4page-2col-overview.png)\n\n| 最终 PPTX 中的对象 | A 原生模板组件复用 | B 生图后原生重建 |\n| --- | ---: | ---: |\n| 可编辑文本对象 | 40 | 40 |\n| 原生形状、线条和路径 | 19 | 137 |\n| 原生图表（各含数据工作簿） | 2 | 2 |\n| 图片对象 | 0 | 0 |\n| **可编辑对象合计** | **61** | **179** |\n\n以上按实际 PPTX 的顶层对象逐个计数；图表扇区、图表内置工作簿、字符与备注不重复计数。B 多出的对象主要是可编辑几何图标与构图元素，数量增加不直接证明设计更好。两份样例都在本机 LibreOffice 中验证了修改文字、形状和图表数据后保存、重开仍可编辑；未实测其他办公软件或操作系统。这是四页同源对照，不代表所有模板都能获得同样效果。\n\n## 没有生图模型，也能出设计预览\n\n默认原创流程：\n\n```text\n完整源材料 → 内容与来源整理 → 结构化设计\n→ 原生可编辑 PPTX → LibreOffice PDF → PNG 预览\n→ 独立视觉审核与修订 → 编辑回存检查 → 最终交付\n```\n\n具备视觉理解和文本输出能力的模型，可以编写页面设计并检查程序渲染的图片；无需直接生成图片。这里会先产生内部原生候选，再得到设计预览。生图工具可选，用于独立插画或用户明确要求的外部设计目标。\n\n| 当前能力 | 可以怎样使用 |\n| --- | --- |\n| 能识图，无生图工具 | 创建原创页面、还原已有设计图、检查真实预览 |\n| 能识图，也能生图 | 在上述流程中按需补充独立图片素材 |\n| 只有文本模型 | 可以编写结构化设计；图像理解和独立视觉验收仍需视觉模型或人工 |\n| 缺少办公软件或渲染工具 | 可以准备内容与设计；补齐真实渲染后才能最终交付 |\n\n复杂摄影和自由插画仍需要合格素材。当前声明式入口不接受任意 HTML/CSS、SVG 或模型脚本，也不承诺任意设计图都能无损拆解。可恢复数据的图表、表格使用原生数据；独立图片仅可替换，不等于内部元素可编辑。\n\n## v5.1 实测：无生图的 6 页中文政策解读\n\n输入为用户提供的 7 页《人工智能中小企业创业支持计划（2026—2028年）》PDF。独立作者只使用新版 Skill 和源文档完成原创稿，未调用生图工具。输出包括 6 页中文内容、逐页来源和 6 页演讲者备注；90 天行动步骤明确标为作者建议。\n\n**下载同一份 [可编辑 PPTX](assets/samples/v5.1-no-image-policy-native.pptx)**，或查看 [对象统计与验收摘要 JSON](assets/samples/v5.1-no-image-policy-evidence.json)。以下图片均直接来自该 PPTX 的真实办公软件渲染，没有重绘或美化截图。\n\n### 封面：13 个文本对象 + 6 个原生形状\n\n![v5.1 无生图原创封面，主标题与三条政策主线均为原生对象](assets/samples/v5.1-no-image-policy-page-01.png)\n\n### 目标页：16 个文本对象 + 3 个原生形状\n\n![v5.1 三年目标页，保留“1万家以上”“突破2000家”及三个10个的原文限定](assets/samples/v5.1-no-image-policy-page-02.png)\n\n### 行动页：18 个文本对象 + 5 个原生形状\n\n![v5.1 原生时间轴，明确标记为作者建议而非官方申报流程](assets/samples/v5.1-no-image-policy-page-06.png)\n\n统计直接读取交付 PPTX，每个文本框或形状计一次：\n\n| 页码与内容 | 原生文本 | 原生形状 | 可编辑对象合计 |\n| --- | ---: | ---: | ---: |\n| 1 · 政策导航 | 13 | 6 | 19 |\n| 2 · 三年目标 | 16 | 3 | 19 |\n| 3 · 要素供给 | 15 | 4 | 19 |\n| 4 · 主体培育 | 12 | 3 | 15 |\n| 5 · 开源与保障 | 20 | 5 | 25 |\n| 6 · 作者行动建议 | 18 | 5 | 23 |\n| **全稿** | **94** | **26** | **120** |\n\n本例图片、原生图表、原生表格和分组均为 **0**，6 页均有备注。数字是可编辑文本，不把它们称为原生图表；装饰线和圆点计入形状，备注、字符数不重复计入对象数。对象数量用于说明编辑结构，不作为设计质量分数。\n\n该候选已通过独立逐页视觉与来源审核，门禁状态为 `final_delivery_ready`。在 **macOS + LibreOffice 26.2.4.2** 中通过 Basic/UNO 修改副本的文字、数字文字及形状颜色，保存、关闭、重开后验证修改保留、6 页备注完整，原候选文件未改变。此为实际应用对象编辑测试，并非 GUI 点击测试；不外推为 Windows/Linux 或 PowerPoint/WPS 实机验证。样例使用 Arial Unicode MS，字体未嵌入，换设备需检查字体与排版。\n\n## v5.0 实测保留：20 页中文研究解读\n\n输入为 67 页 *Agents, robots, and us: How AI reshapes work and skills in Latin America* 报告，输出 20 页《智能体、机器人与我们》中文研究解读，涵盖自动化潜力、经济价值、岗位与技能、国家对照和企业案例。每页均有来源与演讲者备注。这是 v5.0 阶段的真实历史成品，单独统计，不与上面的 v5.1 案例混算。\n\n流程为“源文档 → 完整页面设计图 → 多模态识读与声明式重建 → 原生 PPTX → 实际渲染与验收”。以下保留原交付的 20 页总览图；[下载原始可编辑 PPTX](assets/samples/v5.0-latin-america-ai-zh-native.pptx)，[查看逐页对象数据](assets/samples/v5.0-latin-america-ai-zh-evidence.json)。\n\n![v5.0 智能体、机器人与我们：20 页中文可编辑 PPT 实际渲染总览](assets/samples/v5.0-latin-america-ai-zh-overview.png)\n\n| 对象类别 | 数量 | 可编辑范围 |\n| --- | ---: | --- |\n| 原生文本框 | 274 | 修改文字、字体、字号与颜色 |\n| 原生形状与路径 | 164 | 移动、缩放与改色 |\n| 原生图表 | 7 | 修改数据系列；附 7 个内嵌工作簿 |\n| 原生表格 | 2 | 修改单元格、行列和样式 |\n| **原生可编辑对象合计** | **447** | **274 + 164 + 7 + 2** |\n| 独立封面图片 | 1 | 可整体替换，内部插画元素不可逐个编辑 |\n| **幻灯片对象总数** | **448** | **447 个原生对象 + 1 张图片** |\n\n统计直接读取原交付 PPTX，每个对象只计一次；图表数据点、表格单元格、7 个数据工作簿和 20 页备注不重复计数。\n\n<details>\n<summary>展开 20 页可编辑对象明细</summary>\n\n| 页码 | 文本 | 形状/路径 | 图表 | 表格 | 原生可编辑合计 | 可替换图片 |\n| --- | ---: | ---: | ---: | ---: | ---: | ---: |\n| 1 | 7 | 2 | 0 | 0 | 9 | 1 |\n| 2 | 15 | 18 | 0 | 0 | 33 | 0 |\n| 3 | 19 | 6 | 0 | 0 | 25 | 0 |\n| 4 | 13 | 5 | 1 | 0 | 19 | 0 |\n| 5 | 14 | 7 | 1 | 0 | 22 | 0 |\n| 6 | 9 | 3 | 1 | 0 | 13 | 0 |\n| 7 | 9 | 3 | 1 | 0 | 13 | 0 |\n| 8 | 16 | 10 | 0 | 0 | 26 | 0 |\n| 9 | 11 | 5 | 0 | 1 | 17 | 0 |\n| 10 | 13 | 8 | 1 | 0 | 22 | 0 |\n| 11 | 9 | 3 | 1 | 0 | 13 | 0 |\n| 12 | 12 | 5 | 1 | 0 | 18 | 0 |\n| 13 | 15 | 9 | 0 | 0 | 24 | 0 |\n| 14 | 7 | 3 | 0 | 1 | 11 | 0 |\n| 15 | 20 | 9 | 0 | 0 | 29 | 0 |\n| 16 | 15 | 6 | 0 | 0 | 21 | 0 |\n| 17 | 16 | 13 | 0 | 0 | 29 | 0 |\n| 18 | 20 | 9 | 0 | 0 | 29 | 0 |\n| 19 | 17 | 28 | 0 | 0 | 45 | 0 |\n| 20 | 17 | 12 | 0 | 0 | 29 | 0 |\n| **全稿** | **274** | **164** | **7** | **2** | **447** | **1** |\n\n</details>\n\n历史验收在 macOS + LibreOffice 26.2.4.2 中通过 Basic/UNO 修改副本的文字、图表数据、表格数据及图片，保存、关闭、重开后改动均保留。设计图与原生重建在字体、图标、渐变及图表样式上仍有差异，不宣称逐像素 1:1；未进行 PowerPoint/WPS 实机验证。使用的 Hiragino Sans GB、Arial 未嵌入，换设备需核对字体与排版。\n\n## 怎么用：把目标交给 Agent\n\n让支持读取 Skill、运行本地工具的宿主加载本目录 [SKILL.md](SKILL.md)，然后提供源材料和需求。普通用户无需手写对象 JSON。\n\n**文档生成，无生图工具：**\n\n```text\n使用 PPT Smith，把这份 PDF 做成约 10 页中文可编辑 PPT。\n受众：中小企业负责人；目标：理解政策重点并形成行动清单。\n当前模型能识图，无生图工具。根据内容建议配色与页面结构，\n保留数字限定词、逐页来源和演讲者备注；作者建议与原文明确区分。\n完成真实预览、独立审核及目标软件编辑回存验证后交付。\n```\n\n**根据设计图还原：**\n\n```text\n以这些完整页面设计图为还原目标，以 PDF 为文字与数字依据。\n保留已批准的版式；如设计图与源文档冲突，列明需要修正的内容。\n标题、正文、可恢复数据的图表和表格使用原生对象，\n说明独立图片与复杂效果的编辑边界，并提供目标/实际预览对照。\n```\n\n**严格沿用原生模板：**\n\n```text\n用这个公司 PPTX 模板把报告整理成 15 页中文汇报。\n母版、版式、品牌字体、原生图表及其数据工作簿必须保留。\n先核验可用组件与每页内容容量，再克隆和绑定报告中的事实、数字与来源。\n模板放不下时说明缺口及调整方案，附逐页讲稿，并验证编辑、保存和重开。\n不要把模板截图当作幻灯片背景。\n```\n\n**模板只作风格参考，无生图工具：**\n\n```text\n参考这个 PPTX 的配色、字体层级、留白和图表语言，允许重新排版。\n根据这份 PDF 做 4 页中文可编辑 PPT；先锁定各页文字、数字、单位和来源。\n当前没有生图工具，请直接用原生文本、形状和图表设计页面，\n渲染真实预览，逐页检查阅读顺序、品牌风格和数据标注，再修订交付。\n```\n\n**模板只作风格参考，有生图工具：**\n\n```text\n参考这个 PPTX 的视觉规则，允许重新设计；以这份 PDF 为事实依据。\n先锁定 4 页中文内容、图表数据和来源，只用已核对内容生成整页设计图。\n先做代表页并确认方向，再生成其余页；核对设计图中的文字、数字与可重建性。\n冻结合格目标后，用原生文本、形状、图表重建可编辑 PPTX。\n提供设计图与实际渲染的逐页对照、编辑保存检查和不可编辑效果说明。\n```\n\n**只修改几处内容：**\n\n```text\n基于上一份任务，只改第 6 页标题和第 7 页备注，其余保持。\n用对象补丁提交改动，重新审核受影响页面；\n未变页面仅通过有效审核继承机制复用记录。\n```\n\n首次说明受众、目的、语言、页数预算、目标软件，以及模板是“必须保留原生组件”还是“只作风格参考”、整页设计图是否为“精确还原目标”。后续带上原任务目录和需要修改的页/对象，Agent 可按页读取上下文，不必反复粘贴整份材料。\n\n## 减少重复输入与返工\n\n- **按需加载**：Skill 入口只保留公共规则，路线说明按任务读取。\n- **紧凑作者输入**：样式、来源、颜色变量和装饰符号只定义一次，固定编译器展开为严格对象。\n- **短摘要与分页查询**：默认返回构建状态、变更页和证据路径；详细内容按页读取。\n- **真实字体预检**：在批量铺页前检查实际办公软件使用的字体与字符，结果按环境缓存。\n- **版本绑定补丁与审核继承**：修改少量内容不必重写整份 JSON。备注或底层数据改变，即使预览像素相同，也会使相关审核失效。\n\n同一份 6 页任务的实测体积如下，紧凑输入展开后与完整任务完全一致：\n\n| 测量对象 | 原始/完整 | 优化/紧凑 | 字节减少 |\n| --- | ---: | ---: | ---: |\n| Skill 入口（v5.1 开发验收快照，对比 v5.0.1） | 14,384 | 6,278 | 56.4% |\n| 同一任务作者输入 | 69,702 | 42,808 | 38.6% |\n| 同一构建的 CLI 回显 | 24,550 | 631 | 97.4% |\n\n单位为 UTF-8 字节；作者输入采用相同 canonical JSON 编码。[测量口径与摘要](assets/samples/v5.1-no-image-policy-evidence.json)随样例提供。**这些不是实测 token、费用或运行时间降幅。** 完整来源、原生对象、构建和审核证据仍保留。当前每次修订仍完整构建与真实渲染；继承减少重复审阅，不是页级渲染缓存。\n\n## 安装与本地自检\n\n在 Skill 根目录安装 Python 依赖；以下为 macOS/Linux 的 Bash 示例：\n\n```bash\npython3 -m venv .venv\nsource .venv/bin/activate\npython -m pip install -r requirements.txt\npython scripts/check_identity.py\npython scripts/quick_validate_skill.py\npython -m engine design capabilities\n```\n\n真实预览与字体预检还需要 **LibreOffice、Poppler（pdftoppm、pdffonts、pdftotext）、Fontconfig（fc-match）及任务所用字体**。工具应可从 PATH 发现。Windows 使用相应虚拟环境 Python 入口；工具安装与系统差异见 [跨平台运行条件](references/declarative-design.md#跨平台运行条件)。`capabilities` 检测本地工具，不自动识别宿主模型是否能识图或生图。\n\n以下命令展示 Agent 的创建流程，`author.json` 由模型依据源材料编写，必须位于任务目录内；`init` 本身不解析 PDF 或自动设计页面：\n\n```bash\nPPTSMITH_TASK=\"./ppt-work/demo\"\npython -m engine design init --task-dir \"$PPTSMITH_TASK\" --task-id demo --mode create --pages 6\npython -m engine design author --task-dir \"$PPTSMITH_TASK\" --file author.json\npython -m engine design preflight --task-dir \"$PPTSMITH_TASK\" --isolation auto\npython -m engine design build --task-dir \"$PPTSMITH_TASK\" --isolation auto\n```\n\n构建成功仅产生候选。继续使用返回的构建 ID 生成审核表、完成独立审核和真实编辑检查，再执行 `review`、`deliver`。任务目录的 `state.json` 记录接续信息，`task.json`、构建 manifest 和原始审核记录保留完整证据。完整命令见 [声明式工作流](references/declarative-design.md)与 [紧凑输入/局部修订](references/declarative-authoring.md)。\n\n只有使用依赖 PptxGenJS 的兼容构建器时，才需准备 Node/npm 并执行：\n\n```bash\npython scripts/bootstrap_pptxgenjs_runtime.py\n```\n\n该脚本在 `runtime/pptxgenjs` 内执行锁定版本的 `npm ci`。\n\n## 交付与兼容边界\n\n最终交付包括可编辑 PPTX、实际 PDF/PNG 预览、任务及素材记录、对象清单、审核结论和编辑限制。标题、正文、图形和可恢复的数据优先保留原生编辑能力；未经批准的整页截图不能充当可编辑成品。\n\nPPT 质量与 OS 隔离分别验证。`--isolation auto` 在可用的 macOS 环境选择隔离模式，其他环境选择 host；host 通过质量门禁后可交付，并记录 OS 隔离未验证。显式指定 `--require-os-isolation` 时，能力不足仍阻断。运行时适配不等于所有操作系统或办公软件都已实机通过。\n\n原生模板继续使用 [Template 工作流](references/routes/v4-template-route.md)。Bespoke 保留为高级兼容路线，Standard/Engineering 用于明确的工程草稿和诊断。`new_design`、`style_transfer` 新建参数映射到 create；已有旧任务继续遵守原来的目标要求。受限浏览器设计板、模板索引缓存和实际模型成本仪表尚未纳入本版。\n\n## 历史样例\n\n以下为较早版本的真实渲染样例，不计入上面的 v5.1 对象统计。\n\n<details>\n<summary>展开 V4 Template 与 Bespoke 示例</summary>\n\n**Template：31 页研究报告演示。** 基于源报告和原生模板组件完成编排，29 个正文页具备演讲者备注。\n\n![V4 Template 31 页实际渲染联系表](assets/samples/mgi-template-v4-31-page-contact-sheet.png)\n\n**Bespoke：23 页独立设计演示。** 从空白页面制作，含 12 个原生图表和 23 页备注。两份样例使用不同报告，不作为同源质量比较，也不表示与源报告出版方或模板品牌存在合作、授权或背书关系。\n\n![V4 Bespoke 23 页实际渲染联系表](assets/samples/state-ai-2025-independent-bespoke-23-page-contact-sheet.png)\n\n更多历史资源见 [样例目录](assets/samples/)。\n\n</details>\n\n## 文档与分发\n\n- [SKILL 执行规范](SKILL.md)\n- [声明式工作流、原生能力与验收](references/declarative-design.md)\n- [紧凑作者输入、对象补丁与审核继承](references/declarative-authoring.md)\n- [Template 模板复用](references/routes/v4-template-route.md) · [Bespoke 高定兼容](references/routes/v4-bespoke-route.md)\n- [V4 路线架构](references/routes/v4-three-route-architecture.md) · [历史导出能力](references/export-pipelines.md)\n- [样例证据](assets/samples/v5.1-no-image-policy-evidence.json)\n\nGitHub、ClawHub 等公开分发仅包含 Skill 运行代码、依赖声明、使用文档、模板/Schema，以及本文引用的示例与必要数据。开发测试、CI、开发笔记、推广文章、原始输入、完整验收日志、临时产物和本地工作树不进入公开版本。\n\n本地构建和预览不自动发布文件；源材料如何传给宿主模型取决于宿主配置。飞书/Lark 云端创建、上传或分享仅在用户授权相应交付时执行。\n\n核心引擎、通用组件、可编辑对象与 QA 以 Apache-2.0 开源。企业品牌适配、专属母版、行业生产包、定制组件与代生成/部署服务独立商业交付，不包含在公共仓库或 Skill 分发包中。\n\nFile v5.1.1:schemas/v4/README.md\n\n# PPT Smith v4 Contracts\n\nv4 contracts connect **model-directed presentation authoring** to deterministic\nexecution and verification. A capable model remains responsible for source\nunderstanding, narrative, visible content, data interpretation, visual\nencoding, component choice/composition, speaker notes, and rendered visual\nreview. The engine verifies provenance, native editability, template fidelity,\ncapacity, rendering, and declared quality floors; it does not replace authorial\njudgment.\n\n## Route authority\n\n1. **Bespoke is the quality ceiling and default route.** The model writes a\n   source-grounded IR and native authoring code, starting from a blank deck or\n   using an uploaded deck as visual evidence.\n2. **Template is model-directed native reuse.** The engine extracts a complete\n   reviewed Component Atlas. The model audits every feasible component, chooses\n   and combines matching components, and writes a new template-styled native\n   component only when the Atlas proves there is no feasible match.\n3. **Standard is diagnostic compatibility.** It can execute constrained IR for\n   debugging and fallback workflows, but it is not the V4 quality benchmark and\n   must not be presented as equivalent to Bespoke or Template delivery.\n\n## Delivery principles\n\n1. **Source-grounded authoring.** Facts, metrics, charts, tables, images, and\n   speaker notes retain structural source references and evidence IDs.\n2. **Concise slides, complete notes.** Visible content is presentation-grade;\n   detail moves into speaker notes rather than being truncated with ellipses.\n3. **Native visual encoding.** Reconstructable quantitative exhibits become\n   editable charts, tables, KPI systems, or diagrams. Source-page screenshots\n   are forbidden. Only audited standalone illustrations, photos, and genuinely\n   non-reconstructable figures may remain raster assets.\n4. **Template reuse before invention.** A Template page must disclose the full\n   feasible component set, selected components, rejected candidates, and any\n   newly authored component.\n5. **Fail closed.** Missing evidence, silent truncation, unbound business text,\n   incomplete Component Atlas metadata, style drift, insufficient density,\n   failed real rendering, or missing visual review prevents final delivery.\n\n## Files\n\n| File | Status | Purpose |\n|---|---|---|\n| `presentation-ir.schema.json` | active 4.1.0 | Model-authored content, visual intent, component intent, and speaker-note contract |\n| `examples/presentation-ir-model-directed.json` | reference | Source-grounded quantitative Template page with notes and component audit |\n| `examples/presentation-ir-minimal.json` | diagnostic | Small Standard-compatible contract; not a production-quality benchmark |\n| `examples/presentation-ir-enriched.json` | reference | Rich facts, metrics, relations, and hints |\n| `style-contract-v4.schema.json` | active 4.0.0 | Reusable tokens and rendering constraints |\n| `decision-trace.schema.json` | active 4.0.0 | Machine-readable decision and degradation trace |\n| `render-plan.schema.json` | active 4.0.0 | Native builder execution contract |\n| `production-request.schema.json` | active 1.0.0 | Route, page policy, and template hash contract |\n| `narrative-contract.schema.json` | active 1.0.0 | Bespoke narrative and evidence contract |\n| `template-evidence.schema.json` | active 1.0.0 | Read-only evidence extracted from an uploaded template |\n\nValidation:\n\n```bash\npython3 scripts/validate_contracts.py --strict \\\n  --presentation-ir schemas/v4/examples/presentation-ir-model-directed.json\n```\n\nThe v3 contracts remain available for the existing v3 pipeline. V4 inherits\nv3's high-customization authoring standard while adding reviewed template\ncomponent extraction, reuse, composition, and fidelity gates.\n\nFile v5.1.1:templates/README.md\n\n# Templates\n\nThese files are copyable starting points. Every JSON template in this directory\nvalidates against its schema in `schemas/`, so you can copy one, edit the\ncontent, and run it through the pipeline without first fixing structural errors.\n\nValidate any contract before building:\n\n```bash\npython3 scripts/validate_contracts.py --ppt-ir my-deck.ppt-ir.json --style my-style.json\n```\n\n## Authoring notes\n\nUse sample text only to understand the contract; replace it with the current source material.\n\n| Template | Note |\n| --- | --- |\n| `ppt-ir-example.json` | Contract is `schemas/ppt-ir.schema.json`. Structure your own deck from this shape; do not treat the sample content as defaults. |\n| `style-contract-example.json` | Illustrative token set. Validate real contracts with `schemas/style-contract.schema.json`, or start from one of the five master systems in `references/five-style-master-systems.md`. |\n| `delivery-plan-example.json` | Do not handwrite a delivery plan for production. Generate it with `scripts/resolve_component_delivery.py` so route selection reflects an actual capability probe. |\n| `build-manifest-example.json` | Emitted by a Builder. Contract is `schemas/build-manifest.schema.json`; never handwrite a status into it. |\n| `qa-report-example.json` | Emitted by `scripts/verify_deck.py`. Contract is `schemas/qa-report.schema.json`. |\n| `component-registry-example.json` | Illustrative excerpt. The machine source is `references/component-registry.json`. |\n| `diagram-ir-example.json` | Contract is `schemas/diagram-ir.schema.json`. Normalize with `scripts/normalize_diagram_ir.py` before layout. |\n| `capability-report-example.json` | Emitted by `scripts/capability_probe.py`. Never handwrite a capability claim; the probe is the only authority on what a Builder supports. |\n| `delivery-manifest-example.json` | Emitted by `scripts/package_delivery.py`. Contract is `schemas/delivery-manifest.schema.json`. |\n| `rubric-score-example.json` | Emitted by `scripts/score_deck.py`. For Premium final, the reference rubric must be supplied explicitly. |\n\n## Public example inputs\n\nSmall contract examples are in `examples/contracts/valid/`. Reusable style\ncontracts are in `styles/`; local development fixtures are not distributed.\n\n```bash\npython3 scripts/validate_contracts.py --ppt-ir examples/contracts/valid/ppt-ir.json --style examples/contracts/valid/style-contract.json --strict\n```\n\nFor document-driven creation and image reconstruction, follow the current\n[Skill entry](../SKILL.md) and [declarative workflow](../references/declarative-design.md).\n\n## Markdown templates\n\n| Template | Use |\n| --- | --- |\n| `content-lock-template.md` | Lock source truth and evidence boundaries before storyboarding. |\n| `storyboard-template.md` | Judgment titles, expression mode, and visual anchor per slide. |\n| `ppt-production-artifact-checklist.md` | Which artifacts a profile requires. |\n| `slide-manifest-template.json` | Per-slide object manifest for hybrid delivery. |\n| `visual-qa-gate-template.json` | Visual review record for Standard and Premium. |\n\nFile v5.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn7bh27ktnke6be450ha5m9f1982n7dd\",\n  \"slug\": \"article-html-to-ppt\",\n  \"version\": \"5.1.1\",\n  \"publishedAt\": 1790153626384\n}\n\nFile v5.1.1:references/anti-regression-examples.md\n\n# Anti-Regression Examples\n\n## Detailed Spec Literalism\n\nBad: follow every placeholder, coordinate, grid line, connector, and decorative mark from a spec until the slide looks like a wireframe.\n\nGood: infer design intent, assign visual priorities, delete low-value objects, and preserve the primary anchor.\n\n## Relationship Hidden In Cards\n\nBad: turn an ecosystem or architecture paragraph into six equal cards.\n\nGood: use Expression Mode Gate; choose relationship visual or hybrid panel when dependencies, boundaries, flows, or loops matter.\n\n## Connector Web\n\nBad: keep adding PPT connectors because the source mentions relationships.\n\nGood: group into lanes/layers, cap connectors, split the slide, or use SVG/HTML/generated component for bounded complex maps.\n\n## Raster Overuse\n\nBad: rasterize ordinary cards, tables, matrices, metric cards, or simple charts for polish.\n\nGood: keep ordinary message-bearing components editable; reserve raster/SVG/generated components for bounded visual complexity.\n\n## Topic Titles\n\nBad: `Market Trends`, `Architecture`, `Risks`.\n\nGood: `Adoption is broad, but scaling still concentrates in a minority of operators`.\n\n## Fake Verification\n\nBad: deliver only `deck.pptx` and claim final.\n\nGood: render/read back representative slides, count objects/media where possible, and write `verification-report.md` with known limits.\n\n## Connector Web Without Main Path\n\nBad: draw 8 nodes with 17 equal-weight lines and no dominant reading path.\n\nGood: keep the main path primary, weaken secondary relations, cluster nodes into groups, and move weak relations into annotations.\n\n## Relationship Hidden In Cards\n\nBad: convert a system call chain into six equal cards with no direction or dependency.\n\nGood: choose `relationship_visual`, write Diagram IR, and preserve request/response/data-flow edges.\n\n## Decorative Curves Everywhere\n\nBad: use curved connectors everywhere because it looks premium.\n\nGood: use orthogonal lines for the main flow, curved lines for feedback, and dashed/muted lines for weak dependencies.\n\n## Missing Responsibility Boundary\n\nBad: mix internal services and external tools in one region.\n\nGood: add a trust/ownership/permission boundary and move external tools into an external zone.\n\n## Paragraph Nodes\n\nBad: put full paragraphs inside nodes.\n\nGood: use short labels, move descriptions to speaker notes, and add annotations only where they clarify.\n\n## Swimlane Misuse\n\nBad: use four lanes when there is no role or system handoff.\n\nGood: use `process_lane` or `timeline`, or remove lanes entirely.\n\n## Dense Architecture Mural\n\nBad: put 18 nodes and 30 edges on one slide.\n\nGood: keep 7-8 first-level nodes on the main page and split detailed call chains into follow-up pages.\n\n## Whole Diagram Screenshot\n\nBad: embed title, nodes, labels, and legend in one PNG.\n\nGood: use SVG or hybrid overlay for the bounded diagram base and keep title, labels, legend, and key annotations native/editable.\n\n## Benchmark Coverage\n\nPhase 7 benchmark cases should include small, stable examples for:\n\n- all-bullets or long-paragraph copy;\n- card overuse where a relationship visual is expected;\n- connector-web diagrams;\n- whole-slide raster;\n- rasterized table and chart;\n- palette drift;\n- multiple primary anchors;\n- fake judgment titles.\n\nWhen a real production failure appears, add the smallest reproducible benchmark case and reference rubric instead of relying on memory or model preference.\n\nFile v5.1.1:references/builder-adapters.md\n\n# Builder Adapters And Capability Probe\n\nPhase 9 adds an explicit environment contract before PPT production. Do not assume OfficeCLI, PptxGenJS, python-pptx, PowerPoint, LibreOffice, HTML rendering, SVG rendering, or fonts exist on the current machine.\n\n## Capability Probe\n\nRun the probe after resolving the Style Contract and before selecting a Builder:\n\n```bash\npython3 scripts/capability_probe.py \\\n  --style .ppt-work/contracts/style-contract.json \\\n  --registry references/component-registry.json \\\n  --output .ppt-work/capability-report.json \\\n  --strict\n```\n\nThe report records:\n\n- environment basics without exposing full local paths\n- builder availability, versions, smoke-test results, features, and component support\n- renderer availability for PowerPoint, LibreOffice, and related engines\n- format support such as HTML render, SVG render/embed, PDF-to-PNG, PPTX read/write\n- installed and missing fonts from the Style Contract\n- warnings and errors that affect routing\n\nCore builders must not be considered available from command existence alone. They need a minimal import, version, or smoke check:\n\n- `pptxgenjs`: `node` plus `require(\"pptxgenjs\")` and a tiny slide construction smoke check.\n- `python_pptx`: package import plus create/save a minimal PPTX.\n- `officecli`: command plus project-specific version/help smoke check; keep unavailable if smoke is not proven.\n- `html_svg`: may be available for visual-only SVG generation, but never for native PPT objects.\n\n## Adapter Interface\n\nEvery builder adapter follows this contract:\n\n```python\nclass BuilderAdapter(Protocol):\n    name: str\n\n    def probe(self) -> BuilderCapability: ...\n    def supports(self, component_type: str, delivery_route: str) -> SupportLevel: ...\n    def plan(self, ppt_ir: dict, style_contract: dict, delivery_plan: dict) -> BuildPlan: ...\n    def build(self, build_plan: BuildPlan, output_dir: Path) -> BuildResult: ...\n    def inspect_output(self, pptx_path: Path) -> BuildInspection: ...\n```\n\nOptional extensions may add `render_preview`, `read_back`, and `cleanup`.\n\n## Support Levels\n\nUse only these support levels:\n\n- `full`: native route is supported with expected editability.\n- `partial`: route is usable with documented limitations and editable-core review.\n- `visual_only`: route is suitable only for SVG/image/HTML preview or hybrid visual layers.\n- `unsupported`: route cannot be used by this builder.\n- `unknown`: support has not been proven.\n\nPremium rules:\n\n- Reject `unknown` support.\n- Reject `visual_only` for native routes.\n- `native_required` accepts only `full` support on a native route.\n- Missing capability reports stop Standard and Premium route resolution.\n- Missing renderers prevent claiming final Premium visual QA.\n\nFast may use static registry defaults when no capability report exists, but it must warn.\n\n## Selection Inputs\n\nBuilder selection uses:\n\n- PPT IR object requirements and editability\n- Delivery Plan route requirements when available\n- Component Registry static support and fallback policy\n- Capability Report real environment availability\n- Production profile (`fast`, `standard`, `premium`)\n- Optional user builder override\n\nScoring considers native component coverage, editable-core coverage, renderer compatibility, font compatibility, profile compatibility, and fallback count. A user-requested builder wins only when it is available and valid for the requested routes.\n\n## Build Manifest\n\nBuild Manifest should record:\n\n```json\n{\n  \"builder\": {\n    \"requested\": \"auto\",\n    \"selected\": \"pptxgenjs\",\n    \"version\": \"4.x\",\n    \"selection_score\": 0.92,\n    \"selection_reasons\": [\"BUILDER_SELECTED_BY_SCORE\"]\n  },\n  \"environment\": {\n    \"capability_report\": \".ppt-work/capability-report.json\"\n  }\n}\n```\n\nIf no valid builder exists, stop at contracts and visual references instead of silently downgrading.\n\nFile v5.1.1:references/BUNDLE-MANIFEST.md\n\n# PPT Smith Public Bundle Manifest\n\n## Identity\n\n- Display name: MeowClaw PPT Smith\n- Installed route: `article-html-to-ppt`\n- Public slug: `meowclaw-pptsmith`\n- Version: `5.1.1`\n- License: Apache-2.0\n\n`VERSION` and `packaging/identity.json` define the release identity.\n\n## Included material\n\nGitHub, ClawHub and other public distributions contain material needed to\ninstall, use, inspect and package the Skill:\n\n- `SKILL.md`, README usage instructions and route references;\n- runtime engine, native builders, rendering and delivery QA tools;\n- dependency declarations and the pinned PptxGenJS runtime source;\n- schemas, reusable styles, templates and valid authoring examples;\n- branding and selected sample previews, editable PPTX files and concise object data;\n- identity and distribution checks that keep the package self-contained.\n\nThe v5.0 20-slide research example, v5.1 six-slide policy example and two\nfour-slide template comparison examples retain separate counts and original\nfile hashes. A replaceable bitmap is not counted as an internally editable\nnative object.\n\n## Local-only material\n\nDevelopment tests and fixtures, CI, benchmark harnesses, development notes,\npromotional articles, source PDFs, full review/edit logs, intermediate builds,\nworktrees, caches, credentials and private customer/commercial materials are\nexcluded from the public source tree and registry bundle. Local files are\npreserved for development. Exclusion does not rewrite earlier published history.\n\n`.gitignore` prevents normal staging of local-only files. `.clawhubignore`\nfilters registry packaging, `.gitattributes` filters source exports, and\n`packaging/bundle-exclude.txt` makes their presence fail the archive audit.\nOnly intentionally selected usage examples belong in `assets/samples/`.\n\n## Checks\n\n```bash\npython3 scripts/check_identity.py\npython3 scripts/quick_validate_skill.py\npython3 -m engine design capabilities\n```\n\nThe public bundle builder audits the exact selected tree before creating the\nZIP. Its detailed audit reports and archive manifest stay beside the local\npackaging output; the ZIP contains runtime and usage material. The package\nversion does not by itself mean any external platform has been updated.\n\nFile v5.1.1:references/component-craft-checklist.md\n\n# Component Craft Checklist\n\nUse before scoring and final handoff.\n\n## Text\n\n- Component type is registered in `references/component-registry.json`.\n- Selected delivery route exists in `delivery-plan.json`.\n- Judgment title fits without clipping.\n- Body text is transformed, not copied as paragraphs.\n- Labels use consistent case, length, and alignment.\n- Source and assumption notes are visible but quiet.\n\n## Cards And Frameworks\n\n- Route is `native_ppt`; cards are not SVG/raster/generated unless the user explicitly approved an exception.\n- Cards are equal only when ideas are equal.\n- Each card has a clear role: claim, proof, risk, action, example, or status.\n- Card count and text length fit the slide density.\n- Icons add recognition, not repetition.\n- Fill, border, radius, padding, text color, and shadow come from `card_tokens`.\n\n## Tables And Matrices\n\n- Route is `native_table`; cells, headers, highlights, and source notes remain editable.\n- Table is the primary anchor or clearly secondary.\n- Row/column count does not force unreadable text.\n- Highlights guide the intended comparison.\n- Empty or low-value cells are removed or summarized.\n- Header fill, text color, row alternation, border width, and cell padding come from `table_tokens`.\n\n## Charts\n\n- Route is `native_chart` for simple charts; data remains editable.\n- Chart type matches the comparison task.\n- Labels and units are clear.\n- Color highlights the message, not every series equally.\n- The title interprets the chart.\n- Series colors, axes, labels, gridlines, markers, and legend defaults come from `chart_tokens`.\n\n## Relationship Diagrams\n\n- A valid Diagram IR exists before drawing: `diagram_ir_ref` or inline `diagram_ir`.\n- Diagram IR declares nodes, groups, edges, boundaries, and at least one primary main path.\n- Edge relation semantics are chosen before line style; style comes from `diagram_tokens`.\n- Weak influence/monitoring relations are annotations when they would create connector web noise.\n- Route is `native_diagram` while within complexity limits; otherwise use `hybrid_overlay` or `svg_component` with editable labels/legend.\n- Nodes are grouped into lanes, layers, regions, or modules.\n- Connectors are meaningful and limited.\n- Relationship types are visually distinguishable only when necessary.\n- Ownership, trust, risk, or boundary lines are explicit when they matter.\n- Stop and choose SVG/render/generated component if native PPT becomes connector noise.\n- Node, boundary, connector, and relation styles come from `diagram_tokens`.\n\n## Raster/SVG/Generated Components\n\n- Route is allowed by Component Registry and recorded in Delivery Plan.\n- Component is bounded, not full-slide unless approved.\n- Core explanatory text remains editable.\n- Prompt/source path is stored.\n- Raster acceptance reason is recorded.\n- Verification report discloses media count and rasterized components.\n\nFile v5.1.1:references/component-raster-fallback.md\n\n# Component Raster Fallback\n\nUse localized raster, SVG/HTML render, or generated visual components when a bounded slide component expresses relationship complexity, visual metaphor, spatial structure, or rich material treatment that native PPT objects would make confusing, ugly, brittle, or visually unfinished.\n\n## Default Principle\n\nDo not rasterize an entire deck unless the user explicitly asks for image-only delivery. The default final deck remains hybrid editable: titles, explanatory text, labels, sources, cards, tables, simple charts, and ordinary diagrams should be editable PPT objects.\n\nFor `relationship_visual`, `conceptual_scene`, and visual-heavy `hybrid_panel` slides, a rendered/generated bounded component is a planned delivery route, not merely late-stage rescue.\n\n## Good Candidates\n\n- complex relationship maps with many cross-links\n- ecosystem maps or stakeholder networks\n- capability landscapes with nested regions and soft boundaries\n- conceptual metaphors or abstract spatial structures\n- dense architecture murals where visual comprehension matters more than direct editing\n- illustrated process scenes, IP illustrations, or editorial visual metaphors\n- complex textures, material backgrounds, photos, or atmospheric layers\n\n## Poor Candidates\n\nDo not image-generate components that can be made clear and editable as native PPT objects:\n\n- 2x2, 2x3, or 3x3 card grids\n- ordinary comparison matrices\n- tables and scorecards\n- metric cards\n- simple process lanes\n- clean issue trees or dependency trees\n- simple architecture diagrams with modest connector counts\n- already-stabilized layouts after reducing connectors, grouping, or switching to cards\n\n## Decision Test\n\nBefore choosing raster/generated delivery, answer:\n\n1. Is the component's value mainly spatial relationship, visual metaphor, complex visual texture, or soft-boundary structure?\n2. Would native PPT reconstruction require fragile connectors, nested shapes, masks, or effects?\n3. Would the user reasonably accept reduced editability if title, interpretation, labels, source notes, and surrounding content remain editable?\n4. Have simpler editable alternatives been tried or rejected for a clear reason?\n\nUse localized image fallback only when 1-3 are yes, and 4 is documented.\n\n## Required Resolver Flow\n\nRaster fallback is an engineered route, not a visual shortcut. Before any bounded SVG/image/generated component is built, follow this flow:\n\n1. Query `references/component-registry.json` for the object's `component_type`.\n2. Check `native_capability`, `allowed_delivery_routes`, and `raster_policy`.\n3. Check the current Builder capability (`full`, `partial`, `visual_only`, `unsupported`, or `unknown`).\n4. Check object complexity against `complexity_limits.native`.\n5. Select the smallest local SVG/image region that preserves comprehension.\n6. Preserve the declared `editable_core` as native PPT overlay where the route requires it.\n7. Record the bounded component area ratio; never silently rasterize the whole slide.\n8. Write the selected route, fallback reason codes, editable core, raster/SVG parts, and QA checks to `delivery-plan.json`.\n9. Write actual route and any deviation to `build-manifest.json`.\n10. In QA, compare intended route against actual build output and disclose non-editable parts.\n\n普通组件不进入 Raster Fallback。`metric_card`、普通表格、矩阵、简单图表、标题、正文、来源说明、普通卡片必须优先保持原生可编辑；如果 Builder 做不到，Resolver 应返回 `unsupported` 或切换 Builder，而不是截图糊过去。\n\n## Implementation Contract\n\n- crop the image to the component region, not the full slide\n- keep title, interpretation line, key labels, source note, and footer editable\n- overlay key labels as editable PPT text when later editing is likely\n- store prompt and image path in the project directory\n- disclose the rasterized component in `delivery-plan.json`, `build-manifest.json`, and `verification-report.md`\n- count media objects and confirm only intended components are rasterized\n- ensure the user can tell which parts are editable and which parts are not\n\n## Native PPT Stop Conditions\n\nStop adding native PPT connectors when more than 8 nodes, more than 9 connectors, more than 2 relationship types, 3 connector crossings, labels below 10 pt, nested soft boundaries, or fragile micro-positioning are required.\n\nFile v5.1.1:references/component-registry.json\n\n{\n  \"schema_version\": \"1.0\",\n  \"components\": [\n    {\"component_type\": \"judgment_title\", \"display_name\": \"Judgment Title\", \"category\": \"text\", \"supported_primary_expressions\": [\"textual_argument\", \"structured_cards\", \"table_matrix\", \"data_visual\", \"relationship_visual\", \"conceptual_scene\"], \"supported_slide_roles\": [\"judgment\", \"data\", \"diagram\"], \"semantic_capabilities\": [\"answer_first\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"title\"], \"allowed_delivery_routes\": [\"native_ppt\"], \"preferred_delivery_route\": \"native_ppt\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {}, \"warning\": {}}, \"required_qa_checks\": [\"TEXT_OVERFLOW\", \"FONT_MINIMUM\"], \"style_dependencies\": [\"typography.title_sizes_pt.slide\"], \"notes\": []},\n    {\"component_type\": \"section_title\", \"display_name\": \"Section Title\", \"category\": \"text\", \"supported_primary_expressions\": [\"textual_argument\"], \"supported_slide_roles\": [\"section\"], \"semantic_capabilities\": [\"navigation\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"title\"], \"allowed_delivery_routes\": [\"native_ppt\"], \"preferred_delivery_route\": \"native_ppt\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {}, \"warning\": {}}, \"required_qa_checks\": [\"TEXT_OVERFLOW\"], \"style_dependencies\": [\"typography.title_sizes_pt.section\"], \"notes\": []},\n    {\"component_type\": \"body_argument\", \"display_name\": \"Body Argument\", \"category\": \"text\", \"supported_primary_expressions\": [\"textual_argument\"], \"supported_slide_roles\": [\"judgment\", \"reference\"], \"semantic_capabilities\": [\"short_argument\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"body\"], \"allowed_delivery_routes\": [\"native_ppt\"], \"preferred_delivery_route\": \"native_ppt\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {}, \"warning\": {}}, \"required_qa_checks\": [\"TEXT_OVERFLOW\", \"FONT_MINIMUM\"], \"style_dependencies\": [\"typography.body_sizes_pt.normal\"], \"notes\": []},\n    {\"component_type\": \"evidence_block\", \"display_name\": \"Evidence Block\", \"category\": \"card\", \"supported_primary_expressions\": [\"structured_cards\", \"textual_argument\", \"table_matrix\", \"data_visual\"], \"supported_slide_roles\": [\"judgment\", \"data\", \"evidence\"], \"semantic_capabilities\": [\"proof_unit\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"claim\", \"evidence\", \"source_note\"], \"allowed_delivery_routes\": [\"native_ppt\"], \"preferred_delivery_route\": \"native_ppt\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_body_characters\": 180}, \"warning\": {\"max_body_characters\": 260}}, \"required_qa_checks\": [\"COLOR_CONTRACT\", \"FONT_MINIMUM\"], \"style_dependencies\": [\"card_tokens.default\"], \"notes\": []},\n    {\"component_type\": \"quote_block\", \"display_name\": \"Quote Block\", \"category\": \"card\", \"supported_primary_expressions\": [\"textual_argument\", \"structured_cards\"], \"supported_slide_roles\": [\"evidence\", \"reference\"], \"semantic_capabilities\": [\"quote\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"quote\", \"attribution\"], \"allowed_delivery_routes\": [\"native_ppt\"], \"preferred_delivery_route\": \"native_ppt\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {}, \"warning\": {}}, \"required_qa_checks\": [\"TEXT_OVERFLOW\", \"SOURCE_LABEL\"], \"style_dependencies\": [\"card_tokens.quote\"], \"notes\": []},\n    {\"component_type\": \"source_note\", \"display_name\": \"Source Note\", \"category\": \"metadata\", \"supported_primary_expressions\": [\"textual_argument\", \"structured_cards\", \"table_matrix\", \"data_visual\", \"relationship_visual\", \"conceptual_scene\"], \"supported_slide_roles\": [\"cover\", \"judgment\", \"data\", \"diagram\", \"reference\"], \"semantic_capabilities\": [\"source_trace\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"source_note\"], \"allowed_delivery_routes\": [\"native_ppt\"], \"preferred_delivery_route\": \"native_ppt\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {}, \"warning\": {}}, \"required_qa_checks\": [\"SOURCE_LABEL\", \"FONT_MINIMUM\"], \"style_dependencies\": [\"footer_tokens\"], \"notes\": []},\n    {\"component_type\": \"metric_card\", \"display_name\": \"Metric Card\", \"category\": \"card\", \"supported_primary_expressions\": [\"structured_cards\", \"data_visual\"], \"supported_slide_roles\": [\"data\", \"judgment\"], \"semantic_capabilities\": [\"metric\", \"trend\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"number\", \"label\", \"trend\", \"source_note\"], \"allowed_delivery_routes\": [\"native_ppt\"], \"preferred_delivery_route\": \"native_ppt\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_cards\": 4}, \"warning\": {\"max_cards\": 6}}, \"required_qa_checks\": [\"COLOR_CONTRACT\", \"FONT_MINIMUM\"], \"style_dependencies\": [\"card_tokens.metric\"], \"notes\": []},\n    {\"component_type\": \"comparison_card\", \"display_name\": \"Comparison Card\", \"category\": \"card\", \"supported_primary_expressions\": [\"structured_cards\"], \"supported_slide_roles\": [\"comparison\", \"decision\", \"judgment\"], \"semantic_capabilities\": [\"contrast\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"label\", \"claim\", \"evidence\"], \"allowed_delivery_routes\": [\"native_ppt\"], \"preferred_delivery_route\": \"native_ppt\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_cards\": 6}, \"warning\": {\"max_cards\": 8}}, \"required_qa_checks\": [\"COLOR_CONTRACT\", \"TEXT_OVERFLOW\"], \"style_dependencies\": [\"card_tokens.comparison\"], \"notes\": []},\n    {\"component_type\": \"risk_card\", \"display_name\": \"Risk Card\", \"category\": \"card\", \"supported_primary_expressions\": [\"structured_cards\"], \"supported_slide_roles\": [\"risk\", \"decision\", \"judgment\"], \"semantic_capabilities\": [\"risk\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"risk\", \"impact\", \"mitigation\"], \"allowed_delivery_routes\": [\"native_ppt\"], \"preferred_delivery_route\": \"native_ppt\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_cards\": 5}, \"warning\": {\"max_cards\": 7}}, \"required_qa_checks\": [\"COLOR_CONTRACT\"], \"style_dependencies\": [\"card_tokens.risk\"], \"notes\": []},\n    {\"component_type\": \"capability_card\", \"display_name\": \"Capability Card\", \"category\": \"card\", \"supported_primary_expressions\": [\"structured_cards\"], \"supported_slide_roles\": [\"judgment\", \"diagram\"], \"semantic_capabilities\": [\"capability\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"label\", \"description\"], \"allowed_delivery_routes\": [\"native_ppt\"], \"preferred_delivery_route\": \"native_ppt\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_cards\": 8}, \"warning\": {\"max_cards\": 12}}, \"required_qa_checks\": [\"COLOR_CONTRACT\"], \"style_dependencies\": [\"card_tokens.default\"], \"notes\": []},\n    {\"component_type\": \"summary_action_card\", \"display_name\": \"Summary Action Card\", \"category\": \"card\", \"supported_primary_expressions\": [\"structured_cards\"], \"supported_slide_roles\": [\"closing\", \"decision\"], \"semantic_capabilities\": [\"next_action\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"action\", \"owner\", \"timing\"], \"allowed_delivery_routes\": [\"native_ppt\"], \"preferred_delivery_route\": \"native_ppt\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_cards\": 4}, \"warning\": {\"max_cards\": 6}}, \"required_qa_checks\": [\"TEXT_OVERFLOW\"], \"style_dependencies\": [\"card_tokens.highlight\"], \"notes\": []},\n    {\"component_type\": \"native_table\", \"display_name\": \"Native Table\", \"category\": \"table\", \"supported_primary_expressions\": [\"table_matrix\"], \"supported_slide_roles\": [\"data\", \"judgment\", \"reference\"], \"semantic_capabilities\": [\"exact_lookup\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"headers\", \"cells\", \"source_note\"], \"allowed_delivery_routes\": [\"native_table\"], \"preferred_delivery_route\": \"native_table\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_rows\": 8, \"max_columns\": 6}, \"warning\": {\"max_rows\": 12, \"max_columns\": 8}}, \"required_qa_checks\": [\"TABLE_NATIVE\", \"TEXT_OVERFLOW\", \"COLOR_CONTRACT\", \"FONT_MINIMUM\"], \"style_dependencies\": [\"table_tokens.default\"], \"notes\": []},\n    {\"component_type\": \"heat_matrix\", \"display_name\": \"Heat Matrix\", \"category\": \"table\", \"supported_primary_expressions\": [\"table_matrix\", \"data_visual\"], \"supported_slide_roles\": [\"data\", \"evidence\", \"comparison\"], \"semantic_capabilities\": [\"heatmap\", \"two_axis_matrix\", \"intensity\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"unsupported\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"unknown\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"row_labels\", \"column_labels\", \"cells\", \"values\", \"legend\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_rows\": 8, \"max_columns\": 8}, \"warning\": {\"max_rows\": 12, \"max_columns\": 12}}, \"required_qa_checks\": [\"TABLE_NATIVE\", \"EDITABLE_LABEL_RATIO\", \"COLOR_CONTRACT\"], \"style_dependencies\": [\"table_tokens.matrix\", \"chart_tokens\"], \"notes\": [\"Python renderer verified with native editable shapes.\"]},\n    {\"component_type\": \"comparison_matrix\", \"display_name\": \"Comparison Matrix\", \"category\": \"table\", \"supported_primary_expressions\": [\"table_matrix\"], \"supported_slide_roles\": [\"comparison\", \"decision\", \"evidence\"], \"semantic_capabilities\": [\"exact_lookup\", \"dimension_comparison\", \"winner_highlight\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"headers\", \"cells\", \"highlight\", \"source_note\"], \"allowed_delivery_routes\": [\"native_table\"], \"preferred_delivery_route\": \"native_table\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_rows\": 8, \"max_columns\": 6}, \"warning\": {\"max_rows\": 12, \"max_columns\": 8}}, \"required_qa_checks\": [\"TABLE_NATIVE\", \"TEXT_OVERFLOW\", \"COLOR_CONTRACT\", \"FONT_MINIMUM\"], \"style_dependencies\": [\"table_tokens.default\"], \"notes\": []},\n    {\"component_type\": \"decision_matrix\", \"display_name\": \"Decision Matrix\", \"category\": \"table\", \"supported_primary_expressions\": [\"table_matrix\"], \"supported_slide_roles\": [\"decision\"], \"semantic_capabilities\": [\"score\", \"recommendation\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"criteria\", \"scores\", \"recommendation\"], \"allowed_delivery_routes\": [\"native_table\"], \"preferred_delivery_route\": \"native_table\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_rows\": 8, \"max_columns\": 6}, \"warning\": {\"max_rows\": 12, \"max_columns\": 8}}, \"required_qa_checks\": [\"TABLE_NATIVE\", \"COLOR_CONTRACT\"], \"style_dependencies\": [\"table_tokens.matrix\"], \"notes\": []},\n    {\"component_type\": \"feature_matrix\", \"display_name\": \"Feature Matrix\", \"category\": \"table\", \"supported_primary_expressions\": [\"table_matrix\"], \"supported_slide_roles\": [\"comparison\"], \"semantic_capabilities\": [\"feature_lookup\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"features\", \"values\"], \"allowed_delivery_routes\": [\"native_table\"], \"preferred_delivery_route\": \"native_table\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_rows\": 8, \"max_columns\": 6}, \"warning\": {\"max_rows\": 12, \"max_columns\": 8}}, \"required_qa_checks\": [\"TABLE_NATIVE\"], \"style_dependencies\": [\"table_tokens.default\"], \"notes\": []},\n    {\"component_type\": \"risk_matrix\", \"display_name\": \"Risk Matrix\", \"category\": \"table\", \"supported_primary_expressions\": [\"table_matrix\"], \"supported_slide_roles\": [\"risk\"], \"semantic_capabilities\": [\"risk_lookup\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"risk\", \"impact\", \"mitigation\"], \"allowed_delivery_routes\": [\"native_table\"], \"preferred_delivery_route\": \"native_table\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_rows\": 8, \"max_columns\": 6}, \"warning\": {\"max_rows\": 12, \"max_columns\": 8}}, \"required_qa_checks\": [\"TABLE_NATIVE\"], \"style_dependencies\": [\"table_tokens.matrix\"], \"notes\": []},\n    {\"component_type\": \"bar_chart\", \"display_name\": \"Bar Chart\", \"category\": \"chart\", \"supported_primary_expressions\": [\"data_visual\"], \"supported_slide_roles\": [\"data\", \"judgment\"], \"semantic_capabilities\": [\"ranking\", \"magnitude\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"data\", \"labels\", \"source_note\"], \"allowed_delivery_routes\": [\"native_chart\"], \"preferred_delivery_route\": \"native_chart\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_series\": 5, \"max_categories\": 12}, \"warning\": {\"max_series\": 7, \"max_categories\": 16}}, \"required_qa_checks\": [\"CHART_NATIVE\", \"COLOR_CONTRACT\"], \"style_dependencies\": [\"chart_tokens\"], \"notes\": []},\n    {\"component_type\": \"line_chart\", \"display_name\": \"Line Chart\", \"category\": \"chart\", \"supported_primary_expressions\": [\"data_visual\"], \"supported_slide_roles\": [\"data\", \"judgment\"], \"semantic_capabilities\": [\"trend\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"data\", \"labels\", \"source_note\"], \"allowed_delivery_routes\": [\"native_chart\"], \"preferred_delivery_route\": \"native_chart\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_series\": 5, \"max_categories\": 12}, \"warning\": {\"max_series\": 7, \"max_categories\": 20}}, \"required_qa_checks\": [\"CHART_NATIVE\", \"COLOR_CONTRACT\"], \"style_dependencies\": [\"chart_tokens\"], \"notes\": []},\n    {\"component_type\": \"pie_chart\", \"display_name\": \"Pie Chart\", \"category\": \"chart\", \"supported_primary_expressions\": [\"data_visual\"], \"supported_slide_roles\": [\"data\"], \"semantic_capabilities\": [\"composition\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"data\", \"labels\"], \"allowed_delivery_routes\": [\"native_chart\"], \"preferred_delivery_route\": \"native_chart\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_categories\": 6}, \"warning\": {\"max_categories\": 8}}, \"required_qa_checks\": [\"CHART_NATIVE\"], \"style_dependencies\": [\"chart_tokens\"], \"notes\": []},\n    {\"component_type\": \"waterfall_chart\", \"display_name\": \"Waterfall Chart\", \"category\": \"chart\", \"supported_primary_expressions\": [\"data_visual\"], \"supported_slide_roles\": [\"data\"], \"semantic_capabilities\": [\"bridge\"], \"native_capability\": \"builder_dependent\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"partial\"}, \"python_pptx\": {\"level\": \"unsupported\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"data\", \"labels\"], \"allowed_delivery_routes\": [\"native_chart\", \"svg_component\", \"hybrid_overlay\"], \"preferred_delivery_route\": \"native_chart\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_categories\": 12}, \"warning\": {\"max_categories\": 16}}, \"required_qa_checks\": [\"CHART_NATIVE\", \"EDITABLE_LABEL_RATIO\"], \"style_dependencies\": [\"chart_tokens\"], \"notes\": []},\n    {\"component_type\": \"scatter_chart\", \"display_name\": \"Scatter Chart\", \"category\": \"chart\", \"supported_primary_expressions\": [\"data_visual\"], \"supported_slide_roles\": [\"data\"], \"semantic_capabilities\": [\"distribution\"], \"native_capability\": \"builder_dependent\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"partial\"}, \"python_pptx\": {\"level\": \"unsupported\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"data\", \"labels\"], \"allowed_delivery_routes\": [\"native_chart\", \"svg_component\", \"hybrid_overlay\"], \"preferred_delivery_route\": \"native_chart\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_series\": 4}, \"warning\": {\"max_series\": 6}}, \"required_qa_checks\": [\"CHART_NATIVE\"], \"style_dependencies\": [\"chart_tokens\"], \"notes\": []},\n    {\"component_type\": \"kpi_dashboard\", \"display_name\": \"KPI Dashboard\", \"category\": \"chart\", \"supported_primary_expressions\": [\"data_visual\"], \"supported_slide_roles\": [\"data\"], \"semantic_capabilities\": [\"dashboard\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"numbers\", \"labels\", \"chart_data\"], \"allowed_delivery_routes\": [\"native_ppt\", \"native_chart\"], \"preferred_delivery_route\": \"native_ppt\", \"fallback_chain\": [\"native_chart\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": false}, \"complexity_limits\": {\"native\": {\"max_cards\": 4, \"max_series\": 5}, \"warning\": {\"max_cards\": 6, \"max_series\": 7}}, \"required_qa_checks\": [\"CHART_NATIVE\", \"FONT_MINIMUM\"], \"style_dependencies\": [\"card_tokens.metric\", \"chart_tokens\"], \"notes\": []},\n    {\"component_type\": \"timeline\", \"display_name\": \"Timeline\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"diagram\", \"judgment\"], \"semantic_capabilities\": [\"sequence\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"milestones\", \"labels\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 12, \"max_edges\": 18}}, \"required_qa_checks\": [\"DIAGRAM_MAIN_PATH\", \"COLOR_CONTRACT\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"process_flow\", \"display_name\": \"Process Flow\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"diagram\"], \"semantic_capabilities\": [\"flow\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"nodes\", \"labels\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 12, \"max_edges\": 18}}, \"required_qa_checks\": [\"DIAGRAM_MAIN_PATH\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"process_lane\", \"display_name\": \"Process Lane\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"diagram\"], \"semantic_capabilities\": [\"lane\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"lanes\", \"nodes\", \"labels\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 12, \"max_edges\": 18}}, \"required_qa_checks\": [\"DIAGRAM_MAIN_PATH\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"swimlane\", \"display_name\": \"Swimlane\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"diagram\"], \"semantic_capabilities\": [\"lane\", \"ownership\"], \"native_capability\": \"partial\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"partial\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"lane_labels\", \"node_labels\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 14, \"max_edges\": 20}}, \"required_qa_checks\": [\"DIAGRAM_NODE_OVERLAP\", \"EDITABLE_LABEL_RATIO\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"issue_tree\", \"display_name\": \"Issue Tree\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"diagram\", \"judgment\"], \"semantic_capabilities\": [\"decomposition\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"nodes\", \"labels\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 10, \"max_edges\": 12}, \"warning\": {\"max_nodes\": 14, \"max_edges\": 18}}, \"required_qa_checks\": [\"DIAGRAM_MAIN_PATH\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"decision_tree\", \"display_name\": \"Decision Tree\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"decision\", \"diagram\"], \"semantic_capabilities\": [\"branching\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"nodes\", \"labels\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 10, \"max_edges\": 12}, \"warning\": {\"max_nodes\": 14, \"max_edges\": 18}}, \"required_qa_checks\": [\"DIAGRAM_MAIN_PATH\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"layered_architecture\", \"display_name\": \"Layered Architecture\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"architecture\", \"diagram\"], \"semantic_capabilities\": [\"layers\", \"ownership_boundary\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"partial\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"layer_labels\", \"node_labels\", \"legend\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 14, \"max_edges\": 20}}, \"required_qa_checks\": [\"DIAGRAM_NODE_OVERLAP\", \"EDITABLE_LABEL_RATIO\", \"COLOR_CONTRACT\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": [\"Python renderer verified with native editable shapes and bound connectors.\"]},\n    {\"component_type\": \"drill_down_stair\", \"display_name\": \"Drill-down Stair\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"diagram\", \"judgment\", \"data\"], \"semantic_capabilities\": [\"hierarchy\", \"drill_down\", \"progressive_focus\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"unsupported\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"unknown\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"level_labels\", \"level_values\", \"focus_connectors\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 7, \"max_edges\": 6}, \"warning\": {\"max_nodes\": 10, \"max_edges\": 9}}, \"required_qa_checks\": [\"DIAGRAM_MAIN_PATH\", \"EDITABLE_LABEL_RATIO\", \"COLOR_CONTRACT\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": [\"Python renderer verified with native editable shapes and bound connectors.\"]},\n    {\"component_type\": \"phase_roadmap\", \"display_name\": \"Phase Roadmap\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"roadmap\", \"diagram\", \"decision\"], \"semantic_capabilities\": [\"sequence\", \"milestone\", \"dependency\", \"chronology\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"unsupported\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"unknown\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"phase_labels\", \"dates\", \"milestones\", \"dependencies\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 12, \"max_edges\": 16}}, \"required_qa_checks\": [\"DIAGRAM_MAIN_PATH\", \"EDITABLE_LABEL_RATIO\", \"COLOR_CONTRACT\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": [\"Python renderer verified with native editable shapes and bound connectors.\"]},\n    {\"component_type\": \"product_ui_overview\", \"display_name\": \"Product UI Overview\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"judgment\", \"diagram\", \"instruction\"], \"semantic_capabilities\": [\"ui_space\", \"workspace_layout\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"unsupported\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"unknown\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"space_labels\", \"relationships\", \"source_labels\"], \"allowed_delivery_routes\": [\"native_diagram\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 12, \"max_edges\": 18}}, \"required_qa_checks\": [\"EDITABLE_LABEL_RATIO\", \"SOURCE_LABEL\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": [\"Python renderer verified with native editable shapes and bound connectors.\"]},\n    {\"component_type\": \"interaction_storyboard\", \"display_name\": \"Interaction Storyboard\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"judgment\", \"diagram\", \"instruction\"], \"semantic_capabilities\": [\"interaction\", \"state_transition\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"unsupported\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"unknown\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"step_labels\", \"transitions\", \"source_labels\"], \"allowed_delivery_routes\": [\"native_diagram\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 12, \"max_edges\": 18}}, \"required_qa_checks\": [\"DIAGRAM_MAIN_PATH\", \"EDITABLE_LABEL_RATIO\", \"SOURCE_LABEL\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": [\"Python renderer verified with native editable shapes and bound connectors.\"]},\n    {\"component_type\": \"hub_spoke\", \"display_name\": \"Hub Spoke\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"diagram\"], \"semantic_capabilities\": [\"centrality\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"hub_label\", \"spoke_labels\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 12, \"max_edges\": 16}}, \"required_qa_checks\": [\"DIAGRAM_NODE_OVERLAP\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"ecosystem_map\", \"display_name\": \"Ecosystem Map\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"architecture\", \"evidence\", \"decision\", \"diagram\"], \"semantic_capabilities\": [\"multi_party_relationship\", \"ownership_boundary\", \"influence\", \"dependency\"], \"native_capability\": \"partial\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"partial\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"partial\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"title\", \"node_labels\", \"legend\", \"key_annotations\"], \"allowed_delivery_routes\": [\"native_diagram\", \"svg_component\", \"hybrid_overlay\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 14, \"max_edges\": 20}}, \"required_qa_checks\": [\"DIAGRAM_NODE_OVERLAP\", \"DIAGRAM_EDGE_CROSSING\", \"DIAGRAM_MAIN_PATH\", \"EDITABLE_LABEL_RATIO\", \"COLOR_CONTRACT\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"capability_landscape\", \"display_name\": \"Capability Landscape\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"diagram\"], \"semantic_capabilities\": [\"nested_regions\"], \"native_capability\": \"partial\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"partial\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"partial\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"region_labels\", \"node_labels\", \"legend\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 14, \"max_edges\": 20}}, \"required_qa_checks\": [\"DIAGRAM_NODE_OVERLAP\", \"EDITABLE_LABEL_RATIO\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"dependency_graph\", \"display_name\": \"Dependency Graph\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"architecture\", \"diagram\"], \"semantic_capabilities\": [\"dependency\"], \"native_capability\": \"partial\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"partial\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"partial\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"node_labels\", \"legend\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 14, \"max_edges\": 20}}, \"required_qa_checks\": [\"DIAGRAM_EDGE_CROSSING\", \"DIAGRAM_MAIN_PATH\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"flywheel\", \"display_name\": \"Flywheel\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"diagram\", \"judgment\"], \"semantic_capabilities\": [\"feedback_loop\"], \"native_capability\": \"partial\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"partial\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"partial\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"node_labels\", \"loop_labels\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 12, \"max_edges\": 16}}, \"required_qa_checks\": [\"DIAGRAM_MAIN_PATH\", \"EDITABLE_LABEL_RATIO\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"causal_chain\", \"display_name\": \"Causal Chain\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"diagram\", \"judgment\"], \"semantic_capabilities\": [\"cause_effect\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"nodes\", \"labels\", \"annotations\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 12, \"max_edges\": 18}}, \"required_qa_checks\": [\"DIAGRAM_MAIN_PATH\", \"COLOR_CONTRACT\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"zoned_ecosystem\", \"display_name\": \"Zoned Ecosystem\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"architecture\", \"evidence\", \"decision\", \"diagram\"], \"semantic_capabilities\": [\"multi_party_relationship\", \"domain_zones\", \"cross_boundary_relationship\"], \"native_capability\": \"partial\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"partial\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"partial\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"zone_labels\", \"node_labels\", \"legend\", \"key_annotations\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 16, \"max_edges\": 24}}, \"required_qa_checks\": [\"DIAGRAM_NODE_OVERLAP\", \"DIAGRAM_EDGE_CROSSING\", \"DIAGRAM_MAIN_PATH\", \"EDITABLE_LABEL_RATIO\", \"COLOR_CONTRACT\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": [\"Formal Stage 5 name for complex ecosystem diagrams. ecosystem_map remains as a compatibility alias.\"]},\n    {\"component_type\": \"data_flow\", \"display_name\": \"Data Flow\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"architecture\", \"diagram\"], \"semantic_capabilities\": [\"data_flow\", \"source_processing_destination\"], \"native_capability\": \"partial\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"partial\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"system_labels\", \"data_labels\", \"legend\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 14, \"max_edges\": 20}}, \"required_qa_checks\": [\"DIAGRAM_MAIN_PATH\", \"EDITABLE_LABEL_RATIO\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"state_transition\", \"display_name\": \"State Transition\", \"category\": \"diagram\", \"supported_primary_expressions\": [\"relationship_visual\"], \"supported_slide_roles\": [\"diagram\", \"decision\"], \"semantic_capabilities\": [\"state_change\", \"trigger\"], \"native_capability\": \"full\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"full\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"full\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"state_labels\", \"transition_labels\"], \"allowed_delivery_routes\": [\"native_diagram\", \"hybrid_overlay\", \"svg_component\"], \"preferred_delivery_route\": \"native_diagram\", \"fallback_chain\": [\"hybrid_overlay\", \"svg_component\"], \"raster_policy\": {\"allowed\": false, \"max_area_ratio\": 0, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {\"max_nodes\": 8, \"max_edges\": 10}, \"warning\": {\"max_nodes\": 12, \"max_edges\": 18}}, \"required_qa_checks\": [\"DIAGRAM_MAIN_PATH\", \"COLOR_CONTRACT\"], \"style_dependencies\": [\"diagram_tokens.node\", \"diagram_tokens.connector\"], \"notes\": []},\n    {\"component_type\": \"conceptual_scene\", \"display_name\": \"Conceptual Scene\", \"category\": \"scene\", \"supported_primary_expressions\": [\"conceptual_scene\"], \"supported_slide_roles\": [\"cover\", \"judgment\"], \"semantic_capabilities\": [\"metaphor\"], \"native_capability\": \"none\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"visual_only\"}, \"python_pptx\": {\"level\": \"visual_only\"}, \"officecli\": {\"level\": \"visual_only\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"title\", \"caption\", \"source_note\"], \"allowed_delivery_routes\": [\"generated_image\", \"hybrid_overlay\"], \"preferred_delivery_route\": \"generated_image\", \"fallback_chain\": [\"hybrid_overlay\"], \"raster_policy\": {\"allowed\": true, \"max_area_ratio\": 0.55, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {}, \"warning\": {}}, \"required_qa_checks\": [\"EDITABLE_LABEL_RATIO\", \"RASTER_DISCLOSURE\"], \"style_dependencies\": [\"image_tokens\"], \"notes\": []},\n    {\"component_type\": \"editorial_illustration\", \"display_name\": \"Editorial Illustration\", \"category\": \"scene\", \"supported_primary_expressions\": [\"conceptual_scene\"], \"supported_slide_roles\": [\"cover\", \"judgment\"], \"semantic_capabilities\": [\"illustration\"], \"native_capability\": \"none\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"visual_only\"}, \"python_pptx\": {\"level\": \"visual_only\"}, \"officecli\": {\"level\": \"visual_only\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"title\", \"caption\", \"source_note\"], \"allowed_delivery_routes\": [\"generated_image\", \"hybrid_overlay\"], \"preferred_delivery_route\": \"generated_image\", \"fallback_chain\": [\"hybrid_overlay\"], \"raster_policy\": {\"allowed\": true, \"max_area_ratio\": 0.55, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {}, \"warning\": {}}, \"required_qa_checks\": [\"RASTER_DISCLOSURE\"], \"style_dependencies\": [\"image_tokens\"], \"notes\": []},\n    {\"component_type\": \"brand_character_scene\", \"display_name\": \"Brand Character Scene\", \"category\": \"scene\", \"supported_primary_expressions\": [\"conceptual_scene\"], \"supported_slide_roles\": [\"cover\"], \"semantic_capabilities\": [\"brand_character\"], \"native_capability\": \"none\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"visual_only\"}, \"python_pptx\": {\"level\": \"visual_only\"}, \"officecli\": {\"level\": \"visual_only\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"title\", \"caption\"], \"allowed_delivery_routes\": [\"generated_image\", \"hybrid_overlay\"], \"preferred_delivery_route\": \"generated_image\", \"fallback_chain\": [\"hybrid_overlay\"], \"raster_policy\": {\"allowed\": true, \"max_area_ratio\": 0.55, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {}, \"warning\": {}}, \"required_qa_checks\": [\"RASTER_DISCLOSURE\"], \"style_dependencies\": [\"image_tokens\"], \"notes\": []},\n    {\"component_type\": \"material_background\", \"display_name\": \"Material Background\", \"category\": \"decoration\", \"supported_primary_expressions\": [\"conceptual_scene\", \"textual_argument\"], \"supported_slide_roles\": [\"cover\", \"section\"], \"semantic_capabilities\": [\"background\"], \"native_capability\": \"none\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"visual_only\"}, \"python_pptx\": {\"level\": \"visual_only\"}, \"officecli\": {\"level\": \"visual_only\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"title\", \"caption\"], \"allowed_delivery_routes\": [\"background_image\", \"generated_image\", \"hybrid_overlay\"], \"preferred_delivery_route\": \"background_image\", \"fallback_chain\": [\"hybrid_overlay\"], \"raster_policy\": {\"allowed\": true, \"max_area_ratio\": 1, \"whole_slide_forbidden\": false, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limits\": {\"native\": {}, \"warning\": {}}, \"required_qa_checks\": [\"EDITABLE_LABEL_RATIO\", \"RASTER_DISCLOSURE\"], \"style_dependencies\": [\"image_tokens\"], \"notes\": []},\n    {\"component_type\": \"complex_infographic\", \"display_name\": \"Complex Infographic\", \"category\": \"scene\", \"supported_primary_expressions\": [\"conceptual_scene\", \"relationship_visual\"], \"supported_slide_roles\": [\"diagram\", \"judgment\"], \"semantic_capabilities\": [\"dense_visual_explanation\"], \"native_capability\": \"partial\", \"builder_support\": {\"pptxgenjs\": {\"level\": \"partial\"}, \"python_pptx\": {\"level\": \"full\"}, \"officecli\": {\"level\": \"partial\"}, \"html_svg\": {\"level\": \"visual_only\"}}, \"editable_core\": [\"title\", \"key_labels\", \"legend\", \"source_note\"], \"allowed_delivery_routes\": [\"hybrid_overlay\", \"svg_component\", \"generated_image\"], \"preferred_delivery_route\": \"hybrid_overlay\", \"fallback_chain\": [\"svg_component\", \"generated_image\"], \"raster_policy\": {\"allowed\": true, \"max_area_ratio\": 0.55, \"whole_slide_forbidden\": true, \"requires_disclosure\": true, \"requires_native_overlay\": true}, \"complexity_limi\n\nFile v5.1.1:references/component-registry.md\n\n# Component Registry\n\nComponent Registry is the system capability catalog. It answers which components the skill recognizes, what each component can preserve as editable PowerPoint, and which delivery routes are allowed before a builder draws anything.\n\nThe machine-readable source of truth is `references/component-registry.json`, validated by `schemas/component-registry.schema.json`.\n\n## Required Workflow\n\nBefore building a non-trivial deck:\n\n1. Resolve each PPT IR object to a `component_type`.\n2. Load `references/component-registry.json`.\n3. Run `scripts/resolve_component_delivery.py`.\n4. Produce `.ppt-work/contracts/delivery-plan.json`.\n5. Validate the delivery plan.\n6. Build according to the selected routes.\n7. Record actual route deviations in Build Manifest.\n\n## Route Meaning\n\n- `native_ppt`: editable PowerPoint text/shapes/cards.\n- `native_chart`: editable chart data and labels.\n- `native_table`: editable table cells.\n- `native_diagram`: editable nodes/connectors/labels.\n- `svg_component`: bounded SVG component, not whole-slide replacement.\n- `raster_component`: bounded raster component with disclosure.\n- `generated_image`: generated illustration or concept scene with native title/caption.\n- `background_image`: background only; title/body remain native.\n- `hybrid_overlay`: SVG/raster base plus native editable overlays.\n- `unsupported`: no valid route; builder must stop or choose another builder.\n\n## Non-Negotiables\n\n- Ordinary text, cards, KPI cards, simple charts, and tables do not rasterize.\n- `native_required` objects never silently fall back to SVG or image.\n- Premium profile forbids unknown builder support and whole-slide raster.\n- Complex diagrams prefer `native_diagram -> hybrid_overlay -> svg_component`.\n- Conceptual scenes use generated/background visuals with native title, caption, and source note.\n\n## Diagram Components\n\nRelationship-heavy components must be backed by Diagram IR before route selection. Component Registry only says which implementation routes are allowed; Diagram IR says what the diagram means.\n\nStage 5 diagram component types include:\n\n```text\nprocess_flow\nprocess_lane\nswimlane\ntimeline\nlayered_architecture\nissue_tree\ndecision_tree\ncausal_chain\nflywheel\nhub_spoke\nzoned_ecosystem\ncapability_landscape\ndependency_graph\ndata_flow\nstate_transition\n```\n\n`ecosystem_map` remains as a compatibility component name, but new Diagram IR should prefer `zoned_ecosystem` when the diagram is explicitly zone-based.\n\nDelivery Resolver may attach `diagram_analysis` to an object-level Delivery Plan entry: node count, edge count, connector-web risk, layout recommendation, recommended delivery route, and split recommendation.\n\nArchive v5.1.0: 286 files, 667995 bytes\n\nFiles: assets/samples/v5.0-latin-america-ai-zh-evidence.json (9825b), assets/samples/v5.1-no-image-policy-evidence.json (7204b), builders/__init__.py (379b), builders/base.py (2761b), builders/custom_adapter.py (1506b), builders/html_svg_adapter.py (1692b), builders/officecli_adapter.py (1681b), builders/pptxgenjs_adapter.py (10149b), builders/python_pptx_adapter.py (58307b), builders/registry.py (904b), builders/selector.py (12226b), engine/__init__.py (413b), engine/__main__.py (23144b), engine/authored_page.py (17313b), engine/autonomy.py (8287b), engine/bespoke_quality.py (8419b), engine/bespoke_runtime.py (12966b), engine/bespoke.py (5549b), engine/chart_inference.py (7550b), engine/compile.py (13064b), engine/component_atlas_report.py (5290b), engine/component_atlas.py (52527b), engine/component_composer.py (19441b), engine/component_intent.py (6695b), engine/component_inventory.py (6115b), engine/content_contract.py (4548b), engine/content_integrity_gate.py (2905b), engine/coverage.py (6642b), engine/deck_diversity.py (2180b), engine/design_contract.py (6007b), engine/design_scene/__init__.py (99b), engine/design_scene/authoring.py (10291b), engine/design_scene/backend.py (16359b), engine/design_scene/cli.py (21360b), engine/design_scene/contract.py (17330b), engine/design_scene/incremental.py (6131b), engine/design_scene/isolation_probe.py (3088b), engine/design_scene/pipeline.py (20879b), engine/design_scene/preflight.py (7924b), engine/design_scene/runtime.py (11783b), engine/design_scene/store.py (7748b), engine/design_scene/windows_io.py (6523b), engine/design_scene/worker.py (1504b), engine/diagram.py (16777b), engine/evidence_ledger.py (5234b), engine/evidence_outline.py (1997b), engine/extractive_ir.py (6437b), engine/font_metrics.py (2676b), engine/high_fidelity_guard.py (1680b), engine/layout.py (35407b), engine/manuscript_component_planner.py (24298b), engine/manuscript_strict_preview.py (18526b), engine/metrics/arial-unicode-ms.json (1004b), engine/metrics/helvetica.json (1006b), engine/metrics/songti-sc.json (1013b), engine/metrics/system-font.json (1004b), engine/model_authored_quality.py (7016b), engine/model_template_component_runtime.py (15891b), engine/model_template_composer.py (11248b), engine/narrative_contract.py (7354b), engine/policy.py (9161b), engine/pptx_builder.py (10249b), engine/pptxgenjs_builder.py (3272b), engine/presentation_subset.py (1543b), engine/production_request.py (8964b), engine/proposal_apply.py (5333b), engine/provenance.py (6984b), engine/qa_plan.py (4370b), engine/refine_renderers.py (10713b), engine/refine_spec.py (3930b), engine/route_policy.py (801b), engine/source_doc.py (4625b), engine/speaker_notes.py (5675b), engine/strict_template.py (67777b), engine/structural_parser.py (9664b), engine/style_pack.py (7547b), engine/style_validator.py (5626b), engine/template_component_adaptation.py (11989b), engine/template_delivery_quality.py (5038b), engine/template_evidence.py (8490b)\n\nFile v5.1.0:SKILL.md\n\n---\nname: \"article-html-to-ppt\"\ndescription: \"Create editable PPTX from documents, reconstruct supplied slide design images, or preserve native PPTX templates. Design with structured native objects and real previews; image-generation tools are optional. Use for source-based presentations, design-to-PPT reconstruction, template reuse, and revisions to PPT Smith tasks.\"\nmetadata:\n  display_name: \"MeowClaw PPT Smith\"\n  english_alias: \"MeowClaw PPT Smith\"\n  public_slug: \"meowclaw-pptsmith\"\n  version: \"5.1.0\"\n  compatibility_aliases: [\"article-html-to-ppt\", \"meowclaw-decksmith\"]\n---\n\n# MeowClaw PPT Smith\n\n## Select the user's intent\n\n| User wants | Route | Read when selected |\n| --- | --- | --- |\n| Make a presentation from a document, optionally with brand/style references | `create` (default) | [Declarative workflow](references/declarative-design.md) |\n| Reconstruct supplied complete slide designs as editable objects | `recreate` | [Declarative workflow](references/declarative-design.md) |\n| Reuse a native PPTX template and its components | `template` | [Template workflow](references/routes/v4-template-route.md) |\n\nInfer intent, audience, language and page budget from the request. Ask only about material conflicts, such as exact image reconstruction versus native template preservation. A style image does not imply exact reconstruction. A source page count does not prescribe slide count.\n\n## Shared authoring contract\n\nRead the full source once, preserve page/evidence anchors, then use the relevant evidence for each slide. The model owns narrative, assertion titles, visual encoding and page-specific design. The backend executes those decisions; it does not replace them with generic extractive layouts. Insufficient authoring capability returns `MODEL_AUTHORING_REQUIRED`.\n\nChoose typography, palette, composition and visual rhythm for the current content, audience and references. Do not copy the last task's colours, card layout, footer or brand. Reusable components are primitives, not mandatory page styles.\n\nKeep checked text/data in content records, geometry in scene records, and detailed reasoning, sources and qualifications in speaker notes. Unknown chart data stays unknown. Reconstructable charts/tables use native data; isolated pictures are replaceable assets, not editable internal objects. Do not insert a whole-page screenshot to claim editable reconstruction. Disclose deliberate simplifications and accepted raster exceptions.\n\n## Efficient native design and revisions\n\nFor create/recreate run `python3 -m engine design capabilities`. The host supplies model capabilities; local code cannot infer whether the current model sees or generates images.\n\nFor **create**, author structured design, render a native candidate to PNG, inspect and revise it. Image generation is optional for independent illustrations or an explicitly requested external design target. No image tool is needed for ordinary native design. Do not convert your own preview into a fake external reference or claim self-comparison proves design quality.\n\nFor **recreate**, visually read the supplied complete target, verify its content against the source, and preserve approved geometry. Do not invent source numbers from chart pixel heights. Keep original targets, approved changes and actual PPTX previews distinct.\n\nUse the compact author format and page-scoped context described in the selected guide. The fixed compiler expands style/source/symbol references into validated native objects. Do not execute task-authored scripts to bypass unsupported features.\n\nRun the real-office font preflight before expanding a large deck. Check representative compositions first; continue without mandatory user approval unless the request needs a consequential choice. Fontconfig matching alone does not prove actual Chinese font rendering.\n\nDefault tool feedback is a summary. Read full reports only for relevant failures; keep task state and evidence in files. Use guarded object patches instead of rewriting the deck. For changed builds, inherit independent page review only through the verified inheritance command; changed content, notes, geometry, assets, fonts or renderer invalidate the affected evidence.\n\n## Review and delivery\n\nActual PPTX rendering, checked content/data, resolved fonts, structural editability, target-software edit/save/reopen checks, and independent visual review are required. Review every new or changed page at readable resolution; a contact sheet alone cannot verify small text.\n\nOriginal design without an external target uses `reconstruction: not_applicable`; design, content, fonts and editability still require approval. Reconstruction with a target requires fidelity approval. Reused review must retain its original reviewer observations and evidence, never a fabricated second identity. A generator's own review is not independent.\n\n`candidate_unreviewed`, `draft`, and `render_incomplete` are not final. Deliver only when the exact candidate passes the selected route's gates. User-visible output includes editable PPTX, actual preview and material editing limitations.\n\nQuality acceptance is separate from OS isolation. `--isolation auto` chooses available macOS isolation or host execution. Host may deliver after quality acceptance, while reporting OS isolation unverified. `--require-os-isolation` remains binding; do not downgrade it. Do not claim untested PowerPoint/WPS or cross-platform parity.\n\n## Compatibility only\n\nLegacy `new_design` and `style_transfer` init arguments map to create; register requested style references explicitly. Existing saved legacy tasks retain their old target contract. Draft is a state/diagnostic option, not another production promise.\n\nBespoke remains an advanced compatibility authoring route where needed: read [its guide](references/routes/v4-bespoke-route.md). Template preserves native assets and never silently falls back to blank-slide reconstruction. Their detailed [V4 authoring contract](references/routes/v4-authoring-contract.md) loads only for those routes.\n\nStandard / Engineering remains available for internal diagnostics and explicit engineering drafts, not as a substitute for final model-authored design. Do not load all compatibility guides for a normal create task.\n\nFile v5.1.0:README.md\n\n# MeowClaw PPT Smith\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/SkillMelody/PPT-Smith/v5.1.0/assets/branding/pptsmith-github-zh.png\" alt=\"MeowClaw PPT Smith 图标\" width=\"836\">\n</p>\n\n> [English](README.en.md) · [Skill 执行入口](SKILL.md) · [工作流](references/declarative-design.md) · [可编辑样例](https://raw.githubusercontent.com/SkillMelody/PPT-Smith/v5.1.0/assets/samples/v5.1-no-image-policy-native.pptx)\n\n把源文档、设计图或原生 PPT 模板，转成有来源、有真实预览、可以继续修改的演示文稿。模型负责理解内容和设计页面，固定后端负责生成原生对象与核验交付。\n\n**当前版本：`5.1.0`。** 公共标识为 `meowclaw-pptsmith`，兼容安装名为 `article-html-to-ppt`、`meowclaw-decksmith`；许可证为 Apache-2.0。\n\n## 适用场景：三个入口\n\n| 你要完成的事 | 输入 | 路线与结果 |\n| --- | --- | --- |\n| 把报告、政策文件、PRD、文章做成汇报或课程 | 源文档；可选品牌、风格参考图 | **create 资料生成**：按内容与受众设计，生成原生 PPT 和真实预览 |\n| 把设计师交稿、完整幻灯片设计图还原为可编辑 PPT | 整页设计图；用于核对文字和数值的源文档 | **recreate 设计图还原**：重建对象，并对照冻结目标检查差异 |\n| 使用公司或客户的 PPTX 模板 | 原生 PPTX 模板与源材料 | **template 模板复用**：分析并复用原生组件，按模板视觉规则补充缺口 |\n\n只有风格参考图时通常使用 create；要求忠实还原整页时使用 recreate。原生模板交给独立的 Template 工作流，不转为截图底稿。资料页数不等于演示页数，页数预算应依据受众、目的和信息密度确定。\n\n**设计风格不固定。** 配色、字体、构图、图表和页面节奏由当前内容、受众与品牌约束决定。复用的样式、来源索引和图标只是减少重复描述，不会强制所有页面套用同一组卡片。\n\n## 没有生图模型，也能出设计预览\n\n默认原创流程：\n\n```text\n完整源材料 → 内容与来源整理 → 结构化设计\n→ 原生可编辑 PPTX → LibreOffice PDF → PNG 预览\n→ 独立视觉审核与修订 → 编辑回存检查 → 最终交付\n```\n\n具备视觉理解和文本输出能力的模型，可以编写页面设计并检查程序渲染的图片；无需直接生成图片。这里会先产生内部原生候选，再得到设计预览。生图工具可选，用于独立插画或用户明确要求的外部设计目标。\n\n| 当前能力 | 可以怎样使用 |\n| --- | --- |\n| 能识图，无生图工具 | 创建原创页面、还原已有设计图、检查真实预览 |\n| 能识图，也能生图 | 在上述流程中按需补充独立图片素材 |\n| 只有文本模型 | 可以编写结构化设计；图像理解和独立视觉验收仍需视觉模型或人工 |\n| 缺少办公软件或渲染工具 | 可以准备内容与设计；补齐真实渲染后才能最终交付 |\n\n复杂摄影和自由插画仍需要合格素材。当前声明式入口不接受任意 HTML/CSS、SVG 或模型脚本，也不承诺任意设计图都能无损拆解。可恢复数据的图表、表格使用原生数据；独立图片仅可替换，不等于内部元素可编辑。\n\n## v5.1 实测：无生图的 6 页中文政策解读\n\n输入为用户提供的 7 页《人工智能中小企业创业支持计划（2026—2028年）》PDF。独立作者只使用新版 Skill 和源文档完成原创稿，未调用生图工具。输出包括 6 页中文内容、逐页来源和 6 页演讲者备注；90 天行动步骤明确标为作者建议。\n\n**下载同一份 [可编辑 PPTX](https://raw.githubusercontent.com/SkillMelody/PPT-Smith/v5.1.0/assets/samples/v5.1-no-image-policy-native.pptx)**，或查看 [对象统计与验收摘要 JSON](assets/samples/v5.1-no-image-policy-evidence.json)。以下图片均直接来自该 PPTX 的真实办公软件渲染，没有重绘或美化截图。\n\n### 封面：13 个文本对象 + 6 个原生形状\n\n![v5.1 无生图原创封面，主标题与三条政策主线均为原生对象](https://raw.githubusercontent.com/SkillMelody/PPT-Smith/v5.1.0/assets/samples/v5.1-no-image-policy-page-01.png)\n\n### 目标页：16 个文本对象 + 3 个原生形状\n\n![v5.1 三年目标页，保留“1万家以上”“突破2000家”及三个10个的原文限定](https://raw.githubusercontent.com/SkillMelody/PPT-Smith/v5.1.0/assets/samples/v5.1-no-image-policy-page-02.png)\n\n### 行动页：18 个文本对象 + 5 个原生形状\n\n![v5.1 原生时间轴，明确标记为作者建议而非官方申报流程](https://raw.githubusercontent.com/SkillMelody/PPT-Smith/v5.1.0/assets/samples/v5.1-no-image-policy-page-06.png)\n\n统计直接读取交付 PPTX，每个文本框或形状计一次：\n\n| 页码与内容 | 原生文本 | 原生形状 | 可编辑对象合计 |\n| --- | ---: | ---: | ---: |\n| 1 · 政策导航 | 13 | 6 | 19 |\n| 2 · 三年目标 | 16 | 3 | 19 |\n| 3 · 要素供给 | 15 | 4 | 19 |\n| 4 · 主体培育 | 12 | 3 | 15 |\n| 5 · 开源与保障 | 20 | 5 | 25 |\n| 6 · 作者行动建议 | 18 | 5 | 23 |\n| **全稿** | **94** | **26** | **120** |\n\n本例图片、原生图表、原生表格和分组均为 **0**，6 页均有备注。数字是可编辑文本，不把它们称为原生图表；装饰线和圆点计入形状，备注、字符数不重复计入对象数。对象数量用于说明编辑结构，不作为设计质量分数。\n\n该候选已通过独立逐页视觉与来源审核，门禁状态为 `final_delivery_ready`。在 **macOS + LibreOffice 26.2.4.2** 中通过 Basic/UNO 修改副本的文字、数字文字及形状颜色，保存、关闭、重开后验证修改保留、6 页备注完整，原候选文件未改变。此为实际应用对象编辑测试，并非 GUI 点击测试；不外推为 Windows/Linux 或 PowerPoint/WPS 实机验证。样例使用 Arial Unicode MS，字体未嵌入，换设备需检查字体与排版。\n\n## v5.0 实测保留：20 页中文研究解读\n\n输入为 67 页 *Agents, robots, and us: How AI reshapes work and skills in Latin America* 报告，输出 20 页《智能体、机器人与我们》中文研究解读，涵盖自动化潜力、经济价值、岗位与技能、国家对照和企业案例。每页均有来源与演讲者备注。这是 v5.0 阶段的真实历史成品，单独统计，不与上面的 v5.1 案例混算。\n\n流程为“源文档 → 完整页面设计图 → 多模态识读与声明式重建 → 原生 PPTX → 实际渲染与验收”。以下保留原交付的 20 页总览图；[下载原始可编辑 PPTX](https://raw.githubusercontent.com/SkillMelody/PPT-Smith/v5.1.0/assets/samples/v5.0-latin-america-ai-zh-native.pptx)，[查看逐页对象数据](assets/samples/v5.0-latin-america-ai-zh-evidence.json)。\n\n![v5.0 智能体、机器人与我们：20 页中文可编辑 PPT 实际渲染总览](https://raw.githubusercontent.com/SkillMelody/PPT-Smith/v5.1.0/assets/samples/v5.0-latin-america-ai-zh-overview.png)\n\n| 对象类别 | 数量 | 可编辑范围 |\n| --- | ---: | --- |\n| 原生文本框 | 274 | 修改文字、字体、字号与颜色 |\n| 原生形状与路径 | 164 | 移动、缩放与改色 |\n| 原生图表 | 7 | 修改数据系列；附 7 个内嵌工作簿 |\n| 原生表格 | 2 | 修改单元格、行列和样式 |\n| **原生可编辑对象合计** | **447** | **274 + 164 + 7 + 2** |\n| 独立封面图片 | 1 | 可整体替换，内部插画元素不可逐个编辑 |\n| **幻灯片对象总数** | **448** | **447 个原生对象 + 1 张图片** |\n\n统计直接读取原交付 PPTX，每个对象只计一次；图表数据点、表格单元格、7 个数据工作簿和 20 页备注不重复计数。\n\n<details>\n<summary>展开 20 页可编辑对象明细</summary>\n\n| 页码 | 文本 | 形状/路径 | 图表 | 表格 | 原生可编辑合计 | 可替换图片 |\n| --- | ---: | ---: | ---: | ---: | ---: | ---: |\n| 1 | 7 | 2 | 0 | 0 | 9 | 1 |\n| 2 | 15 | 18 | 0 | 0 | 33 | 0 |\n| 3 | 19 | 6 | 0 | 0 | 25 | 0 |\n| 4 | 13 | 5 | 1 | 0 | 19 | 0 |\n| 5 | 14 | 7 | 1 | 0 | 22 | 0 |\n| 6 | 9 | 3 | 1 | 0 | 13 | 0 |\n| 7 | 9 | 3 | 1 | 0 | 13 | 0 |\n| 8 | 16 | 10 | 0 | 0 | 26 | 0 |\n| 9 | 11 | 5 | 0 | 1 | 17 | 0 |\n| 10 | 13 | 8 | 1 | 0 | 22 | 0 |\n| 11 | 9 | 3 | 1 | 0 | 13 | 0 |\n| 12 | 12 | 5 | 1 | 0 | 18 | 0 |\n| 13 | 15 | 9 | 0 | 0 | 24 | 0 |\n| 14 | 7 | 3 | 0 | 1 | 11 | 0 |\n| 15 | 20 | 9 | 0 | 0 | 29 | 0 |\n| 16 | 15 | 6 | 0 | 0 | 21 | 0 |\n| 17 | 16 | 13 | 0 | 0 | 29 | 0 |\n| 18 | 20 | 9 | 0 | 0 | 29 | 0 |\n| 19 | 17 | 28 | 0 | 0 | 45 | 0 |\n| 20 | 17 | 12 | 0 | 0 | 29 | 0 |\n| **全稿** | **274** | **164** | **7** | **2** | **447** | **1** |\n\n</details>\n\n历史验收在 macOS + LibreOffice 26.2.4.2 中通过 Basic/UNO 修改副本的文字、图表数据、表格数据及图片，保存、关闭、重开后改动均保留。设计图与原生重建在字体、图标、渐变及图表样式上仍有差异，不宣称逐像素 1:1；未进行 PowerPoint/WPS 实机验证。使用的 Hiragino Sans GB、Arial 未嵌入，换设备需核对字体与排版。\n\n## 怎么用：把目标交给 Agent\n\n让支持读取 Skill、运行本地工具的宿主加载本目录 [SKILL.md](SKILL.md)，然后提供源材料和需求。普通用户无需手写对象 JSON。\n\n**文档生成，无生图工具：**\n\n```text\n使用 PPT Smith，把这份 PDF 做成约 10 页中文可编辑 PPT。\n受众：中小企业负责人；目标：理解政策重点并形成行动清单。\n当前模型能识图，无生图工具。根据内容建议配色与页面结构，\n保留数字限定词、逐页来源和演讲者备注；作者建议与原文明确区分。\n完成真实预览、独立审核及目标软件编辑回存验证后交付。\n```\n\n**根据设计图还原：**\n\n```text\n以这些完整页面设计图为还原目标，以 PDF 为文字与数字依据。\n保留已批准的版式；如设计图与源文档冲突，列明需要修正的内容。\n标题、正文、可恢复数据的图表和表格使用原生对象，\n说明独立图片与复杂效果的编辑边界，并提供目标/实际预览对照。\n```\n\n**沿用模板：**\n\n```text\n用这个公司 PPTX 模板把报告整理成 15 页中文汇报。\n优先复用原生组件，保留品牌字体和配色，附来源与讲稿。\n模板放不下时调整页面结构并说明，最终验证目标软件中的编辑与保存。\n```\n\n**只修改几处内容：**\n\n```text\n基于上一份任务，只改第 6 页标题和第 7 页备注，其余保持。\n用对象补丁提交改动，重新审核受影响页面；\n未变页面仅通过有效审核继承机制复用记录。\n```\n\n首次说明受众、目的、语言、页数预算、目标软件，以及参考图是“风格参考”还是“精确还原目标”。后续带上原任务目录和需要修改的页/对象，Agent 可按页读取上下文，不必反复粘贴整份材料。\n\n## 减少重复输入与返工\n\n- **按需加载**：Skill 入口只保留公共规则，路线说明按任务读取。\n- **紧凑作者输入**：样式、来源、颜色变量和装饰符号只定义一次，固定编译器展开为严格对象。\n- **短摘要与分页查询**：默认返回构建状态、变更页和证据路径；详细内容按页读取。\n- **真实字体预检**：在批量铺页前检查实际办公软件使用的字体与字符，结果按环境缓存。\n- **版本绑定补丁与审核继承**：修改少量内容不必重写整份 JSON。备注或底层数据改变，即使预览像素相同，也会使相关审核失效。\n\n同一份 6 页任务的实测体积如下，紧凑输入展开后与完整任务完全一致：\n\n| 测量对象 | 原始/完整 | 优化/紧凑 | 字节减少 |\n| --- | ---: | ---: | ---: |\n| Skill 入口（v5.1 开发验收快照，对比 v5.0.1） | 14,384 | 6,278 | 56.4% |\n| 同一任务作者输入 | 69,702 | 42,808 | 38.6% |\n| 同一构建的 CLI 回显 | 24,550 | 631 | 97.4% |\n\n单位为 UTF-8 字节；作者输入采用相同 canonical JSON 编码。[测量口径与摘要](assets/samples/v5.1-no-image-policy-evidence.json)随样例提供。**这些不是实测 token、费用或运行时间降幅。** 完整来源、原生对象、构建和审核证据仍保留。当前每次修订仍完整构建与真实渲染；继承减少重复审阅，不是页级渲染缓存。\n\n## 安装与本地自检\n\n在 Skill 根目录安装 Python 依赖；以下为 macOS/Linux 的 Bash 示例：\n\n```bash\npython3 -m venv .venv\nsource .venv/bin/activate\npython -m pip install -r requirements.txt\npython scripts/check_identity.py\npython scripts/quick_validate_skill.py\npython -m engine design capabilities\n```\n\n真实预览与字体预检还需要 **LibreOffice、Poppler（pdftoppm、pdffonts、pdftotext）、Fontconfig（fc-match）及任务所用字体**。工具应可从 PATH 发现。Windows 使用相应虚拟环境 Python 入口；工具安装与系统差异见 [跨平台运行条件](references/declarative-design.md#跨平台运行条件)。`capabilities` 检测本地工具，不自动识别宿主模型是否能识图或生图。\n\n以下命令展示 Agent 的创建流程，`author.json` 由模型依据源材料编写，必须位于任务目录内；`init` 本身不解析 PDF 或自动设计页面：\n\n```bash\nPPTSMITH_TASK=\"./ppt-work/demo\"\npython -m engine design init --task-dir \"$PPTSMITH_TASK\" --task-id demo --mode create --pages 6\npython -m engine design author --task-dir \"$PPTSMITH_TASK\" --file author.json\npython -m engine design preflight --task-dir \"$PPTSMITH_TASK\" --isolation auto\npython -m engine design build --task-dir \"$PPTSMITH_TASK\" --isolation auto\n```\n\n构建成功仅产生候选。继续使用返回的构建 ID 生成审核表、完成独立审核和真实编辑检查，再执行 `review`、`deliver`。任务目录的 `state.json` 记录接续信息，`task.json`、构建 manifest 和原始审核记录保留完整证据。完整命令见 [声明式工作流](references/declarative-design.md)与 [紧凑输入/局部修订](references/declarative-authoring.md)。\n\n只有使用依赖 PptxGenJS 的兼容构建器时，才需准备 Node/npm 并执行：\n\n```bash\npython scripts/bootstrap_pptxgenjs_runtime.py\n```\n\n该脚本在 `runtime/pptxgenjs` 内执行锁定版本的 `npm ci`。\n\n## 交付与兼容边界\n\n最终交付包括可编辑 PPTX、实际 PDF/PNG 预览、任务及素材记录、对象清单、审核结论和编辑限制。标题、正文、图形和可恢复的数据优先保留原生编辑能力；未经批准的整页截图不能充当可编辑成品。\n\nPPT 质量与 OS 隔离分别验证。`--isolation auto` 在可用的 macOS 环境选择隔离模式，其他环境选择 host；host 通过质量门禁后可交付，并记录 OS 隔离未验证。显式指定 `--require-os-isolation` 时，能力不足仍阻断。运行时适配不等于所有操作系统或办公软件都已实机通过。\n\n原生模板继续使用 [Template 工作流](references/routes/v4-template-route.md)。Bespoke 保留为高级兼容路线，Standard/Engineering 用于明确的工程草稿和诊断。`new_design`、`style_transfer` 新建参数映射到 create；已有旧任务继续遵守原来的目标要求。受限浏览器设计板、模板索引缓存和实际模型成本仪表尚未纳入本版。\n\n## 历史样例\n\n以下为较早版本的真实渲染样例，不计入上面的 v5.1 对象统计。\n\n<details>\n<summary>展开 V4 Template 与 Bespoke 示例</summary>\n\n**Template：31 页研究报告演示。** 基于源报告和原生模板组件完成编排，29 个正文页具备演讲者备注。\n\n![V4 Template 31 页实际渲染联系表](https://raw.githubusercontent.com/SkillMelody/PPT-Smith/v5.1.0/assets/samples/mgi-template-v4-31-page-contact-sheet.png)\n\n**Bespoke：23 页独立设计演示。** 从空白页面制作，含 12 个原生图表和 23 页备注。两份样例使用不同报告，不作为同源质量比较，也不表示与源报告出版方或模板品牌存在合作、授权或背书关系。\n\n![V4 Bespoke 23 页实际渲染联系表](https://raw.githubusercontent.com/SkillMelody/PPT-Smith/v5.1.0/assets/samples/state-ai-2025-independent-bespoke-23-page-contact-sheet.png)\n\n更多历史资源见 [样例目录](https://github.com/SkillMelody/PPT-Smith/tree/v5.1.0/assets/samples/)。\n\n</details>\n\n## 文档与分发\n\n- [SKILL 执行规范](SKILL.md)\n- [声明式工作流、原生能力与验收](references/declarative-design.md)\n- [紧凑作者输入、对象补丁与审核继承](references/declarative-authoring.md)\n- [Template 模板复用](references/routes/v4-template-route.md) · [Bespoke 高定兼容](references/routes/v4-bespoke-route.md)\n- [V4 路线架构](references/routes/v4-three-route-architecture.md) · [历史导出能力](references/export-pipelines.md)\n- [样例证据](assets/samples/v5.1-no-image-policy-evidence.json)\n\nGitHub、ClawHub 等公开分发仅包含 Skill 运行代码、依赖声明、使用文档、模板/Schema，以及本文引用的示例与必要数据。开发测试、CI、开发笔记、推广文章、原始输入、完整验收日志、临时产物和本地工作树不进入公开版本。\n\n本地构建和预览不自动发布文件；源材料如何传给宿主模型取决于宿主配置。飞书/Lark 云端创建、上传或分享仅在用户授权相应交付时执行。\n\n核心引擎、通用组件、可编辑对象与 QA 以 Apache-2.0 开源。企业品牌适配、专属母版、行业生产包、定制组件与代生成/部署服务独立商业交付，不包含在公共仓库或 Skill 分发包中。\n\nFile v5.1.0:schemas/v4/README.md\n\n# PPT Smith v4 Contracts\n\nv4 contracts connect **model-directed presentation authoring** to deterministic\nexecution and verification. A capable model remains responsible for source\nunderstanding, narrative, visible content, data interpretation, visual\nencoding, component choice/composition, speaker notes, and rendered visual\nreview. The engine verifies provenance, native editability, template fidelity,\ncapacity, rendering, and declared quality floors; it does not replace authorial\njudgment.\n\n## Route authority\n\n1. **Bespoke is the quality ceiling and default route.** The model writes a\n   source-grounded IR and native authoring code, starting from a blank deck or\n   using an uploaded deck as visual evidence.\n2. **Template is model-directed native reuse.** The engine extracts a complete\n   reviewed Component Atlas. The model audits every feasible component, chooses\n   and combines matching components, and writes a new template-styled native\n   component only when the Atlas proves there is no feasible match.\n3. **Standard is diagnostic compatibility.** It can execute constrained IR for\n   debugging and fallback workflows, but it is not the V4 quality benchmark and\n   must not be presented as equivalent to Bespoke or Template delivery.\n\n## Delivery principles\n\n1. **Source-grounded authoring.** Facts, metrics, charts, tables, images, and\n   speaker notes retain structural source references and evidence IDs.\n2. **Concise slides, complete notes.** Visible content is presentation-grade;\n   detail moves into speaker notes rather than being truncated with ellipses.\n3. **Native visual encoding.** Reconstructable quantitative exhibits become\n   editable charts, tables, KPI systems, or diagrams. Source-page screenshots\n   are forbidden. Only audited standalone illustrations, photos, and genuinely\n   non-reconstructable figures may remain raster assets.\n4. **Template reuse before invention.** A Template page must disclose the full\n   feasible component set, selected components, rejected candidates, and any\n   newly authored component.\n5. **Fail closed.** Missing evidence, silent truncation, unbound business text,\n   incomplete Component Atlas metadata, style drift, insufficient density,\n   failed real rendering, or missing visual review prevents final delivery.\n\n## Files\n\n| File | Status | Purpose |\n|---|---|---|\n| `presentation-ir.schema.json` | active 4.1.0 | Model-authored content, visual intent, component intent, and speaker-note contract |\n| `examples/presentation-ir-model-directed.json` | reference | Source-grounded quantitative Template page with notes and component audit |\n| `examples/presentation-ir-minimal.json` | diagnostic | Small Standard-compatible contract; not a production-quality benchmark |\n| `examples/presentation-ir-enriched.json` | reference | Rich facts, metrics, relations, and hints |\n| `style-contract-v4.schema.json` | active 4.0.0 | Reusable tokens and rendering constraints |\n| `decision-trace.schema.json` | active 4.0.0 | Machine-readable decision and degradation trace |\n| `render-plan.schema.json` | active 4.0.0 | Native builder execution contract |\n| `production-request.schema.json` | active 1.0.0 | Route, page policy, and template hash contract |\n| `narrative-contract.schema.json` | active 1.0.0 | Bespoke narrative and evidence contract |\n| `template-evidence.schema.json` | active 1.0.0 | Read-only evidence extracted from an uploaded template |\n\nValidation:\n\n```bash\npython3 scripts/validate_contracts.py --strict \\\n  --presentation-ir schemas/v4/examples/presentation-ir-model-directed.json\n```\n\nThe v3 contracts remain available for the existing v3 pipeline. V4 inherits\nv3's high-customization authoring standard while adding reviewed template\ncomponent extraction, reuse, composition, and fidelity gates.\n\nFile v5.1.0:templates/README.md\n\n# Templates\n\nThese files are copyable starting points. Every JSON template in this directory\nvalidates against its schema in `schemas/`, so you can copy one, edit the\ncontent, and run it through the pipeline without first fixing structural errors.\n\nValidate any contract before building:\n\n```bash\npython3 scripts/validate_contracts.py --ppt-ir my-deck.ppt-ir.json --style my-style.json\n```\n\n## Authoring notes\n\nUse sample text only to understand the contract; replace it with the current source material.\n\n| Template | Note |\n| --- | --- |\n| `ppt-ir-example.json` | Contract is `schemas/ppt-ir.schema.json`. Structure your own deck from this shape; do not treat the sample content as defaults. |\n| `style-contract-example.json` | Illustrative token set. Validate real contracts with `schemas/style-contract.schema.json`, or start from one of the five master systems in `references/five-style-master-systems.md`. |\n| `delivery-plan-example.json` | Do not handwrite a delivery plan for production. Generate it with `scripts/resolve_component_delivery.py` so route selection reflects an actual capability probe. |\n| `build-manifest-example.json` | Emitted by a Builder. Contract is `schemas/build-manifest.schema.json`; never handwrite a status into it. |\n| `qa-report-example.json` | Emitted by `scripts/verify_deck.py`. Contract is `schemas/qa-report.schema.json`. |\n| `component-registry-example.json` | Illustrative excerpt. The machine source is `references/component-registry.json`. |\n| `diagram-ir-example.json` | Contract is `schemas/diagram-ir.schema.json`. Normalize with `scripts/normalize_diagram_ir.py` before layout. |\n| `capability-report-example.json` | Emitted by `scripts/capability_probe.py`. Never handwrite a capability claim; the probe is the only authority on what a Builder supports. |\n| `delivery-manifest-example.json` | Emitted by `scripts/package_delivery.py`. Contract is `schemas/delivery-manifest.schema.json`. |\n| `rubric-score-example.json` | Emitted by `scripts/score_deck.py`. For Premium final, the reference rubric must be supplied explicitly. |\n\n## Public example inputs\n\nSmall contract examples are in `examples/contracts/valid/`. Reusable style\ncontracts are in `styles/`; local development fixtures are not distributed.\n\n```bash\npython3 scripts/validate_contracts.py --ppt-ir examples/contracts/valid/ppt-ir.json --style examples/contracts/valid/style-contract.json --strict\n```\n\nFor document-driven creation and image reconstruction, follow the current\n[Skill entry](../SKILL.md) and [declarative workflow](../references/declarative-design.md).\n\n## Markdown templates\n\n| Template | Use |\n| --- | --- |\n| `content-lock-template.md` | Lock source truth and evidence boundaries before storyboarding. |\n| `storyboard-template.md` | Judgment titles, expression mode, and visual anchor per slide. |\n| `ppt-production-artifact-checklist.md` | Which artifacts a profile requires. |\n| `slide-manifest-template.json` | Per-slide object manifest for hybrid delivery. |\n| `visual-qa-gate-template.json` | Visual review record for Standard and Premium. |\n\nFile v5.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7bh27ktnke6be450ha5m9f1982n7dd\",\n  \"slug\": \"article-html-to-ppt\",\n  \"version\": \"5.1.0\",\n  \"publishedAt\": 1789999302604\n}\n\nFile v5.1.0:references/anti-regression-examples.md\n\n# Anti-Regression Examples\n\n## Detailed Spec Literalism\n\nBad: follow every placeholder, coordinate, grid line, connector, and decorative mark from a spec until the slide looks like a wireframe.\n\nGood: infer design intent, assign visual priorities, delete low-value objects, and preserve the primary anchor.\n\n## Relationship Hidden In Cards\n\nBad: turn an ecosystem or architecture paragraph into six equal cards.\n\nGood: use Expression Mode Gate; choose relationship visual or hybrid panel when dependencies, boundaries, flows, or loops matter.\n\n## Connector Web\n\nBad: keep adding PPT connectors because the source mentions relationships.\n\nGood: group into lanes/layers, cap connectors, split the slide, or use SVG/HTML/generated component for bounded complex maps.\n\n## Raster Overuse\n\nBad: rasterize ordinary cards, tables, matrices, metric cards, or simple charts for polish.\n\nGood: keep ordinary message-bearing components editable; reserve raster/SVG/generated components for bounded visual complexity.\n\n## Topic Titles\n\nBad: `Market Trends`, `Architecture`, `Risks`.\n\nGood: `Adoption is broad, but scaling still concentrates in a minority of operators`.\n\n## Fake Verification\n\nBad: deliver only `deck.pptx` and claim final.\n\nGood: render/read back representative slides, count objects/media where possible, and write `verification-report.md` with known limits.\n\n## Connector Web Without Main Path\n\nBad: draw 8 nodes with 17 equal-weight lines and no dominant reading path.\n\nGood: keep the main path primary, weaken secondary relations, cluster nodes into groups, and move weak relations into annotations.\n\n## Relationship Hidden In Cards\n\nBad: convert a system call chain into six equal cards with no direction or dependency.\n\nGood: choose `relationship_visual`, write Diagram IR, and preserve request/response/data-flow edges.\n\n## Decorative Curves Everywhere\n\nBad: use curved connectors everywhere because it looks premium.\n\nGood: use orthogonal lines for the main flow, curved lines for feedback, and dashed/muted lines for weak dependencies.\n\n## Missing Responsibility Boundary\n\nBad: mix internal services and external tools in one region.\n\nGood: add a trust/ownership/permission boundary and move external tools into an external zone.\n\n## Paragraph Nodes\n\nBad: put full paragraphs inside nodes.\n\nGood: use short labels, move descriptions to speaker notes, and add annotations only where they clarify.\n\n## Swimlane Misuse\n\nBad: use four lanes when there is no role or system handoff.\n\nGood: use `process_lane` or `timeline`, or remove lanes entirely.\n\n## Dense Architecture Mural\n\nBad: put 18 nodes and 30 edges on one slide.\n\nGood: keep 7-8 first-level nodes on the main page and split detailed call chains into follow-up pages.\n\n## Whole Diagram Screenshot\n\nBad: embed title, nodes, labels, and legend in one PNG.\n\nGood: use SVG or hybrid overlay for the bounded diagram base and keep title, labels, legend, and key annotations native/editable.\n\n## Benchmark Coverage\n\nPhase 7 benchmark cases should include small, stable examples for:\n\n- all-bullets or long-paragraph copy;\n- card overuse where a relationship visual is expected;\n- connector-web diagrams;\n- whole-slide raster;\n- rasterized table and chart;\n- palette drift;\n- multiple primary anchors;\n- fake judgment titles.\n\nWhen a real production failure appears, add the smallest reproducible benchmark case and reference rubric instead of relying on memory or model preference.\n\nFile v5.1.0:references/builder-adapters.md\n\n# Builder Adapters And Capability Probe\n\nPhase 9 adds an explicit environment contract before PPT production. Do not assume OfficeCLI, PptxGenJS, python-pptx, PowerPoint, LibreOffice, HTML rendering, SVG rendering, or fonts exist on the current machine.\n\n## Capability Probe\n\nRun the probe after resolving the Style Contract and before selecting a Builder:\n\n```bash\npython3 scripts/capability_probe.py \\\n  --style .ppt-work/contracts/style-contract.json \\\n  --registry references/component-registry.json \\\n  --output .ppt-work/capability-report.json \\\n  --strict\n```\n\nThe report records:\n\n- environment basics without exposing full local paths\n- builder availability, versions, smoke-test results, features, and component support\n- renderer availability for PowerPoint, LibreOffice, and related engines\n- format support such as HTML render, SVG render/embed, PDF-to-PNG, PPTX read/write\n- installed and missing fonts from the Style Contract\n- warnings and errors that affect routing\n\nCore builders must not be considered available from command existence alone. They need a minimal import, version, or smoke check:\n\n- `pptxgenjs`: `node` plus `require(\"pptxgenjs\")` and a tiny slide construction smoke check.\n- `python_pptx`: package import plus create/save a minimal PPTX.\n- `officecli`: command plus project-specific version/help smoke check; keep unavailable if smoke is not proven.\n- `html_svg`: may be available for visual-only SVG generation, but never for native PPT objects.\n\n## Adapter Interface\n\nEvery builder adapter follows this contract:\n\n```python\nclass BuilderAdapter(Protocol):\n    name: str\n\n    def probe(self) -> BuilderCapability: ...\n    def supports(self, component_type: str, delivery_route: str) -> SupportLevel: ...\n    def plan(self, ppt_ir: dict, style_contract: dict, delivery_plan: dict) -> BuildPlan: ...\n    def build(self, build_plan: BuildPlan, output_dir: Path) -> BuildResult: ...\n    def inspect_output(self, pptx_path: Path) -> BuildInspection: ...\n```\n\nOptional extensions may add `render_preview`, `read_back`, and `cleanup`.\n\n## Support Levels\n\nUse only these support levels:\n\n- `full`: native route is supported with expected editability.\n- `partial`: route is usable with documented limitations and editable-core review.\n- `visual_only`: route is suitable only for SVG/image/HTML preview or hybrid visual layers.\n- `unsupported`: route cannot be used by this builder.\n- `unknown`: support has not been proven.\n\nPremium rules:\n\n- Reject `unknown` support.\n- Reject `visual_only` for native routes.\n- `native_required` accepts only `full` support on a native route.\n- Missing capability reports stop Standard and Premium route resolution.\n- Missing renderers prevent claiming final Premium visual QA.\n\nFast may use static registry defaults when no capability report exists, but it must warn.\n\n## Selection Inputs\n\nBuilder selection uses:\n\n- PPT IR object requirements and editability\n- Delivery Plan route requirements when available\n- Component Registry static support and fallback policy\n- Capability Report real environment availability\n- Production profile (`fast`, `standard`, `premium`)\n- Optional user builder override\n\nScoring considers native component coverage, editable-core coverage, renderer compatibility, font compatibility, profile compatibility, and fallback count. A user-requested builder wins only when it is available and valid for the requested routes.\n\n## Build Manifest\n\nBuild Manifest should record:\n\n```json\n{\n  \"builder\": {\n    \"requested\": \"auto\",\n    \"selected\": \"pptxgenjs\",\n    \"version\": \"4.x\",\n    \"selection_score\": 0.92,\n    \"selection_reasons\": [\"BUILDER_SELECTED_BY_SCORE\"]\n  },\n  \"environment\": {\n    \"capability_report\": \".ppt-work/capability-report.json\"\n  }\n}\n```\n\nIf no valid builder exists, stop at contracts and visual references instead of silently downgrading.\n\nFile v5.1.0:references/BUNDLE-MANIFEST.md\n\n# PPT Smith Public Bundle Manifest\n\n## Identity\n\n- Display name: MeowClaw PPT Smith\n- Installed route: `article-html-to-ppt`\n- Public slug: `meowclaw-pptsmith`\n- Version: `5.1.0`\n- License: Apache-2.0\n\n`VERSION` and `packaging/identity.json` define the release identity.\n\n## Included material\n\nGitHub, ClawHub and other public distributions contain material needed to\ninstall, use, inspect and package the Skill:\n\n- `SKILL.md`, README usage instructions and route references;\n- runtime engine, native builders, rendering and delivery QA tools;\n- dependency declarations and the pinned PptxGenJS runtime source;\n- schemas, reusable styles, templates and valid authoring examples;\n- branding and selected sample previews, editable PPTX files and concise object data;\n- identity and distribution checks that keep the package self-contained.\n\nThe v5.0 20-slide research example and v5.1 six-slide policy example retain\nseparate counts and original file hashes. A replaceable bitmap is not counted\nas an internally editable native object.\n\n## Local-only material\n\nDevelopment tests and fixtures, CI, benchmark harnesses, development notes,\npromotional articles, source PDFs, full review/edit logs, intermediate builds,\nworktrees, caches, credentials and private customer/commercial materials are\nexcluded from the public source tree and registry bundle. Local files are\npreserved for development. Exclusion does not rewrite earlier published history.\n\n`.gitignore` prevents normal staging of local-only files. `.clawhubignore`\nfilters registry packaging, `.gitattributes` filters source exports, and\n`packaging/bundle-exclude.txt` makes their presence fail the archive audit.\nOnly intentionally selected usage examples belong in `assets/samples/`.\n\n## Checks\n\n```bash\npython3 scripts/check_identity.py\npython3 scripts/quick_validate_skill.py\npython3 -m engine design capabilities\n```\n\nThe public bundle builder audits the exact selected tree before creating the\nZIP. Its detailed audit reports and archive manifest stay beside the local\npackaging output; the ZIP contains runtime and usage material. The package\nversion does not by itself mean any external platform has been updated.\n\nFile v5.1.0:references/component-craft-checklist.md\n\n# Component Craft Checklist\n\nUse before scoring and final handoff.\n\n## Text\n\n- Component type is registered in `references/component-registry.json`.\n- Selected delivery route exists in `delivery-plan.json`.\n- Judgment title fits without clipping.\n- Body text is transformed, not copied as paragraphs.\n- Labels use consistent case, length, and alignment.\n- Source and assumption notes are visible but quiet.\n\n## Cards And Frameworks\n\n- Route is `native_ppt`; cards are not SVG/raster/generated unless the user explicitly approved an exception.\n- Cards are equal only when ideas are equal.\n- Each card has a clear role: claim, proof, risk, action, example, or status.\n- Card count and text length fit the slide density.\n- Icons add recognition, not repetition.\n- Fill, border, radius, padding, text color, and shadow come from `card_tokens`.\n\n## Tables And Matrices\n\n- Route is `native_table`; cells, headers, highlights, and source notes remain editable.\n- Table is the primary anchor or clearly secondary.\n- Row/column count does not force unreadable text.\n- Highlights guide the intended comparison.\n- Empty or low-value cells are removed or summarized.\n- Header fill, text color, row alternation, border width, and cell padding come from `table_tokens`.\n\n## Charts\n\n- Route is `native_chart` for simple charts; data remains editable.\n- Chart type matches the comparison task.\n- Labels and units are clear.\n- Color highlights the message, not every series equally.\n- The title interprets the chart.\n- Series colors, axes, labels, gridlines, markers, and legend defaults come from `chart_tokens`.\n\n## Relationship Diagrams\n\n- A valid Diagram IR exists before drawing: `diagram_ir_ref` or inline `diagram_ir`.\n- Diagram IR declares nodes, groups, edges, boundaries, and at least one primary main path.\n- Edge relation semantics are chosen before line style; style comes from `diagram_tokens`.\n- Weak influence/monitoring relations are annotations when they would create connector web noise.\n- Route is `native_diagram` while within complexity limits; otherwise use `hybrid_overlay` or `svg_component` with editable labels/legend.\n- Nodes are grouped into lanes, layers, regions, or modules.\n- Connectors are meaningful and limited.\n- Relationship types are visually distinguishable only when necessary.\n- Ownership, trust, risk, or boundary lines are explicit when they matter.\n- Stop and choose SVG/render/generated component if native PPT becomes connector noise.\n- Node, boundary, connector, and relation styles come from `diagram_tokens`.\n\n## Raster/SVG/Generated Components\n\n- Route is allowed by Component Registry and recorded in Delivery Plan.\n- Component is bounded, not full-slide unless approved.\n- Core explanatory text remains editable.\n- Prompt/source path is stored.\n- Raster acceptance reason is recorded.\n- Verification report discloses media count and rasterized components.\n\nFile v5.1.0:references/component-raster-fallback.md\n\n# Component Raster Fallback\n\nUse localized raster, SVG/HTML render, or generated visual components when a bounded slide component expresses relationship complexity, visual metaphor, spatial structure, or rich material treatment that native PPT objects would make confusing, ugly, brittle, or visually unfinished.\n\n## Default Principle\n\nDo not rasterize an entire deck unless the user explicitly asks for image-only delivery. The default final deck remains hybrid editable: titles, explanatory text, labels, sources, cards, tables, simple charts, and ordinary diagrams should be editable PPT objects.\n\nFor `relationship_visual`, `conceptual_scene`, and visual-heavy `hybrid_panel` slides, a rendered/generated bounded component is a planned delivery route, not merely late-stage rescue.\n\n## Good Candidates\n\n- complex relationship maps with many cross-links\n- ecosystem maps or stakeholder networks\n- capability landscapes with nested regions and soft boundaries\n- conceptual metaphors or abstract spatial structures\n- dense architecture murals where visual comprehension matters more than direct editing\n- illustrated process scenes, IP illustrations, or editorial visual metaphors\n- complex textures, material backgrounds, photos, or atmospheric layers\n\n## Poor Candidates\n\nDo not image-generate components that can be made clear and editable as native PPT objects:\n\n- 2x2, 2x3, or 3x3 card grids\n- ordinary comparison matrices\n- tables and scorecards\n- metric cards\n- simple process lanes\n- clean issue trees or dependency trees\n- simple architecture diagrams with modest connector counts\n- already-stabilized layouts after reducing connectors, grouping, or switching to cards\n\n## Decision Test\n\nBefore choosing raster/generated delivery, answer:\n\n1. Is the component's value mainly spatial relationship, visual metaphor, complex visual texture, or soft-boundary structure?\n2. Would native PPT reconstruction require fragile connectors, nested shapes, masks, or effects?\n3. Would the user reasonably accept reduced editability if title, interpretation, labels, source notes, and surrounding content remain editable?\n4. Have simpler editable alternatives been tried or rejected for a clear reason?\n\nUse localized image fallback only when 1-3 are yes, and 4 is documented.\n\n## Required Resolver Flow\n\nRaster fallback is an engineered route, not a visual shortcut. Before any bounded SVG/image/generated component is built, follow this flow:\n\n1. Query `references/component-registry.json` for the object's `component_type`.\n2. Check `native_capability`, `allowed_delivery_routes`, and `raster_policy`.\n3. Check the current Builder capability (`full`, `partial`, `visual_only`, `unsupported`, or `unknown`).\n4. Check object complexity against `complexity_limits.native`.\n5. Select the smallest local SVG/image region that preserves comprehension.\n6. Preserve the declared `editable_core` as native PPT overlay where the route requires it.\n7. Record the bounded component area ratio; never silently rasterize the whole slide.\n8. Write the selected route, fallback reason codes, editable core, raster/SVG parts, and QA checks to `delivery-plan.json`.\n9. Write actual route and any deviation to `build-manifest.json`.\n10. In QA, compare intended route against actual build output and disclose non-editable parts.\n\n普通组件不进入 Raster Fallback。`metric_card`、普通表格、矩阵、简单图表、标题、正文、来源说明、普通卡片必须优先保持原生可编辑；如果 Builder 做不到，Resolver 应返回 `unsupported` 或切换 Builder，而不是截图糊过去。\n\n## Implementation Contract\n\n- crop the image to the component region, not the full slide\n- keep title, interpretation line, key labels, source note, and footer editable\n- overlay key labels as editable PPT text when later editing is likely\n- store prompt and image path in the project directory\n- disclose the rasterized component in `delivery-plan.json`, `build-manifest.json`, and `verification-report.md`\n- count media objects and confirm only intended components are rasterized\n- ensure the user can tell which parts are editable and which parts are not\n\n## Native PPT Stop Conditions\n\nStop adding native PPT connectors when more than 8 nodes, more than 9 connectors, more than 2 relationship types, 3 connector crossings, labels below 10 pt, nested soft boundaries, or fragile micro-positioning are required.\n\nFile v5.1.0:references/component-registry.json\n\n{\n  \"schema_version\": \"1.0\",\n  \"components\": [\n    {\"component_type\": \"judgment_title\", \"display_name\": \"Judgment Title\", \"category\": \"text\", \"supported_primary_expressions\": [\"textual_argument\", \"structured_cards\", \"table_matrix\", \"data_visual\", \"relationship_visual\", \"conceptual_scene\"], \"supported_slide_roles\": [\"judgment\", \"data\", \"diagram\"], \"semantic_capabilities\": [\"answer_first\"], \"native_capa\n\nArchive v5.0.1: 300 files, 670587 bytes\n\nFiles: builders/__init__.py (379b), builders/base.py (2761b), builders/custom_adapter.py (1506b), builders/html_svg_adapter.py (1692b), builders/officecli_adapter.py (1681b), builders/pptxgenjs_adapter.py (10149b), builders/python_pptx_adapter.py (58307b), builders/registry.py (904b), builders/selector.py (12226b), engine/__init__.py (413b), engine/__main__.py (23144b), engine/authored_page.py (17313b), engine/autonomy.py (8287b), engine/bespoke_quality.py (8419b), engine/bespoke_runtime.py (12966b), engine/bespoke.py (5549b), engine/chart_inference.py (7550b), engine/compile.py (13064b), engine/component_atlas_report.py (5290b), engine/component_atlas.py (52527b), engine/component_composer.py (19441b), engine/component_intent.py (6695b), engine/component_inventory.py (6115b), engine/content_contract.py (4548b), engine/content_integrity_gate.py (2905b), engine/coverage.py (6642b), engine/deck_diversity.py (2180b), engine/design_contract.py (6007b), engine/design_scene/__init__.py (99b), engine/design_scene/backend.py (16359b), engine/design_scene/cli.py (8119b), engine/design_scene/contract.py (16150b), engine/design_scene/isolation_probe.py (3088b), engine/design_scene/pipeline.py (18669b), engine/design_scene/runtime.py (11783b), engine/design_scene/store.py (7748b), engine/design_scene/windows_io.py (6523b), engine/design_scene/worker.py (1504b), engine/diagram.py (16777b), engine/evidence_ledger.py (5234b), engine/evidence_outline.py (1997b), engine/extractive_ir.py (6437b), engine/font_metrics.py (2676b), engine/high_fidelity_guard.py (1680b), engine/layout.py (35407b), engine/manuscript_component_planner.py (24298b), engine/manuscript_strict_preview.py (18526b), engine/metrics/arial-unicode-ms.json (1004b), engine/metrics/helvetica.json (1006b), engine/metrics/songti-sc.json (1013b), engine/metrics/system-font.json (1004b), engine/model_authored_quality.py (7016b), engine/model_template_component_runtime.py (15891b), engine/model_template_composer.py (11248b), engine/narrative_contract.py (7354b), engine/policy.py (9161b), engine/pptx_builder.py (10249b), engine/pptxgenjs_builder.py (3272b), engine/presentation_subset.py (1543b), engine/production_request.py (8964b), engine/proposal_apply.py (5333b), engine/provenance.py (6984b), engine/qa_plan.py (4370b), engine/refine_renderers.py (10713b), engine/refine_spec.py (3930b), engine/route_policy.py (801b), engine/source_doc.py (4625b), engine/speaker_notes.py (5675b), engine/strict_template.py (67777b), engine/structural_parser.py (9664b), engine/style_pack.py (7547b), engine/style_validator.py (5626b), engine/template_component_adaptation.py (11989b), engine/template_delivery_quality.py (5038b), engine/template_evidence.py (8490b), engine/template_native.py (80080b), engine/template_page_composition.py (15290b), engine/template_page_recipes.py (4626b), engine/template_readability.py (1968b), engine/template_series_planner.py (4034b)\n\nArchive v5.0.0-alpha.1: 314 files, 700788 bytes\n\nFiles: builders/__init__.py (379b), builders/base.py (2761b), builders/custom_adapter.py (1506b), builders/html_svg_adapter.py (1692b), builders/officecli_adapter.py (1681b), builders/pptxgenjs_adapter.py (10149b), builders/python_pptx_adapter.py (58307b), builders/registry.py (904b), builders/selector.py (12226b), docs/benchmark-report.md (1089b), docs/migration-v1.1-to-v1.2.md (5151b), docs/template-authoring-guide.md (4474b), docs/v1.5-v2.0-closeout-checklist.md (6049b), docs/v2.0-acceptance-report.md (5648b), docs/v2.1-rc1-acceptance-report.md (4390b), docs/v2.1-release-notes.md (2495b), docs/v2.1-release-readiness.md (2720b), docs/v3.0.0-release-notes.md (6736b), docs/v4-bespoke-architecture-plan.md (2275b), docs/v4-evaluation-v3-diff-release-plan.md (9081b), docs/v4-model-directed-mgi-acceptance.md (3372b), docs/v4-template-generalization-acceptance.md (3353b), docs/v4-template-generalization.md (3602b), docs/v4-template-mgi-v2-acceptance.md (2154b), docs/v4-template-route.md (7994b), docs/v4-template-whole-page-design-plan.md (5668b), docs/v4-three-route-architecture.md (2622b), docs/v4.1.0-beta.1-release-notes.md (3418b), docs/v4.1.0-beta.1-release-readiness.md (4150b), engine/__init__.py (542b), engine/__main__.py (23144b), engine/authored_page.py (17313b), engine/autonomy.py (8287b), engine/bespoke_quality.py (8419b), engine/bespoke_runtime.py (12966b), engine/bespoke.py (5549b), engine/chart_inference.py (7550b), engine/compile.py (13064b), engine/component_atlas_report.py (5290b), engine/component_atlas.py (52527b), engine/component_composer.py (19441b), engine/component_intent.py (6695b), engine/component_inventory.py (6115b), engine/content_contract.py (4548b), engine/content_integrity_gate.py (2905b), engine/coverage.py (6642b), engine/deck_diversity.py (2180b), engine/design_contract.py (6007b), engine/design_scene/__init__.py (99b), engine/design_scene/backend.py (16359b), engine/design_scene/cli.py (7484b), engine/design_scene/contract.py (16150b), engine/design_scene/isolation_probe.py (3088b), engine/design_scene/pipeline.py (16981b), engine/design_scene/runtime.py (8983b), engine/design_scene/store.py (7275b), engine/design_scene/worker.py (1447b), engine/diagram.py (16777b), engine/evidence_ledger.py (5234b), engine/evidence_outline.py (1997b), engine/extractive_ir.py (6437b), engine/font_metrics.py (2676b), engine/high_fidelity_guard.py (1680b), engine/layout.py (35407b), engine/manuscript_component_planner.py (24298b), engine/manuscript_strict_preview.py (18526b), engine/metrics/arial-unicode-ms.json (1004b), engine/metrics/helvetica.json (1006b), engine/metrics/songti-sc.json (1013b), engine/metrics/system-font.json (1004b), engine/model_authored_quality.py (7016b), engine/model_template_component_runtime.py (15891b), engine/model_template_composer.py (11248b), engine/narrative_contract.py (7354b), engine/policy.py (9161b), engine/pptx_builder.py (10249b), engine/pptxgenjs_builder.py (3272b), engine/presentation_subset.py (1543b), engine/production_request.py (8964b), engine/proposal_apply.py (5333b)\n\nArchive v4.1.0-beta.1: 304 files, 663242 bytes\n\nFiles: builders/__init__.py (379b), builders/base.py (2761b), builders/custom_adapter.py (1506b), builders/html_s...","readmeExcerpt":"Skill: MeowClaw PPT Smith Owner: skillmelody Summary: Create editable PPTX from documents, reconstruct supplied slide design images, or preserve native PPTX templates. Design with structured native objects and real previews; image-generation tools are optional. Use for source-based presentations, design-to-PPT reconstruction, template reuse, and revisions to PPT Smith tasks. Tags: alpha:5.0.1, articles:4.1.0-beta.1, ","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"完整源材料 → 内容与来源整理 → 结构化设计\n→ 原生可编辑 PPTX → LibreOffice PDF → PNG 预览\n→ 独立视觉审核与修订 → 编辑回存检查 → 最终交付"},{"language":"text","snippet":"使用 PPT Smith，把这份 PDF 做成约 10 页中文可编辑 PPT。\n受众：中小企业负责人；目标：理解政策重点并形成行动清单。\n当前模型能识图，无生图工具。根据内容建议配色与页面结构，\n保留数字限定词、逐页来源和演讲者备注；作者建议与原文明确区分。\n完成真实预览、独立审核及目标软件编辑回存验证后交付。"},{"language":"text","snippet":"以这些完整页面设计图为还原目标，以 PDF 为文字与数字依据。\n保留已批准的版式；如设计图与源文档冲突，列明需要修正的内容。\n标题、正文、可恢复数据的图表和表格使用原生对象，\n说明独立图片与复杂效果的编辑边界，并提供目标/实际预览对照。"},{"language":"text","snippet":"用这个公司 PPTX 模板把报告整理成 15 页中文汇报。\n母版、版式、品牌字体、原生图表及其数据工作簿必须保留。\n先核验可用组件与每页内容容量，再克隆和绑定报告中的事实、数字与来源。\n模板放不下时说明缺口及调整方案，附逐页讲稿，并验证编辑、保存和重开。\n不要把模板截图当作幻灯片背景。"},{"language":"text","snippet":"参考这个 PPTX 的配色、字体层级、留白和图表语言，允许重新排版。\n根据这份 PDF 做 4 页中文可编辑 PPT；先锁定各页文字、数字、单位和来源。\n当前没有生图工具，请直接用原生文本、形状和图表设计页面，\n渲染真实预览，逐页检查阅读顺序、品牌风格和数据标注，再修订交付。"},{"language":"text","snippet":"参考这个 PPTX 的视觉规则，允许重新设计；以这份 PDF 为事实依据。\n先锁定 4 页中文内容、图表数据和来源，只用已核对内容生成整页设计图。\n先做代表页并确认方向，再生成其余页；核对设计图中的文字、数字与可重建性。\n冻结合格目标后，用原生文本、形状、图表重建可编辑 PPTX。\n提供设计图与实际渲染的逐页对照、编辑保存检查和不可编辑效果说明。"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"article-html-to-ppt\"\ndescription: \"Create editable PPTX from documents, reconstruct supplied slide design images, or preserve native PPTX templates. Design with structured native objects and real previews; image-generation tools are optional. Use for source-based presentations, design-to-PPT reconstruction, template reuse, and revisions to PPT Smith tasks.\"\nmetadata:\n  display_name: \"MeowClaw PPT Smith\"\n  english_alias: \"MeowClaw PPT Smith\"\n  public_slug: \"meowclaw-pptsmith\"\n  version: \"5.1.1\"\n  compatibility_aliases: [\"article-html-to-ppt\", \"meowclaw-decksmith\"]\n---\n\n# MeowClaw PPT Smith\n\n## Select the user's intent\n\n| User wants | Route | Read when selected |\n| --- | --- | --- |\n| Make a presentation from a document, optionally with brand/style references | `create` (default) | [Declarative workflow](references/declarative-design.md) |\n| Reconstruct supplied complete slide designs as editable objects | `recreate` | [Declarative workflow](references/declarative-design.md) |\n| Reuse a native PPTX template and its components | `template` | [Template workflow](references/routes/v4-template-route.md) |\n\nInfer intent, audience, language and page budget from the request. Ask only about material conflicts, such as exact image reconstruction versus native template preservation. A style image does not imply exact reconstruction. A PPTX supplied only as a style reference uses create; preserve masters/native layouts only when requested. For template-inspired redesign, read [template visual design](references/template-visual-design.md). A source page count does not prescribe slide count.\n\n## Shared authoring contract\n\nRead the full source once, preserve page/evidence anchors, then use the relevant evidence for each slide. The model owns narrative, assertion titles, visual encoding and page-specific design. The backend executes those decisions; it does not replace them with generic extractive layouts. Insufficient authoring capability returns `MODEL_AUTHORING_REQUIRED`.\n\nChoose typography, palette, composition and visual rhythm for the current content, audience and references. Do not copy the last task's colours, card layout, footer or brand. Reusable components are primitives, not mandatory page styles.\n\nKeep checked text/data in content records, geometry in scene records, and detailed reasoning, sources and qualifications in speaker notes. Unknown chart data stays unknown. Reconstructable charts/tables use native data; isolated pictures are replaceable assets, not editable internal objects. Do not insert a whole-page screenshot to claim editable reconstruction. Disclose deliberate simplifications and accepted raster exceptions.\n\n## Efficient native design and revisions\n\nFor create/recreate run `python3 -m engine design capabilities`. The host supplies model capabilities; local code cannot infer whether the current model sees or generates images.\n\nFor **create**, author structured design, render a native candidate to PNG, inspect and revise it. I"},{"path":"README.md","content":"# MeowClaw PPT Smith\n\n<p align=\"center\">\n  <img src=\"assets/branding/pptsmith-github-zh.png\" alt=\"MeowClaw PPT Smith 图标\" width=\"836\">\n</p>\n\n> [English](README.en.md) · [Skill 执行入口](SKILL.md) · [工作流](references/declarative-design.md) · [可编辑样例](assets/samples/v5.1-no-image-policy-native.pptx)\n\n把源文档、设计图或原生 PPT 模板，转成有来源、有真实预览、可以继续修改的演示文稿。模型负责理解内容和设计页面，固定后端负责生成原生对象与核验交付。\n\n**当前版本：`5.1.1`。** 公共标识为 `meowclaw-pptsmith`，兼容安装名为 `article-html-to-ppt`、`meowclaw-decksmith`；许可证为 Apache-2.0。\n\n本次更新明确区分原生模板保留与模板风格参考，并补充可选生图设计目标、按页内容绑定及逐页视觉审核。下方的 v5.0、v5.1 历史样例保留原始版本与统计口径。\n\n## 作品画廊\n\n以下收录 `assets/samples/` 中的示例图，按**图片首次加入仓库的日期倒序**排列；日期不是 PPT 的制作日期。点击缩略图查看原图，较早的设计与架构示例可展开查看。可编辑对象数仅对应各自的交付 PPTX，历史案例的验证范围见下文。\n\n<table>\n  <tr>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5.1-template-image-guided-4page-2col-overview.png\"><img src=\"assets/samples/v5.1-template-image-guided-4page-2col-overview.png\" alt=\"生图设计后原生重建，四页两列总览\" width=\"100%\"></a><br><strong>2026-09-23 · 模板风格重建</strong><br><small>4 页 · 179 个可编辑对象 · <a href=\"assets/samples/v5.1-template-image-guided-4page.pptx\">下载 PPTX</a></small></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5.1-template-native-4page-2col-overview.png\"><img src=\"assets/samples/v5.1-template-native-4page-2col-overview.png\" alt=\"原生模板组件复用，四页两列总览\" width=\"100%\"></a><br><strong>2026-09-23 · 原生组件复用</strong><br><small>4 页 · 61 个可编辑对象 · <a href=\"assets/samples/v5.1-template-native-4page.pptx\">下载 PPTX</a></small></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5.1-no-image-policy-page-01.png\"><img src=\"assets/samples/v5.1-no-image-policy-page-01.png\" alt=\"v5.1 无生图政策解读封面\" width=\"100%\"></a><br><strong>2026-09-21 · v5.1 无生图封面</strong><br><small>6 页政策解读中的第 1 页 · <a href=\"assets/samples/v5.1-no-image-policy-native.pptx\">下载 PPTX</a></small></td>\n  </tr>\n  <tr>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5.1-no-image-policy-page-02.png\"><img src=\"assets/samples/v5.1-no-image-policy-page-02.png\" alt=\"v5.1 无生图政策解读三年目标页\" width=\"100%\"></a><br><strong>2026-09-21 · v5.1 目标页</strong><br><small>同一份 6 页可编辑政策 PPT</small></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5.1-no-image-policy-page-06.png\"><img src=\"assets/samples/v5.1-no-image-policy-page-06.png\" alt=\"v5.1 无生图政策解读行动页\" width=\"100%\"></a><br><strong>2026-09-21 · v5.1 行动页</strong><br><small>同一份 6 页可编辑政策 PPT</small></td>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5.0-latin-america-ai-zh-overview.png\"><img src=\"assets/samples/v5.0-latin-america-ai-zh-overview.png\" alt=\"v5.0 拉美 AI 与就业研究二十页总览\" width=\"100%\"></a><br><strong>2026-09-21 · v5.0 研究解读</strong><br><small>20 页 · 447 个原生可编辑对象 · <a href=\"assets/samples/v5.0-latin-america-ai-zh-native.pptx\">下载 PPTX</a></small></td>\n  </tr>\n  <tr>\n    <td width=\"33%\" valign=\"top\"><a href=\"assets/samples/v5-declarative-design-native-preview.png\"><img src=\"assets/samples/v5-declarative-design-native-preview.png\" alt=\"v5 声明式设计原生预览\" width=\"100%\"></a><br><strong>2026-09-20 · v5 设计预览</strong><br><small"},{"path":"schemas/v4/README.md","content":"# PPT Smith v4 Contracts\n\nv4 contracts connect **model-directed presentation authoring** to deterministic\nexecution and verification. A capable model remains responsible for source\nunderstanding, narrative, visible content, data interpretation, visual\nencoding, component choice/composition, speaker notes, and rendered visual\nreview. The engine verifies provenance, native editability, template fidelity,\ncapacity, rendering, and declared quality floors; it does not replace authorial\njudgment.\n\n## Route authority\n\n1. **Bespoke is the quality ceiling and default route.** The model writes a\n   source-grounded IR and native authoring code, starting from a blank deck or\n   using an uploaded deck as visual evidence.\n2. **Template is model-directed native reuse.** The engine extracts a complete\n   reviewed Component Atlas. The model audits every feasible component, chooses\n   and combines matching components, and writes a new template-styled native\n   component only when the Atlas proves there is no feasible match.\n3. **Standard is diagnostic compatibility.** It can execute constrained IR for\n   debugging and fallback workflows, but it is not the V4 quality benchmark and\n   must not be presented as equivalent to Bespoke or Template delivery.\n\n## Delivery principles\n\n1. **Source-grounded authoring.** Facts, metrics, charts, tables, images, and\n   speaker notes retain structural source references and evidence IDs.\n2. **Concise slides, complete notes.** Visible content is presentation-grade;\n   detail moves into speaker notes rather than being truncated with ellipses.\n3. **Native visual encoding.** Reconstructable quantitative exhibits become\n   editable charts, tables, KPI systems, or diagrams. Source-page screenshots\n   are forbidden. Only audited standalone illustrations, photos, and genuinely\n   non-reconstructable figures may remain raster assets.\n4. **Template reuse before invention.** A Template page must disclose the full\n   feasible component set, selected components, rejected candidates, and any\n   newly authored component.\n5. **Fail closed.** Missing evidence, silent truncation, unbound business text,\n   incomplete Component Atlas metadata, style drift, insufficient density,\n   failed real rendering, or missing visual review prevents final delivery.\n\n## Files\n\n| File | Status | Purpose |\n|---|---|---|\n| `presentation-ir.schema.json` | active 4.1.0 | Model-authored content, visual intent, component intent, and speaker-note contract |\n| `examples/presentation-ir-model-directed.json` | reference | Source-grounded quantitative Template page with notes and component audit |\n| `examples/presentation-ir-minimal.json` | diagnostic | Small Standard-compatible contract; not a production-quality benchmark |\n| `examples/presentation-ir-enriched.json` | reference | Rich facts, metrics, relations, and hints |\n| `style-contract-v4.schema.json` | active 4.0.0 | Reusable tokens and rendering constraints |\n| `decision-trace.schema.json` | active 4.0.0 | Machine-rea"},{"path":"templates/README.md","content":"# Templates\n\nThese files are copyable starting points. Every JSON template in this directory\nvalidates against its schema in `schemas/`, so you can copy one, edit the\ncontent, and run it through the pipeline without first fixing structural errors.\n\nValidate any contract before building:\n\n```bash\npython3 scripts/validate_contracts.py --ppt-ir my-deck.ppt-ir.json --style my-style.json\n```\n\n## Authoring notes\n\nUse sample text only to understand the contract; replace it with the current source material.\n\n| Template | Note |\n| --- | --- |\n| `ppt-ir-example.json` | Contract is `schemas/ppt-ir.schema.json`. Structure your own deck from this shape; do not treat the sample content as defaults. |\n| `style-contract-example.json` | Illustrative token set. Validate real contracts with `schemas/style-contract.schema.json`, or start from one of the five master systems in `references/five-style-master-systems.md`. |\n| `delivery-plan-example.json` | Do not handwrite a delivery plan for production. Generate it with `scripts/resolve_component_delivery.py` so route selection reflects an actual capability probe. |\n| `build-manifest-example.json` | Emitted by a Builder. Contract is `schemas/build-manifest.schema.json`; never handwrite a status into it. |\n| `qa-report-example.json` | Emitted by `scripts/verify_deck.py`. Contract is `schemas/qa-report.schema.json`. |\n| `component-registry-example.json` | Illustrative excerpt. The machine source is `references/component-registry.json`. |\n| `diagram-ir-example.json` | Contract is `schemas/diagram-ir.schema.json`. Normalize with `scripts/normalize_diagram_ir.py` before layout. |\n| `capability-report-example.json` | Emitted by `scripts/capability_probe.py`. Never handwrite a capability claim; the probe is the only authority on what a Builder supports. |\n| `delivery-manifest-example.json` | Emitted by `scripts/package_delivery.py`. Contract is `schemas/delivery-manifest.schema.json`. |\n| `rubric-score-example.json` | Emitted by `scripts/score_deck.py`. For Premium final, the reference rubric must be supplied explicitly. |\n\n## Public example inputs\n\nSmall contract examples are in `examples/contracts/valid/`. Reusable style\ncontracts are in `styles/`; local development fixtures are not distributed.\n\n```bash\npython3 scripts/validate_contracts.py --ppt-ir examples/contracts/valid/ppt-ir.json --style examples/contracts/valid/style-contract.json --strict\n```\n\nFor document-driven creation and image reconstruction, follow the current\n[Skill entry](../SKILL.md) and [declarative workflow](../references/declarative-design.md).\n\n## Markdown templates\n\n| Template | Use |\n| --- | --- |\n| `content-lock-template.md` | Lock source truth and evidence boundaries before storyboarding. |\n| `storyboard-template.md` | Judgment titles, expression mode, and visual anchor per slide. |\n| `ppt-production-artifact-checklist.md` | Which artifacts a profile requires. |\n| `slide-manifest-template.json` | Per-slide object manifest for hybrid delivery. |\n| `"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7bh27ktnke6be450ha5m9f1982n7dd\",\n  \"slug\": \"article-html-to-ppt\",\n  \"version\": \"5.1.1\",\n  \"publishedAt\": 1790153626384\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":2026,"uniquenessScore":39,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T13:24:47.923Z","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-09T13:24:47.923Z","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-09T21:12:39.024Z","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"}]}}}