{"id":"2f81b776-12fd-4940-b433-91a4846c92b3","entityType":"agent","slug":"clawhub-ldxs001-hug-html","name":"hug-html","canonicalUrl":"https://www.xpersona.co/agent/clawhub-ldxs001-hug-html","canonicalPath":"/agent/clawhub-ldxs001-hug-html","generatedAt":"2026-10-10T21:51:01.931Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T18:59:46.938Z","emptyReason":null},"description":"8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation... Skill: hug-html Owner: ldxs001 Summary: 8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation... Tags: chinese-error-handling:3.3.1, grid:3.3.1, html:3.3.1, latest:3.3.1, layout:3.3.1, module-library:3.3.1, style-presets:3.3.1, template:3.3.1, visual-editor:3.3.1 Version history: v3.3.1 | 2026-07-09T10:47:33.622Z |","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s1794v2r46s8y5d1r4jdd7ec5h84rw70:hug-html","sourceUrl":"https://clawhub.ai/ldxs001/hug-html","homepage":"https://clawhub.ai/ldxs001/skills/hug-html","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/ldxs001/hug-html","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/ldxs001/skills/hug-html","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation... "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T18:59:46.938Z","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-10T18:59:46.938Z","emptyReason":null},"stars":null,"forks":null,"downloads":1287,"packageName":null,"latestVersion":"3.3.1","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T18:59:46.938Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T18:59:46.938Z","lastCrawledAt":"2026-10-10T18:59:46.938Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T18:59:46.938Z","lastVerifiedAt":null,"highlights":[{"version":"3.3.1","createdAt":"2026-07-09T10:47:33.622Z","changelog":"v3.3.1","fileCount":26,"zipByteSize":91366},{"version":"3.3.0","createdAt":"2026-06-30T05:38:38.986Z","changelog":"v3.3.0: skill-standardization refactor全流程改造, 0 ERROR 0 WARN; 新增slug/displayName for SkillHub","fileCount":24,"zipByteSize":89511},{"version":"3.2.0","createdAt":"2026-06-26T13:07:19.900Z","changelog":"refactor改造完成: 路径集中管理+触发条件修正+示例质量提升+一致性审查修复","fileCount":26,"zipByteSize":91221},{"version":"3.0.4","createdAt":"2026-06-02T03:37:38.734Z","changelog":"hug-html v3.0.4 - 新增架构设计文档 references/architecture.md，完善模块结构说明 - 移除冗余 skill-card.md，精简文档结构 - SKILL.md 文档标签(tags)补充，支持元字段同步（meta_field_sync: true） - 文档结构优化，增加 references/architecture.md 引用 - 其他内容无功能性变更","fileCount":24,"zipByteSize":89626},{"version":"3.0.3","createdAt":"2026-05-30T19:49:31.417Z","changelog":"hug-html 3.0.3 - 移除了示例输出文件 data/output/component-demo.html。 - 不涉及功能或代码更改，仅为清理示例输出资源。","fileCount":23,"zipByteSize":88934},{"version":"3.0.0","createdAt":"2026-05-30T04:55:07.795Z","changelog":"**hug-html 3.0.0 — 全新组件式引擎，支持8种原子组件与多级约束** - 引入 8 种原子组件体系（text, image, icon, qrcode, table, divider, spacer, group）和自由组合能力 - 实现 3 级约束系统（fill / fit / clip），支持递归传递和精确布局控制 - 提供全新组件组合方式和组合逻辑（方向、比例、对齐），自定义灵活性大幅提高 - 增加 module_assembler 脚本，支持组件类型枚举、接口导出及系统演示 - 所有旧模板和模块引用保持向后兼容 - 新增 data/output/component-demo.html 作为组件系统演示 HTML 示例","fileCount":24,"zipByteSize":89771},{"version":"2.1.3","createdAt":"2026-05-29T20:11:39.721Z","changelog":"Version 2.1.3 - Removed obsolete FAQ entry file: references/faq-q4-fixed.md. - SKILL.md: No user-facing feature changes; core documentation and capabilities unchanged.","fileCount":23,"zipByteSize":82928},{"version":"2.1.1","createdAt":"2026-05-29T11:44:18.393Z","changelog":"No file changes detected in this release. - Version bumped to 2.1.1 in SKILL.md. - No feature changes, bug fixes, or documentation updates. - Functionality remains identical to 2.1.0.","fileCount":24,"zipByteSize":83266}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1794v2r46s8y5d1r4jdd7ec5h84rw70:hug-html","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ldxs001-hug-html/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ldxs001-hug-html/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ldxs001-hug-html/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ldxs001-hug-html/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ldxs001-hug-html/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ldxs001-hug-html/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-10T21:51:01.929Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ldxs001-hug-html/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ldxs001-hug-html/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ldxs001-hug-html/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ldxs001-hug-html/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T18:59:46.938Z","emptyReason":null},"readme":"Skill: hug-html\n\nOwner: ldxs001\n\nSummary: 8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation...\n\nTags: chinese-error-handling:3.3.1, grid:3.3.1, html:3.3.1, latest:3.3.1, layout:3.3.1, module-library:3.3.1, style-presets:3.3.1, template:3.3.1, visual-editor:3.3.1\n\nVersion history:\n\nv3.3.1 | 2026-07-09T10:47:33.622Z | user\n\nv3.3.1\n\nv3.3.0 | 2026-06-30T05:38:38.986Z | user\n\nv3.3.0: skill-standardization refactor全流程改造, 0 ERROR 0 WARN; 新增slug/displayName for SkillHub\n\nv3.2.0 | 2026-06-26T13:07:19.900Z | user\n\nrefactor改造完成: 路径集中管理+触发条件修正+示例质量提升+一致性审查修复\n\nv3.0.4 | 2026-06-02T03:37:38.734Z | user\n\nhug-html v3.0.4\n\n- 新增架构设计文档 references/architecture.md，完善模块结构说明\n- 移除冗余 skill-card.md，精简文档结构\n- SKILL.md 文档标签(tags)补充，支持元字段同步（meta_field_sync: true）\n- 文档结构优化，增加 references/architecture.md 引用\n- 其他内容无功能性变更\n\nv3.0.3 | 2026-05-30T19:49:31.417Z | user\n\nhug-html 3.0.3\n\n- 移除了示例输出文件 data/output/component-demo.html。\n- 不涉及功能或代码更改，仅为清理示例输出资源。\n\nv3.0.0 | 2026-05-30T04:55:07.795Z | user\n\n**hug-html 3.0.0 — 全新组件式引擎，支持8种原子组件与多级约束**\n\n- 引入 8 种原子组件体系（text, image, icon, qrcode, table, divider, spacer, group）和自由组合能力\n- 实现 3 级约束系统（fill / fit / clip），支持递归传递和精确布局控制\n- 提供全新组件组合方式和组合逻辑（方向、比例、对齐），自定义灵活性大幅提高\n- 增加 module_assembler 脚本，支持组件类型枚举、接口导出及系统演示\n- 所有旧模板和模块引用保持向后兼容\n- 新增 data/output/component-demo.html 作为组件系统演示 HTML 示例\n\nv2.1.3 | 2026-05-29T20:11:39.721Z | user\n\nVersion 2.1.3\n\n- Removed obsolete FAQ entry file: references/faq-q4-fixed.md.\n- SKILL.md: No user-facing feature changes; core documentation and capabilities unchanged.\n\nv2.1.1 | 2026-05-29T11:44:18.393Z | user\n\nNo file changes detected in this release.\n\n- Version bumped to 2.1.1 in SKILL.md.\n- No feature changes, bug fixes, or documentation updates. \n- Functionality remains identical to 2.1.0.\n\nv2.1.0 | 2026-05-29T11:19:04.318Z | user\n\nhug-html 2.1.0\n\n- 全面升级中文错误处理：所有脚本错误输出均为中文说明，附带修复建议，替代英文 Traceback。\n- 新增“能力边界”章节，明确列出技能支持和不支持的典型场景，便于用户理解适用范围。\n- 增加“错误排查”快速指引，常见错误附快速自助解决表格，提升上手体验。\n- 详细扩充触发场景示例与支持用例，覆盖更多实际业务需求描述。\n- 更新文档结构，强调中文报错机制、参数校验和调试模式说明。\n- 版本号提升至 2.1.0，推荐所有用户升级。\n\nv2.0.2 | 2026-05-29T10:40:59.041Z | user\n\nVersion 2.0.2\n\n- Major update: Introduces grid-based architecture, new scripts, and expanded modular editing for HTML templates.\n- Added grid_builder.py and supporting scripts for grid layout, test grids, and calendar specs.\n- Introduced JSON grid spec/template files (e.g., 3x3-merge.json, calendar-dashboard-interactive.json) for advanced, customizable N×M layouts.\n- Enhanced modularity: supports cell merging (rowspan/colspan), granular image/text/module editing, and user-defined templates.\n- Updated SKILL.md: documents four-layer architecture, core abilities, workflow, permissions, and new usage examples.\n- Removed obsolete documentation file (skill-card.md).\n\nv1.0.1 | 2026-05-28T09:29:25.440Z | auto\n\nhug-html 1.0.1\n\n- Improved FAQ quality and added more detailed antipattern explanations.\n- Updated writing standards to ensure term consistency.\n- Enhanced documentation on core abilities, workflows, and permissions.\n- SKILL.md now follows a progressive loading structure, referencing external detailed docs.\n- Clarified quick start commands and added explicit workflow descriptions.\n- No sensitive or critical system access required; permissions remain LOW.\n\nArchive index:\n\nArchive v3.3.1: 26 files, 91366 bytes\n\nFiles: _meta.json (127b), references/antipatterns.md (3238b), references/architecture.md (2366b), references/call-chains.md (6196b), references/changelog.md (9155b), references/examples.md (2633b), references/faq.md (10801b), references/guide.md (6904b), references/LICENSE.md (1067b), references/module-library.md (7305b), references/permissions.md (2486b), references/style-presets.md (2865b), scripts/_paths.py (568b), scripts/content_filler.py (11919b), scripts/gen_calendar_spec.py (20901b), scripts/gen_test_grids.py (8072b), scripts/grid_builder.py (88198b), scripts/module_assembler.py (22173b), scripts/template_generator.py (4823b), scripts/templates/3x3-merge.json (2428b), scripts/templates/3x3-mixed-styles.json (5518b), scripts/templates/4x2-app-card.json (2186b), scripts/templates/calendar-dashboard-interactive.json (20108b), scripts/visual_editor.py (21305b), skill-card.md (2658b), SKILL.md (10034b)\n\nFile v3.3.1:SKILL.md\n\n---\r\ndisplayName: hug-html\r\nname: hug-html\r\ntags: ['html', 'grid', 'template', 'visual-editor', 'module-library', 'style-presets', 'layout', 'chinese-error-handling']\r\nversion: 3.3.1\r\nauthor: Ldxs\r\nlicense: MIT\r\ndescription: 8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation audit, user template save-as, Chinese error handling\r\nsensitive_access: false\r\ncritical_write: false\r\npermission_weight: LOW\r\ndata_dir: ../.standardization/hug-html/data/\r\nexternal_data_dir: true\r\ntrigger: 生成 HTML 模板/编辑 HTML/HTML 模块/网格布局/单元格合并/可视化编辑/输出自包含 HTML\r\ntrigger_negative: 仅询问概念/无文件生成需求/要求使用其他工具\r\nmeta_field_sync: true\r\ncreate_permissions_md: true\r\nlicense_compliance: true\r\n---\r\n# hug-html\r\n\r\n> → 详见核心能力的渐进式文件索引\r\n\r\n## 限制\r\n\r\n- **本技能的能力边界分为支持场景、不支持场景和边界情况三类。**\r\n- **生成推广卡片** — 应用推广、活动宣传、产品介绍的毛玻璃卡片。触发词：\"生成一个 APP 推广 HTML 卡片\"\r\n- **生成信息面板** — 带表格、参数、二维码的信息展示面板。触发词：\"做一个带二维码和参数描述的 HTML\"\r\n- **生成可视化编辑模板** — 带 Ctrl+E 可编辑的 HTML。触发词：\"生成一个可视化编辑的 HTML 模板\"\r\n- **生成日历/周历仪表板** — 假日管理、年份控制、工日统计的交互仪表板。触发词：\"生成一个周历交互 HTML\"\r\n- **生成双端对比卡片** — 左应用右元服务/双实体的对比展示。触发词：\"生成一个双端推广卡片\"\r\n- **内容填充** — 自动/手动填充 data-field 标记的文字和图片。触发词：\"给这个 HTML 模板填充示例内容\"\r\n- **方案模板固化** — 将当前设计保存为可复用的用户模板。触发词：\"把这个模板保存为 my-card\"\r\n- **自由创作 HTML** — AI 参考模块库直接编写自包含 HTML。触发词：\"帮我写一个毛玻璃风格的首页\"\r\n\r\n**不支持的场景：**\r\n- **复杂前端应用** — 不支持路由/状态管理/API 调用（替代：手写 React/Vue）\r\n- **多页面 HTML 站点** — 不处理页面间导航（替代：静态站点生成器）\r\n- **PDF / 图片输出** — 不直接生成图片或 PDF（替代：浏览器打印或截图）\r\n- **外部 CSS/JS 框架集成** — 强调零外部依赖（替代：手动引入 CDN）\r\n- **非网格布局的自由排版** — 基于 CSS Grid（替代：自由生成模式）\r\n- **后端交互** — 纯前端 HTML，无后端能力。影响：数据持久化需额外方案。替代：搭配 Flask/Node.js\r\n\r\n**边界情况：**\r\n- **网格越界** — row/col + rowspan/colspan 不能超过网格总行列数。影响：CSS Grid 异常渲染\r\n- **毛玻璃裁剪** — backdrop-filter 需要 overflow:hidden 容器\r\n- **JSON 模板路径** — --spec 支持绝对/相对路径和内置名，不存在有中文错误提示\r\n- **文件编码** — 必须 UTF-8，其他编码会导致乱码\r\n- **编辑模式兼容性** — Ctrl+E 需要 Chrome/Edge/Firefox，不支持 IE\r\n\r\n## 触发条件\r\n\r\n**正向触发：**\r\n- \"生成 HTML 模板\" / \"HTML template\" / \"hug html\"\r\n- \"编辑 HTML\" / \"可视化编辑 HTML\" / \"visual edit HTML\"\r\n- \"HTML 模块\" / \"HTML module library\"\r\n- \"网格布局\" / \"grid layout\" / \"N×M 网格\"\r\n- \"单元格合并\" / \"rowspan\" / \"colspan\"\r\n- 输出格式：自包含 HTML 文件（毛玻璃卡片风格）\r\n- \"我需要一个 APP 推广卡片，要有个二维码—可以用，支持\"\r\n- \"帮我做一个带表格和参数配置的 HTML 面板—支持，用 data-table + param-panel 模块\"\r\n- \"生成一个双端对比的推广页面—支持，用 header-dual + qr-dual\"\r\n- \"这个模板我想保存下来以后用—支持，用 --save-as 固化\"\r\n- \"给我生成的 HTML 加一个可视化编辑界面—支持，用 visual_editor.py\"\r\n\r\n**否定条件：**\r\n- 不触发：用户仅询问 HTML 语法概念，无文件生成需求\r\n- 不触发：用户明确请求其他特定技能\r\n\r\n## 核心能力\r\n\r\n> 📚 **渐进式加载**：本技能采用渐进式 MD 体系，`SKILL.md` 为入口（≤230行），详细内容拆分到 `references/*.md` 按需加载。\r\n\r\n| # | 能力 | 说明 |\r\n| --- |------| ------ |\r\n| 1 | **骨架结构** | N×M 网格、行列数、单元格合并（rowspan/colspan）、gap 间距 |\r\n| 2 | **骨架约束** | 3级约束（fill/fit/clip），递归传递到组件级别 |\r\n| 3 | **组件体系** | 8种原子组件（text/image/icon/qrcode/table/divider/spacer/group），自由组合 |\r\n| 4 | **组合逻辑** | 方向(row/column)、比例(ratios)、对齐(align)、8方向位置 |\r\n| 5 | **方案模板库** | 内置 7+ 预置{骨架+组件+样式}组合 + **用户可自定义固化** |\r\n| 6 | **样式预设** | 5 种内置风格：商务/科研/喜庆/丧事/技术，一键切换配色字体 |\r\n| 7 | **基础编辑** | 每个文字元素独立控制：字体家族(8种)/字重(100-900)/字号(9-48px)/字色/透明度 |\r\n| 8 | **图片编辑** | 点击输入 URL + 拖放文件替换，所有图片组件均支持 |\r\n| 9 | **生成后审计** | 自动检查 HTML 结构完整性、标签平衡、图片属性、网格越界、渲染风险 |\r\n| 10 | **统一接口** | `--export-interfaces` 导出完整接口定义 JSON，大模型可直接理解 |\r\n| 11 | **方案模板固化** | `--save-as <名>` 将任意生成固化为用户模板，后续按名引用 |\r\n| 12 | **自由生成模式** | AI 参考组件库，理解需求确定骨架→组合组件→约束→生成→审计 |\r\n| 13 | **参数约束** | 行列数 1-10, span≥1, gap 4-24px, 字号 9-48px, 字重 100-900 |\r\n| 14 | **向后兼容** | 旧格式 `\"module\": \"composite:xxx\"` 仍然支持 |\r\n| 14 | **中文错误处理** | 所有脚本内置中文错误提示、参数校验前置、安全文件操作、调试模式 |\r\n\r\n### 渐进式文件索引\r\n\r\n| 文件名 | 分类 | 包含内容 | 审计关联 |\r\n|--------|------|----------|----------|\r\n| `references/LICENSE.md` | 许可协议 | 开源许可证声明（MIT）。包含：MIT 许可证完整文本。 | R-26 |\r\n| `references/antipatterns.md` | 规范指南 | skill 编写中的常见反模式。包含：错误做法示例、正确做法示例、避坑指引。 | R-18 |\r\n| `references/architecture.md` | 架构设计 | skill-standardization 整体架构。包含：模块关系、数据流、核心设计决策。 | 无 |\r\n| `references/call-chains.md` | 参考文档 | 本文件定义 `hug-html` 技能的调用链，供 `skill-sub` 读取和执行。 | 无 |\r\n| `references/changelog.md` | 版本管理 | 版本更新日志。包含：版本号、更新类型、修复项、升级说明。 | R-24 |\r\n| `references/examples.md` | 使用示例 | 各场景完整执行示例。包含：CLI 命令、执行过程、输出结果。 | R-25 C-17 |\r\n| `references/faq.md` | 常见问题 | 常见疑问与解答。包含：问题分类、原因分析、解决方案。 | R-19, R-25 C-19 |\r\n| `references/guide.md` | 使用指南 | 三种执行模式操作教程。包含：audit/create/refactor 流程、参数说明、注意事项。 | 无 |\r\n| `references/module-library.md` | 参考文档 | ``` | 无 |\r\n| `references/permissions.md` | 权限与测试 | 权限扫描说明与测试结论。包含：风险等级、高权限操作说明、测试概览、计时统计。 | R-15, R-16 |\r\n| `references/style-presets.md` | 参考文档 | `hug-html` 支持 5 种常见风格的样式预设，通过 `content_filler.py --preset` 应用。 | 无 |\r\n## 快速开始\r\n\r\n**场景：生成推广卡片**\r\n用户需求：帮我做一个 APP 推广卡片，要有二维码，输出 HTML 文件\r\n系统执行：\r\n```bash\r\npython scripts/template_generator.py --type promo -o \"data/output/card.html\"\r\n```\r\n系统输出：data/output/card.html — 毛玻璃风格推广卡片，含二维码、产品名、宣传语\r\n\r\n**场景：可视化编辑**\r\n用户需求：给这个卡片加一个在线编辑功能，输出可编辑 HTML\r\n系统执行：\r\n```bash\r\npython scripts/visual_editor.py --template data/output/card.html -o data/output/editor.html\r\n```\r\n系统输出：data/output/editor.html — 带 Ctrl+E编辑界面，双击文字可更新\r\n\r\n**场景：生成周历仪表板**\r\n用户需求：做一个带假日管理的周历交互 HTML，输出仪表板\r\n系统执行：\r\n```bash\r\npython scripts/template_generator.py --type calendar-dashboard -o \"data/output/calendar.html\"\r\n```\r\n系统输出：data/output/calendar.html — 交互式周历，支持年份切换和工日统计\r\n## 工作流程\r\n\r\n本技能的执行流程包含以下编号列表（按顺序执行）：\r\n\r\n- **① 解析需求** — 输入 用户需求描述 → 输出 需求规格\r\n- **② 选择/创建 Grid Spec** — 输入 需求规格 → 输出 grid_spec.json\r\n- **③ 引用模块** — 输入 grid_spec.json, modules/ → 输出 module_config.json\r\n- **④ 生成 HTML** — 输入 grid_spec.json, module_config.json → 输出 *.html\r\n- **⑤ 生成编辑界面（可选）** — 输入 *.html → 输出 editor.html\r\n- **⑥ 内容填充（可选）** — 输入 editor.html → 输出 filled.html\r\n- **⑦ 方案模板固化（可选）** — 输入 filled.html → 输出 interfaces.json\r\n- **⑧ 输出结果** — 输入 最终 HTML → 输出 预览\r\n## 权限说明\r\n\r\n| 工具 | 访问级别 | 用途 |\r\n| ------ |----------| ------ |\r\n| Read | 只读 | 读取 Grid Spec、模块库、样式预设 |\r\n| Write | 写入 | 将输出 HTML 写入 `data/output/` |\r\n| Bash | 受限 | 运行内部处理脚本（限制在 `scripts/` 目录内） |\r\n\r\n- **不会**访问系统敏感路径或凭证文件\r\n- **不会**向外部网络发送数据\r\n- **不会**执行用户 Shell 配置文件\r\n- **不会**更新系统注册表或环境变量\r\n- **不会**执行用户 Shell 配置文件\n\nFile v3.3.1:_meta.json\n\n{\n  \"ownerId\": \"kn75zfd51df61ajdyqtgvrs1hx84s4q6\",\n  \"slug\": \"hug-html\",\n  \"version\": \"3.3.1\",\n  \"publishedAt\": 1783594053622\n}\n\nFile v3.3.1:references/antipatterns.md\n\n# 反模式手册\r\n\r\n本文档列出 hug-html 技能的常见反模式及正确做法。\r\n\r\n---\r\n\r\n## 反模式列表\r\n\r\n### ❌ 错误：在 SKILL.md 中粘贴大段代码\r\n\r\n**问题**：SKILL.md 应保持 ≤230 行，大段代码会导致文件臃肿，违反 R-17 渐进式加载规范。\r\n\r\n**正确做法**：将代码移到 `scripts/` 目录，在 SKILL.md 中描述调用方式。\r\n\r\n```markdown\r\n❌ 错误示例：\r\n```python\r\ndef generate_template():\r\n    # ... 50行代码 ...\r\n```\r\n\r\n✅ 正确示例：\r\n调用 `scripts/template_generator.py --output <path> --type <promo|product|tech|flow>`\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：使用相对路径 `./scripts/grid_builder.py`\r\n\r\n**问题**：相对路径在不同工作目录下会解析错误，导致脚本找不到。\r\n\r\n**正确做法**：使用相对路径（如 `scripts/grid_builder.py`），skill-standardization 审计工具会自动拼接安装目录。\r\n\r\n```markdown\r\n❌ 错误：python \"C:/Users/.../scripts/template_generator.py\"\r\n✅ 正确：python scripts/template_generator.py --output ../.standardization/hug-html/data/output/result.html\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：在 SKILL.md 中写\"详见脚本注释\"\r\n\r\n**问题**：用户无法看到脚本注释，且脚本注释容易过时。\r\n\r\n**正确做法**：将详细说明写入 `references/guide.md`，SKILL.md 只写必要信息。\r\n\r\n---\r\n\r\n### ❌ 错误：产出物路径指向安装目录\r\n\r\n**问题**：`artifact_paths` 应指向数据目录（`../.standardization/hug-html/data/output/`），而非安装目录下的 `data/output/`。\r\n\r\n**正确做法**：\r\n\r\n在 `SKILL.md` frontmatter 中：\r\n```yaml\r\nartifact_paths: [\"../.standardization/hug-html/data/output/\"]\r\n```\r\n\r\n在脚本中：\r\n```python\r\nfrom pathlib import Path\r\noutput_dir = Path(__file__).parent.parent.parent / \".standardization\" / \"hug-html\" / \"data\" / \"output\"\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：模块名拼写错误\r\n\r\n**问题**：`SKILL.md` 或 `references/` 中引用的模块名与实际文件名不一致，导致用户调用失败。\r\n\r\n**正确做法**：每次提及脚本名时，用绝对路径验证文件是否存在。\r\n\r\n```\r\n✅ 正确：python \"C:/Users/sm001/.workbuddy/skills/hug-html/scripts/template_generator.py\" --help\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：术语不一致\r\n\r\n**问题**：同一概念混用多个术语（如\"配置\"/\"配置\"、\"填充内容\"/\"填内容\"），增加理解成本。\r\n\r\n**正确做法**：全文统一术语。\r\n\r\n| 概念 | 统一术语 | 错误术语 |\r\n|------|----------|----------|\r\n| configuration | 配置 | 配置、setting |\r\n| fill content | 填充内容 | 填内容、填入 |\r\n| module | 模块 | 组件、component |\r\n| preset | 预设 | 预置、preset |\r\n| update | 更新 | 更新、modify |\r\n\r\n---\r\n\r\n## 检查清单\r\n\r\n- [ ] SKILL.md ≤ 230 行？\r\n- [ ] 无大段代码（>10行）直接在 SKILL.md 中？\r\n- [ ] 所有路径均为相对路径？\r\n- [ ] 无\"详见脚本注释\"等推卸责任的描述？\r\n- [ ] `artifact_paths` 指向数据目录而非安装目录？\r\n- [ ] 所有脚本名拼写正确且文件存在？\r\n- [ ] 术语全文统一？\r\n\r\n---\r\n\r\n> 本文档遵循 R-18 反模式引用规范，由 `skill-standardization v2.38.6` 生成。\n\nFile v3.3.1:references/architecture.md\n\n# 四层架构（细化）\r\n\r\nhug-html 采用四层架构设计，从抽象到具体逐层约束。\r\n\r\n```\r\n骨架 (Skeleton)\r\n├── 骨架结构 — N×M 网格、行列数、单元格合并(rowspan/colspan)、gap 间距\r\n├── 骨架样式 — 底板背景/渐变/透明度、外阴影、外边框、圆角、内外边距\r\n└── 约束模式 — fill(完全贴合) / fit(等比缩放) / clip(裁剪遮挡)\r\n\r\n模块 (Module)  ← 组件组合 = {组件声明 + 约束 + 比例} 自由搭配\r\n├── 组件组合 — 8种原子组件自由搭配（text/image/icon/qrcode/table/divider/spacer/group）\r\n├── 组合逻辑 — 方向(row/column)、比例(ratios)、对齐(align/cross_align)\r\n└── 约束传递 — 骨架约束模块 → 模块约束组件（递归）\r\n\r\n组件 (Component)  ← 8种原子类型\r\n├── text     — 纯文本（title/body/caption 三种变体）\r\n├── image    — 图片（支持 fit/cover/fill 填充模式）\r\n├── icon     — 图标（FontAwesome / SVG 内联）\r\n├── qrcode   — 二维码（API 生成）\r\n├── table    — 数据表格（表头+行）\r\n├── divider  — 分割线\r\n├── spacer   — 空白占位\r\n└── group    — 组合容器（递归包含子组件）\r\n\r\n基础样式 (Base)\r\n└── CSS 原语 — 字体/颜色/渐变/圆角/间距/阴影/边框\r\n```\r\n\r\n**编辑粒度**（可视化编辑器内）：\r\n| 可更新 | 不可更新（需改 Grid Spec） |\r\n|--------|---------------------------|\r\n| ✓ 图片内容（点击输入 URL / 拖放文件替换） | ✗ 骨架结构（行列数、合并方式、gap） |\r\n| ✓ 基础样式（每个文字元素独立：字体家族/字重/字号/字色） | ✗ 模块结构（组件的 HTML 骨架） |\r\n| ✓ 模块样式（通过 cell style 覆盖背景色/内边距） | ✗ 骨架样式（底板色/外阴影等） |\r\n\r\n**大模型使用流程**（自由生成模式）：\r\n1. 理解用户需求 → 确定骨架结构：几行几列、哪些单元格需要合并\r\n2. 确定约束模式：fill/fit/clip → 决定骨架对模块、模块对组件的约束\r\n3. 描述需要的组件 → 从8种原子组件中自由组合，放入对应骨架位置\r\n4. 配置组合逻辑：方向、比例、对齐方式\r\n5. 生成 HTML → 可直接用 `module_assembler.py` 或自由生成自包含 HTML\n\nFile v3.3.1:references/call-chains.md\n\n# call-chains.md — hug-html 调用链定义\r\n\r\n本文件定义 `hug-html` 技能的调用链，供 `skill-sub` 读取和执行。\r\n\r\n---\r\n\r\n## 调用链 1：generate-html（完整生成流程）\r\n\r\n**描述**：从需求分析到输出最终 HTML 的完整流程\r\n\r\n**触发方式**：`/hug-html generate --type <type> --output <path>`\r\n\r\n**步骤**：\r\n\r\n| 步骤 | 动作 | 调用脚本 | 输出 |\r\n|------|-------|------|------|\r\n| 1 | 解析需求 | （AI 理解用户意图） | 确定 `type`, `preset`, `modules` |\r\n| 2 | 生成模板 | `template_generator.py --type <t> --output <o>` | `template.html` |\r\n| 3 | 填充内容（可选） | `content_filler.py --auto --template <t> --output <o>` | `filled.html` |\r\n| 4 | 应用样式预设（可选） | `content_filler.py --preset <p> --template <t> --output <o>` | `styled.html` |\r\n| 5 | 生成编辑界面（可选） | `visual_editor.py --template <t> --output <o>` | `editor.html` |\r\n| 6 | 组装模块（可选） | `module_assembler.py --modules <m> --output <o>` | `assembled.html` |\r\n| 7 | 输出最终文件 | （复制到 `data/output/final.html`） | `final.html` |\r\n\r\n**调用链 JSON**（`skill-sub` 格式）：\r\n\r\n```json\r\n{\r\n  \"name\": \"generate-html\",\r\n  \"description\": \"从需求到最终 HTML 的完整生成流程\",\r\n  \"steps\": [\r\n    {\"step\": 1, \"action\": \"parse-requirement\", \"tool\": \"AI\", \"output\": \"type,preset,modules\"},\r\n    {\"step\": 2, \"action\": \"generate-template\", \"script\": \"template_generator.py\", \"args\": \"--type {type} --output data/output/template.html\"},\r\n    {\"step\": 3, \"action\": \"fill-content\", \"script\": \"content_filler.py\", \"args\": \"--auto --template data/output/template.html --output data/output/filled.html\", \"optional\": true},\r\n    {\"step\": 4, \"action\": \"apply-preset\", \"script\": \"content_filler.py\", \"args\": \"--preset {preset} --template data/output/template.html --output data/output/styled.html\", \"optional\": true},\r\n    {\"step\": 5, \"action\": \"generate-editor\", \"script\": \"visual_editor.py\", \"args\": \"--template data/output/template.html --output data/output/editor.html\", \"optional\": true},\r\n    {\"step\": 6, \"action\": \"assemble-modules\", \"script\": \"module_assembler.py\", \"args\": \"--modules {modules} --output data/output/assembled.html\", \"optional\": true},\r\n    {\"step\": 7, \"action\": \"finalize\", \"tool\": \"AI\", \"output\": \"data/output/final.html\"}\r\n  ]\r\n}\r\n```\r\n\r\n---\r\n\r\n## 调用链 2：edit-html（编辑流程）\r\n\r\n**描述**：生成模板 → 生成编辑界面 → 用户编辑 → 导出最终 HTML\r\n\r\n**触发方式**：`/hug-html edit --template <path>`\r\n\r\n**步骤**：\r\n\r\n| 步骤 | 动作 | 调用脚本 | 输出 |\r\n|------|-------|------|------|\r\n| 1 | 检查模板是否存在 | （AI 验证） | 模板路径 |\r\n| 2 | 生成可视化编辑界面 | `visual_editor.py --template <t> --output <o>` | `editor.html` |\r\n| 3 | 提示用户在浏览器中编辑 | （AI 输出提示） | 编辑说明 |\r\n| 4 | 用户导出最终 HTML | （用户点击「生成最终 HTML」按钮） | `final.html` |\r\n| 5 | 提取编辑后内容（可选） | `content_filler.py --extract <html> --output <json>` | `content.json` |\r\n\r\n**调用链 JSON**：\r\n\r\n```json\r\n{\r\n  \"name\": \"edit-html\",\r\n  \"description\": \"生成可视化编辑界面并导出最终 HTML\",\r\n  \"steps\": [\r\n    {\"step\": 1, \"action\": \"validate-template\", \"tool\": \"AI\", \"output\": \"template-path\"},\r\n    {\"step\": 2, \"action\": \"generate-editor\", \"script\": \"visual_editor.py\", \"args\": \"--template {template} --output data/output/editor.html\"},\r\n    {\"step\": 3, \"action\": \"prompt-user\", \"tool\": \"AI\", \"output\": \"edit-instructions\"},\r\n    {\"step\": 4, \"action\": \"export-final\", \"tool\": \"user\", \"output\": \"final.html\"},\r\n    {\"step\": 5, \"action\": \"extract-content\", \"script\": \"content_filler.py\", \"args\": \"--extract data/output/editor-output.html --output data/config/content.json\", \"optional\": true}\r\n  ]\r\n}\r\n```\r\n\r\n---\r\n\r\n## 调用链 3：assemble-with-modules（模块组装流程）\r\n\r\n**描述**：选择模块 → 组装 → 填充内容 → 输出\r\n\r\n**触发方式**：`/hug-html assemble --modules <csv>`\r\n\r\n**步骤**：\r\n\r\n| 步骤 | 动作 | 调用脚本 | 输出 |\r\n|------|-------|------|------|\r\n| 1 | 列出可用模块 | `module_assembler.py --list` | 模块列表 |\r\n| 2 | 组装选定模块 | `module_assembler.py --modules <m> --output <o>` | `assembled.html` |\r\n| 3 | 填充内容（可选） | `content_filler.py --template <t> --content <c> --output <o>` | `filled.html` |\r\n| 4 | 生成编辑界面（可选） | `visual_editor.py --template <t> --output <o>` | `editor.html` |\r\n\r\n**调用链 JSON**：\r\n\r\n```json\r\n{\r\n  \"name\": \"assemble-with-modules\",\r\n  \"description\": \"选择模块并组装成完整 HTML\",\r\n  \"steps\": [\r\n    {\"step\": 1, \"action\": \"list-modules\", \"script\": \"module_assembler.py\", \"args\": \"--list\"},\r\n    {\"step\": 2, \"action\": \"assemble\", \"script\": \"module_assembler.py\", \"args\": \"--modules {modules} --output data/output/assembled.html\"},\r\n    {\"step\": 3, \"action\": \"fill-content\", \"script\": \"content_filler.py\", \"args\": \"--template data/output/assembled.html --content data/config/content.json --output data/output/filled.html\", \"optional\": true},\r\n    {\"step\": 4, \"action\": \"generate-editor\", \"script\": \"visual_editor.py\", \"args\": \"--template data/output/assembled.html --output data/output/editor.html\", \"optional\": true}\r\n  ]\r\n}\r\n```\r\n\r\n---\r\n\r\n## 注册方式（skill-sub）\r\n\r\n将以上 JSON 保存到 `data/config/call-chains.json`，或在 `skill-sub` 中注册：\r\n\r\n```bash\r\npython \"$(SKILL_DIR)/../skill-sub/scripts/chain_manager.py\" register --file \"C:/Users/sm001/.workbuddy/skills/hug-html/data/config/call-chains.json\"\r\n```\r\n\r\n---\r\n\r\n## 调用示例\r\n\r\n```bash\r\n# 使用 generate-html 调用链\r\npython \"$(SKILL_DIR)/../skill-sub/scripts/chain_executor.py\" run --chain generate-html --type promo --preset business\r\n\r\n# 使用 edit-html 调用链\r\npython \"$(SKILL_DIR)/../skill-sub/scripts/chain_executor.py\" run --chain edit-html --template \"data/output/template.html\"\r\n\r\n# 使用 assemble-with-modules 调用链\r\npython \"$(SKILL_DIR)/../skill-sub/scripts/chain_executor.py\" run --chain assemble-with-modules --modules \"color:gradient-purple,font:title-large,image:img-cover\"\r\n```\n\nFile v3.3.1:references/changelog.md\n\n## [3.3.1] - 2026-07-09\r\n\r\n### 修复\r\n- **displayName 统一为 kebab-case**：ClawHub/SkillHub 发布的显示名与技能名一致（），废除驼峰格式\r\n\r\n## [3.3.0] - 2026-07-09\r\n## [3.3.0] - 2026-06-30\r\n\r\n### 修复\r\n- refactor: hug-html\r\n\r\n---\r\n\r\n## [3.2.0] - 2026-06-26\r\n\r\n### 修复\r\n- refactor: hug-html\r\n\r\n---\r\n\r\n## [3.1.0] - 2026-06-26\r\n\r\n### 修复\r\n- refactor: hug-html\r\n\r\n---\r\n\r\n## 3.0.4 (2026-06-02) -- skill-standardization 改造\r\n\r\n### Changed\r\n- R-10: SKILL.md frontmatter tags 和 description 与 _meta.json 同步一致\r\n- R-04: description 删除版本号（_meta.json 和 SKILL.md 均去除）\r\n- R-20: changelog.md 术语统一（删除→删除）\r\n- **R-17**: SKILL.md 缩减至 181 行，非标章节按 body.json 三层规则处理:\r\n   - 四层架构（细化）→ 渐进式: references/architecture.md\r\n   - 能力边界 → 重命名: 限制\r\n   - 错误处理说明 → 合并: 核心能力第14项\r\n   - 附录 → 合并: 核心能力 ### 渐进式文件索引\r\n\r\n---\r\n\r\n## 3.0.3 (2026-05-31)\r\n\r\n### 修复\r\n- **R-01/R-07**: frontmatter 补全 trigger 和 trigger_negative 字段\r\n- **R-04**: description 删除版本号\r\n- **R-06**: 补回缺失的 H1 标题\r\n- **R-10**: changelog 版本号去 v 前缀\r\n- **R-18/R-19**: SKILL.md 补充 antipatterns/faq 引用\r\n\r\n---\r\n\r\n## 3.0.2 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 3.0.1 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 3.0.0 (2026-05-30) — 组件式架构重构\r\n\r\n### 重大更新（MAJOR）\r\n- **架构重构**：从预置复合模块模板改为原子组件+声明式组合\r\n  - 删除 14 个固定复合模块，替换为 8 种原子组件（text/image/icon/qrcode/table/divider/spacer/group）\r\n  - 新增 3 级约束系统（fill/fit/clip），递归作用于骨架→模块→组件\r\n  - 新增声明式组合逻辑：方向(row/column)、比例(ratios)、对齐(align/cross_align)\r\n  - 新增  组件引擎， 支持新旧两种 Spec 格式\r\n\r\n### Changed\r\n- module_assembler.py 完全重写为组件引擎\r\n- grid_builder.py build_cell_html() 支持 components 字段\r\n- references/module-library.md 重写为组件系统文档\r\n- SKILL.md 四层架构、核心能力、快速开始全面更新\r\n\r\n---\r\n## 2.1.4 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 2.1.3 (2026-05-30) — R-12 合规完善\r\n\r\n### Changed\r\n- 所有脚本补充 DEFAULT_DATA_DIR_RAW + DATA_DIR R-12 定义\r\n- _meta.json 补充 data_dir 字段\r\n- 运行 fix_missing_data_dir 一键修复，R-12 审计通过\r\n\r\n\r\n# Changelog — hug-html\r\n\r\n\r\n\r\n## 2.1.2 (2026-05-30) — skill-standardization 改造 + R-12 脚本补全\r\n\r\n### Changed\r\n- 版本号 v2.1.1 → v2.1.2（SKILL.md + _meta.json + 脚本版本字符串三端统一）\r\n- SKILL.md frontmatter 补全 description 字段\r\n- SKILL.md 缩减至 ≤230 行（删除冗余空白行和 H1 标题）\r\n- 尾部版本声明更新为 2.1.2\r\n- 删除 references/faq-q4-fixed.md 遗留文件\r\n- template_generator.py / visual_editor.py / content_filler.py: 补充 DEFAULT_DATA_DIR_RAW + DATA_DIR R-12 定义\r\n- gen_calendar_spec.py: 补充 DEFAULT_DATA_DIR_RAW + DATA_DIR，保留 TEMPLATES_DIR 指向内置模板\r\n- _meta.json: 补充 data_dir 字段\r\n\r\n### Fixed\r\n- SKILL.md 版本号与 _meta.json 不一致问题\r\n- 4 个脚本缺少 R-12 合规的数据目录变量声明\r\n\r\n## 2.1.1 (2026-05-29) — skill-standardization 合规修正\r\n\r\n### Changed\r\n- 版本号 v2.1.0 → v2.1.1（`skill-standardization update --fix` 自动 bump）\r\n- `_meta.json` 补充 `data_dir` 字段，通过 R-12 检查\r\n- `scripts/grid_builder.py`：补充 `DEFAULT_DATA_DIR_RAW` R-12 数据目录字面量声明\r\n- `scripts/gen_test_grids.py`：补充 `DEFAULT_DATA_DIR_RAW` R-12 字面量\r\n- `scripts/module_assembler.py`：补充 `DEFAULT_DATA_DIR_RAW` R-12 字面量\r\n\r\n## 2.1.0 (2026-05-29) — 全面中文异常处理 + 能力边界定义\r\n\r\n### Added\r\n- 所有脚本集成中文错误处理机制：`show_error()` 函数统一输出 `❌ [错误类型] 说明 + 💡 修复建议`\r\n- `safe_read_json()` / `safe_write_text()` 安全文件操作工具，文件不存在/JSON 格式错误/编码异常均有中文指引\r\n- `--debug` 参数支持（grid_builder.py / template_generator.py / visual_editor.py），加参数显示完整堆栈\r\n- SKILL.md 新增「能力边界」章节：✅ 支持场景 / ❌ 不支持场景 / ⚠️ 边界情况，明确回答\"这个需求支不支持\"\r\n- SKILL.md 新增「错误排查」快速入门表格+「错误处理说明」章节\r\n- SKILL.md 触发场景补充多个复杂需求触发示例\r\n- faq.md 新增 Q11-Q17：错误码对照表、文件找不到修复、布局错乱排查、编辑器无响应、模板固化使用、能力边界判断\r\n\r\n### Changed\r\n- `grid_builder.py`: main() 包裹 try/except，所有文件读取/写入改用安全函数\r\n- `template_generator.py`: 重写为 try/except + 中文错误，引入 grid_builder 的 show_error/safe_read_json/safe_write_text\r\n- `visual_editor.py`: 重写为 try/except + 中文错误，模板不存在/读取失败均有中文指引\r\n- `content_filler.py`: 重写为 try/except + 中文错误，文件读取/JSON 解析/填充字段校验均有中文提示\r\n- `SKILL.md` frontmatter 版本号 v2.0.4 → v2.1.0\r\n\r\n## 2.0.1 (2026-05-29) — 完整交互 + 审计 + 标准化\r\n\r\n### Added\r\n- `scripts/grid_builder.py` — 核心网格引擎：N×M 网格布局、单元格合并（rowspan/colspan）\r\n- 两层级模块体系：Base（63 个 CSS 原语）+ Composite（14 个可复用 HTML 组件）\r\n- 内置 7 个方案模板：harmony-app、harmony-dual、calendar-dashboard(交互版)、promo、3x3-merge、4x2-app-card、3x3-mixed-styles\r\n- 泛化三个用户模板：harmony-app，harmony-dual，calendar-dashboard\r\n- `calendar-dashboard` 完整交互版：5×3 网格、年份控制、周末规则勾选、假日区间 CRUD、补班管理、周历视图、总工日统计\r\n- `grid_builder.py` 支持 `scripts` 字段注入自定义 JS，支持 `file` 字段引用外部 JSON 模板\r\n- `scripts/gen_calendar_spec.py` — 交互日历模板生成器\r\n- `scripts/gen_test_grids.py` — 测试 Grid Spec / 模块 JSON 生成工具\r\n- 图片编辑：点击输入 URL + 拖放文件替换（`editable-img` 类），所有复合模块图片均支持\r\n- 编辑器字体控制：字体家族（8种）、字重（100-900）、字号（9-48px）、字色拾色器\r\n- 5 种样式预设：business / academic / festive / mourning / tech，`style_preset` 字段一键切换\r\n- 生成后审计 `audit_html()`：检查 DOCTYPE、标签平衡、网格越界、单元格重叠、backdrop-filter 裁剪、背景异常\r\n- 生成说明 `print_generation_guide()`：每次生成强制输出编辑方法、创作模式、可用资源、审计说明\r\n- 方案模板固化 `--save-as <名>`：将任意 Grid Spec 保存为用户模板，自动版本管理\r\n- `--export-interfaces`：导出完整接口定义 JSON（Grid Spec schema + 63 base + 14 composite + 5 presets）\r\n- `scripts/templates/` 目录：内置文件型模板跟随技能安装（不丢失）\r\n- body 背景智能选择：玻璃卡用 `#000`，普通卡用 card bg 或 `#eef2f7`\r\n\r\n### Changed\r\n- `scripts/module_assembler.py` — 重写为 grid-aware（接受 grid spec 而非扁平模块列表）\r\n- `scripts/template_generator.py` — 重写，删除 `gen_body_*` 硬编码，使用 grid 框架，支持用户模板\r\n- `scripts/visual_editor.py` — 增强为网格感知编辑器 + 字体/字重/字号/字色独立控制 + 拖放图片\r\n- `scripts/content_filler.py` — 更新为 v2 接口\r\n- 所有复合模块图标从 `<div>` 改为 `<img>` 可点击换图\r\n- 通用化模板内容：删除具体来源（刻在石头上/灯球色盘），改用通用占位符\r\n- header-entity/header-dual/qr-card/qr-dual/text-img-right 所有图片均加 `editable-img` 类\r\n- CSS cell style 去重：style dict 直接替换默认 bg/padding，不再叠加\r\n- 编辑器工具栏全面升级：B/I/U + 字体 + 字重 + 字号 + 拾色器 + 背景色 + 透明度\r\n- 数据库目录移至 `.standardization/hug-html/data/`，遵循 R-11/R-22 规范\r\n- `SKILL.md` — 四层架构定义（骨架结构/骨架样式/模块结构+样式/基础样式）\r\n- `references/guide.md` — 完整重写为 v2 网格架构教程\r\n- `references/module-library.md` — 完整重写为两层级模块说明\r\n- 版本号 `1.0.1` → `2.0.1`\r\n\r\n### Fixed\r\n- Grid Spec `cells` 位置统一：`grid.cells[...]` 为标准存储位置，兼容顶层 `cells`\r\n- 单元格 CSS 生成逻辑修正（style dict 重叠问题）\r\n- body 背景硬编码 `#000` 修复：根据模板类型智能选择\r\n- `backdrop-filter` 从 DEFAULT_CARD_STYLE 泄露到普通模板（导致内容裁剪）修复\r\n- 日历 JS 缺失 `<script>` 包裹导致不执行修复\r\n- GBK 编码兼容：所有 print 输出兼容 Windows 终端\r\n- 标签平衡检查改用正则精确匹配，排除 script/style 内容，消除假阳性\r\n- R-20 写作规范修复：guide.md 中英文混排空格\r\n- R-11/R-22 数据目录合规：`data/` → `.standardization/hug-html/data/`\n\nFile v3.3.1:references/examples.md\n\n# examples.md — hug-html 使用示例\r\n\r\n## 示例 1：生成宣传面板 HTML\r\n\r\n```bash\r\npython \"scripts/template_generator.py\" ^\r\n  --output \"data/output/promo.html\" ^\r\n  --type promo\r\n```\r\n\r\n输出：`data/output/promo.html`（粉紫渐变风格宣传面板）\r\n\r\n---\r\n\r\n## 示例 2：生成可视化编辑界面\r\n\r\n```bash\r\npython \"scripts/visual_editor.py\" ^\r\n  --template \"data/output/promo.html\" ^\r\n  --output \"data/output/editor.html\"\r\n```\r\n\r\n在浏览器中打开 `editor.html`：\r\n1. 按 `Ctrl+E` 进入编辑模式\r\n2. 点击任意文字区域直接更新\r\n3. 点击图片可更换 URL\r\n4. 使用顶部工具栏调整颜色/字号/透明度\r\n5. 点击「✅ 生成最终 HTML」下载成品\r\n\r\n---\r\n\r\n## 示例 3：用模块库组装 HTML\r\n\r\n```bash\r\n# 查看所有可用模块\r\npython \"scripts/module_assembler.py\" --list\r\n\r\n# 组装：渐变背景 + 大标题 + 封面图 + 分隔线\r\npython \"scripts/module_assembler.py\" ^\r\n  --modules \"color:gradient-purple,font:title-large,image:img-cover,effect:divider\" ^\r\n  --output \"data/output/assembled.html\"\r\n```\r\n\r\n---\r\n\r\n## 示例 4：自动填充模板内容\r\n\r\n```bash\r\n# 自动生成示例内容\r\npython \"scripts/content_filler.py\" ^\r\n  --template \"data/output/promo.html\" ^\r\n  --auto ^\r\n  --output \"data/output/promo-filled.html\"\r\n```\r\n\r\n---\r\n\r\n## 示例 5：用 JSON 文件填充内容\r\n\r\n`data/config/content.json`：\r\n```json\r\n{\r\n  \"title\": \"🎉 2026 新春庆典\",\r\n  \"subtitle\": \"时间：2026年5月28日 14:00\",\r\n  \"highlight\": \"精彩演出 · 美食盛宴 · 幸运抽奖\",\r\n  \"time\": \"2026年5月28日 14:00-18:00\",\r\n  \"location\": \"深圳市南山区创业路 XX 大厦\",\r\n  \"detail\": \"本次活动免费参加，请提前报名。现场提供茶歇和纪念品。\",\r\n  \"footer\": \"© 2026 新春庆典组委会 | 咨询电话：138-XXXX-XXXX\"\r\n}\r\n```\r\n\r\n```bash\r\npython \"scripts/content_filler.py\" ^\r\n  --template \"data/output/promo.html\" ^\r\n  --content \"data/config/content.json\" ^\r\n  --output \"data/output/final.html\"\r\n```\r\n\r\n---\r\n\r\n## 示例 6：应用样式预设\r\n\r\n```bash\r\n# 生成科技风格模板\r\npython \"scripts/template_generator.py\" ^\r\n  --output \"data/output/tech.html\" ^\r\n  --type tech\r\n\r\n# 应用「商务」预设\r\npython \"scripts/content_filler.py\" ^\r\n  --template \"data/output/tech.html\" ^\r\n  --preset business ^\r\n  --output \"data/output/tech-business.html\"\r\n```\r\n\r\n---\r\n\r\n## 示例 7：提取编辑后的内容\r\n\r\n用户在可视化编辑器中更新后导出 HTML，提取内容为 JSON：\r\n\r\n```bash\r\npython \"scripts/content_filler.py\" ^\r\n  --extract \"data/output/editor-output.html\" ^\r\n  --output \"data/config/extracted.json\"\r\n```\n\nFile v3.3.1:references/faq.md\n\n# 常见问题解答（FAQ）\r\n\r\n本文档回答 hug-html 技能的常见问题。\r\n\r\n---\r\n\r\n## 基础问题\r\n\r\n### Q1：这个技能支持哪些 HTML 模板类型？\r\n\r\n**A**：支持 4 种类型：\r\n- `promo` — 宣传面板（渐变背景 + 大标题 + 按钮）\r\n- `product` — 产品介绍（左文右图两栏布局）\r\n- `tech` — 技术说明（代码样式块 + 参数表格）\r\n- `flow` — 流程图表（步骤卡片 + 编号）\r\n\r\n详见 `references/guide.md` 完整参数说明。也可以用 `--list-templates` 查看所有可用模板。\r\n\r\n---\r\n\r\n### Q2：生成的 HTML 文件保存在哪里？\r\n\r\n**A**：默认输出到：\r\n```\r\nC:/Users/sm001/.workbuddy/skills/.standardization/hug-html/data/output/\r\n```\r\n\r\n可通过 `--output` 参数指定自定义路径：\r\n```bash\r\npython \"scripts/template_generator.py\" --output \"C:/path/to/output.html\" --type promo\r\n```\r\n\r\n---\r\n\r\n### Q3：如何自定义样式？\r\n\r\n**A**：有两种方式：\r\n\r\n**方式 A：更新预设配置文件**\r\n```\r\nC:/Users/sm001/.workbuddy/skills/.standardization/hug-html/data/config/style-presets.json\r\n```\r\n\r\n**方式 B：在调用时指定预设**\r\n```bash\r\npython \"scripts/content_filler.py\" preset --template <path> --preset business\r\n```\r\n\r\n可用预设：`business`（商务）、`academic`（科研）、`festive`（喜庆）、`mourning`（丧事）\r\n\r\n详见 `references/style-presets.md`。\r\n\r\n---\r\n\r\n### Q4：如何使用可视化编辑器对 HTML 模板进行可视化编辑并导出最终结果？\r\n\r\n**A**：完整使用流程如下（需要先有一个模板文件）：\r\n\r\n**第 1 步：生成模板文件**\r\n```bash\r\npython \"scripts/template_generator.py\" --output \"../.standardization/hug-html/data/output/template.html\" --type promo\r\n```\r\n\r\n**第 2 步：根据模板生成编辑器 HTML**\r\n```bash\r\npython \"scripts/visual_editor.py\" --template \"../.standardization/hug-html/data/output/template.html\" --output \"../.standardization/hug-html/data/output/editor.html\"\r\n```\r\n> 注意：`--template` 参数必须指向一个已存在的 HTML 模板文件，不能省略。\r\n\r\n**第 3 步：在浏览器中打开编辑器**\r\n双击打开 `editor.html`，页面默认是**只读预览模式**，看到的是最终效果。\r\n\r\n**第 4 步：进入编辑模式**\r\n按键盘 `Ctrl+E`，页面上的可编辑区域会出现**蓝色虚线边框**，此时可以直接点击任何文字进行更新，也可以点击图片区域更换图片。\r\n\r\n**第 5 步：导出最终 HTML**\r\n更新完成后，滚动到页面底部，点击**\"导出 HTML\"** 按钮，浏览器会自动下载一个完整的 HTML 文件，所有 CSS 和 JS 都已内嵌，无需任何外部依赖。\r\n\r\n> 导出的 HTML 文件可以直接双击在浏览器中打开预览，也可以作为最终交付物发送给他人。\r\n\r\n---\r\n\r\n### Q5：如何组合多个模块？\r\n\r\n**A**：使用 `module_assembler.py`：\r\n\r\n```bash\r\npython \"scripts/module_assembler.py\" \\\r\n  --modules \"gradient-purple,title-large,img-cover\" \\\r\n  --output \"C:/temp/assembled.html\"\r\n```\r\n\r\n可用模块列表：\r\n- 颜色：`gradient-purple`, `gradient-blue`, `solid-primary`, `transparent-card`\r\n- 字体：`title-large`, `title-medium`, `body-text`, `caption`, `mono-code`\r\n- 图片：`img-circle`, `img-logo`, `img-cover`, `img-contain`\r\n- 布局：`two-col`, `three-col-cards`, `centered`\r\n- 效果：`fade-in`, `hover-scale`, `divider`, `spacer`\r\n\r\n详见 `references/module-library.md`。\r\n\r\n---\r\n\r\n### Q6：可以给模板填充真实内容吗？\r\n\r\n**A**：可以，有三种方式：\r\n\r\n**方式 A：自动填充示例内容**\r\n```bash\r\npython \"scripts/content_filler.py\" auto --template <path> --output <path>\r\n```\r\n\r\n**方式 B：从 JSON 文件填充**\r\n```bash\r\npython \"scripts/content_filler.py\" fill --template <path> --content \"data/config/content.json\" --output <path>\r\n```\r\n\r\n**方式 C：交互式填充**\r\n```bash\r\npython \"scripts/content_filler.py\" interactive --template <path> --output <path>\r\n```\r\n\r\n---\r\n\r\n### Q7：生成的 HTML 依赖外部 CSS/JS 吗？\r\n\r\n**A**：不依赖。所有生成的 HTML 都是**自包含**的：\r\n- CSS 内嵌在 `<style>` 标签中\r\n- JS 内嵌在 `<script>` 标签中\r\n- 无外部链接、无 CDN 依赖\r\n\r\n可直接在浏览器中打开，或嵌入到其他系统中。\r\n\r\n---\r\n\r\n### Q8：如何查看所有可用的调用链？\r\n\r\n**A**：调用链定义在：\r\n```\r\nC:/Users/sm001/.workbuddy/skills/.standardization/hug-html/data/config/call-chains.json\r\n```\r\n\r\n或使用 skill-sub 查看：\r\n```bash\r\npython \"C:/Users/sm001/.workbuddy/skills/.standardization/skill-sub/skill_sub.py\" list\r\n```\r\n\r\n可用调用链：\r\n- `generate-html-page` — 从需求到完整 HTML 页面\r\n- `edit-html` — 生成可视化编辑界面并导出\r\n- `assemble-with-modules` — 选择模块并组装成完整 HTML\r\n\r\n---\r\n\r\n## 进阶问题\r\n\r\n### Q9：如何扩展新的模板类型？\r\n\r\n**A**：更新 `scripts/template_generator.py`，在 `TEMPLATES` 字典中添加新类型：\r\n\r\n```python\r\nTEMPLATES = {\r\n    \"promo\": {...},\r\n    \"product\": {...},\r\n    \"tech\": {...},\r\n    \"flow\": {...},\r\n    \"your-new-type\": {\r\n        \"title\": \"你的新模板\",\r\n        \"sections\": [...],\r\n        ...\r\n    }\r\n}\r\n```\r\n\r\n然后更新 `references/guide.md` 和 `data/config/template-types.json`。\r\n\r\n---\r\n\r\n### Q10：可视化编辑器的编辑区域怎么定义？\r\n\r\n**A**：在模板 HTML 中，给可编辑元素添加 `class=\"editable\"` 和 `data-field=\"字段名\"`：\r\n\r\n```html\r\n<h1 class=\"editable\" data-field=\"title\">默认标题</h1>\r\n<p class=\"editable\" data-field=\"content\">默认内容</p>\r\n<img class=\"editable\" data-field=\"image\" src=\"...\">\r\n```\r\n\r\n`visual_editor.py` 会自动识别这些元素并生成编辑界面。\r\n\r\n---\r\n\r\n## 故障排查\r\n\r\n### Q11：脚本报错显示中文提示了，但还是不知道怎么修？\r\n\r\n**A**：v2.1.0 起所有脚本输出的错误提示都包含两部分：\r\n\r\n```\r\n❌ [错误类型] 具体的错误描述\r\n  💡 修复建议: 怎么做才能解决\r\n```\r\n\r\n**常见错误码对照表：**\r\n\r\n| 提示开头 | 意思 | 最常见的原因 |\r\n|---------|------|-------------|\r\n| `❌ [参数错误]` | 你给的参数不对或漏了 | 用 `--help` 看完整参数列表 |\r\n| `📁 [文件错误] 找不到文件` | 指定的文件不存在 | 检查路径拼写，用绝对路径 |\r\n| `📄 [JSON 错误] 格式错误` | JSON 文件语法有问题 | 检查逗号、引号是否配对 |\r\n| `📋 [模板错误] 未知模板` | 模板名不存在 | 用 `--list-templates` 看可用列表 |\r\n| `⚙️ [内部错误]` | 程序内部报错了 | 基本是参数传错了，检查后重试 |\r\n\r\n如果按照修复建议还是不行，加 `--debug` 参数显示详细堆栈，然后把全部输出发给 AI 协助分析。\r\n\r\n---\r\n\r\n### Q12：报错\"找不到文件\"，但文件确实存在？\r\n\r\n**A**：常见原因和修复：\r\n\r\n1. **路径是相对路径但运行目录不对**\r\n   - 所有脚本需要在技能根目录运行\r\n   - 推荐用绝对路径：`python \"C:/.../scripts/grid_builder.py\" --spec \"C:/.../spec.json\"`\r\n   - 或先用 `cd` 到技能目录\r\n\r\n2. **文件路径有空格**\r\n   - 用双引号包裹路径：`--output \"C:/My Project/output.html\"`\r\n\r\n3. **文件编码不是 UTF-8**\r\n   - 中文 Windows 默认使用 GBK，用记事本另存为 UTF-8\r\n\r\n---\r\n\r\n### Q13：模板生成出来是空的，或者布局错乱？\r\n\r\n**A**：排查步骤：\r\n\r\n1. **网格越界** — 检查 Grid Spec 中单元格的 row/col + rowspan/colspan 是否超出总行列数\r\n2. **CSS Grid 不支持重叠** — 单元格之间不能有位置重叠（审计会自动检查）\r\n3. **backdrop-filter 裁剪** — 毛玻璃类模板的卡片必须有 `overflow: hidden`\r\n4. **JSON 模板文件损坏** — 用 `--audit` 审查生成的 HTML\r\n\r\n---\r\n\r\n### Q14：编辑器打开后按 Ctrl+E 没反应？\r\n\r\n**A**：\r\n1. 检查浏览器控制台（F12）是否有 JS 错误\r\n2. 确认 HTML 中包含 `<script>` 标签且未被广告拦截器屏蔽\r\n3. 尝试用 Chrome/Edge/Firefox 打开（不支持 IE）\r\n\r\n---\r\n\r\n### Q15：我把方案模板保存了，下次怎么调出来直接用？\r\n\r\n**A**：模板固化后（`--save-as my-name`），文件会自动保存在 `data/user-templates/` 目录下，每个模板是一个独立的 JSON 文件，包含完整的 Grid Spec 和自动管理的版本号。下次使用时无需再指定 JSON 路径，直接按名称引用即可：\r\n\r\n```bash\r\npython \"scripts/grid_builder.py\" --spec \"my-name\" -o \"data/output/from-user.html\"\r\n```\r\n\r\n如果保存了同名的模板，系统会自动递增版本号，不会覆盖原有文件。使用 `--list-templates` 可查看所有已保存的用户模板及其版本信息。也可以通过直接更新 `data/user-templates/` 目录下的 JSON 文件来微调模板内容。\r\n\r\n---\r\n\r\n### Q16：我想生成的排版不是网格布局的，这个技能支持吗？\r\n\r\n**A**：**有限支持**。本技能的核心是 CSS Grid 网格系统，适合规整的卡片式排版。如果你需要自由排版（绝对定位/流式布局），建议使用\"自由生成模式\"（模式 B）让 AI 直接手写 HTML，不经过网格引擎。\r\n\r\n---\r\n\r\n### Q17：我做了一个复杂需求但不确定支不支持，怎么办？\r\n\r\n**A**：\r\n1. 先看 SKILL.md 的「能力边界」章节，对照 ✅ 支持 / ❌ 不支持列表\r\n2. 如果 ⚠️ 边界情况中有相似场景，说明支持但有注意事项\r\n3. 直接执行 `--list-templates`、`--list-modules`、`--list-presets` 查看所有可用资源\r\n4. 如果不确定，直接把需求告诉 AI，AI 会判断能否用本技能实现\r\n\r\n---\r\n\r\n> 本文档遵循 R-19 FAQ 引用规范，由 `skill-standardization v2.38.7` 生成。\r\n\r\n---\r\n\r\n## 错误排查（快速入门）\r\n\r\n> 脚本报错了？不要慌。所有错误提示已改为中文，并附带修复建议。\r\n\r\n| 错误现象 | 常见原因 | 怎么做 |\r\n|----------|---------|--------|\r\n| ❌ [文件错误] 找不到文件 | 路径写错了 | 检查路径是否存在，用绝对路径试试 |\r\n| ❌ [JSON 错误] 格式错误 | JSON 语法有问题 | 用 jsonlint.com 校验，或检查多了一个逗号 |\r\n| ❌ [模板错误] 未知模板 | 模板名写错了 | 用 `--list-templates` 查看所有可用模板 |\r\n| ❌ [参数错误] 缺参数 | 命令写少了参数 | 用 `--help` 查看完整参数说明 |\r\n| ⚠️ 审计警告 | HTML 有小问题但不致命 | 检查输出的 [WARN] 内容，逐一修正 |\r\n| 浏览器打开是空白 | HTML 文件编码问题 | 确认文件是 UTF-8 编码保存的 |\r\n\r\n> 完整错误排查指南见 `references/faq.md`。\r\n\r\n> 版本 2.1.2 — 全面中文异常处理：所有脚本输出的英文 Traceback 改为中文错误提示+修复建议；新增能力边界定义和错误排查指引。\n\nFile v3.3.1:references/guide.md\n\n# guide.md — hug-html 完整使用教程 (v2 网格架构)\r\n\r\nHTML 网格化模块生成技能，支持可配置的 N×M 网格布局、单元格合并、双层模块体系。\r\n\r\n---\r\n\r\n## 快速开始\r\n\r\n### 1. 查看所有可用基础模块\r\n\r\n```bash\r\npython \"scripts/grid_builder.py\" --list-modules\r\n```\r\n\r\n### 2. 查看所有内置模板\r\n\r\n```bash\r\npython \"scripts/grid_builder.py\" --list-templates\r\n```\r\n\r\n### 3. 从内置模板生成 HTML\r\n\r\n```bash\r\n# App 推广卡片\r\npython \"scripts/template_generator.py\" --type harmony-app -o \"data/output/my-card.html\"\r\n\r\n# 双端推广卡片\r\npython \"scripts/template_generator.py\" --type harmony-dual -o \"data/output/dual-card.html\"\r\n\r\n# 周历仪表板\r\npython \"scripts/template_generator.py\" --type calendar-dashboard -o \"data/output/calendar.html\"\r\n```\r\n\r\n### 4. 从自定义 Grid Spec 生成\r\n\r\n```bash\r\npython \"scripts/grid_builder.py\" --spec \"data/templates/3x3-merge.json\" -o \"data/output/3x3.html\"\r\n```\r\n\r\n### 5. 生成可视化编辑界面\r\n\r\n```bash\r\npython \"scripts/visual_editor.py\" --template \"data/output/my-card.html\" -o \"data/output/editor.html\"\r\n# 或用内置模板直接生成\r\npython \"scripts/visual_editor.py\" --type harmony-app -o \"data/output/editor.html\"\r\n# 打开后按 Ctrl+E 进入编辑模式\r\n```\r\n\r\n### 6. 内容填充\r\n\r\n```bash\r\n# 自动填充示例内容\r\npython \"scripts/content_filler.py\" auto --template \"data/output/template.html\" --output \"data/output/filled.html\"\r\n\r\n# 用 JSON 文件填充\r\npython \"scripts/content_filler.py\" fill --template \"data/output/template.html\" --content \"data/config/content.json\" --output \"data/output/final.html\"\r\n```\r\n\r\n---\r\n\r\n## 核心架构\r\n\r\n### 四层体系\r\n\r\n```\r\n骨架 (Skeleton)\r\n├── 骨架结构 — N×M 网格、行列数、单元格合并(rowspan/colspan)、gap 间距\r\n└── 骨架样式 — 底板背景/渐变/透明度、外阴影、外边框、圆角、内外边距\r\n\r\n模块 (Modules)  ← 模块模板 = {模块结构 + 模块样式} 预置组合\r\n├── 模块结构 — 复合模块的 HTML 骨架\r\n└── 模块样式 — 模块级的视觉样式（由 base 模块提供）\r\n\r\n基础 (Base/Primitives)\r\n└── 基础样式 — 作用于具体文字/元素的 CSS 原语\r\n```\r\n\r\n### 两层级模块体系\r\n\r\n```\r\n基础模块 (base)      →    复合模块 (composite)     →    放入网格格子\r\nCSS 原语                  可复用 HTML 组件\r\n─────────────────────────────────────────────────────\r\nfont-size-xl               header-entity\r\ncolor-dark                 main-title\r\nbg-glass                   qr-card / qr-dual\r\nradius-xl                  feature-panel\r\nshadow-glass               comms-panel\r\nimg-circle                 footer-caption\r\nflex-center                text-block / text-img-right\r\n...                        param-panel / data-table / stat-card\r\n```\r\n\r\n### Grid Spec 格式\r\n\r\n```json\r\n{\r\n  \"name\": \"模板名称\",\r\n  \"desc\": \"描述\",\r\n  \"card_style\": {\r\n    \"max_width\": \"400px\",\r\n    \"bg\": \"rgba(255,255,255,0.82)\",\r\n    \"border_radius\": \"36px\",\r\n    \"padding\": \"24px 20px\"\r\n  },\r\n  \"grid\": {\r\n    \"rows\": 6,\r\n    \"cols\": 1,\r\n    \"gap\": \"0\",\r\n    \"cells\": [\r\n      {\"id\": \"header\", \"row\": 0, \"col\": 0, \"module\": \"composite:header-entity\"},\r\n      {\"id\": \"merged\", \"row\": 1, \"col\": 0, \"colspan\": 2, \"rowspan\": 2,\r\n       \"module\": \"composite:feature-panel\", \"style\": {\"background\": \"#f5f5f5\"}},\r\n      {\"id\": \"custom\", \"row\": 2, \"col\": 0, \"colspan\": 3,\r\n       \"html\": \"<div data-field='custom'>自定义 HTML 内容</div>\"}\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\n### 单元格合并\r\n\r\n通过 `colspan` 和 `rowspan` 实现合并效果：\r\n- `colspan: 2` — 跨 2 列\r\n- `rowspan: 2` — 跨 2 行\r\n- 两者同时使用 — 跨 2 列 2 行\r\n\r\n---\r\n\r\n## 内置模板列表\r\n\r\n| 模板名 | 来源 | 网格 | 说明 |\r\n|--------|------|------|------|\r\n| `harmony-app` | 刻在石头上 | 6×1 | App 推广毛玻璃卡片 |\r\n| `harmony-dual` | 灯球色盘 | 6×1 | 双端（应用+元服务）推广卡片 |\r\n| `calendar-dashboard` | 智能周历 | 5×3 | **完全交互式仪表板**：年份控制、周末规则、假日区间 CRUD、补班管理、每周日历视图、总工日统计 |\r\n| `promo` | 原 promo 模板 | 3×3 | 活动宣传面板（卡片网格） |\r\n| `3x3-merge` | — | 3×3 | 单元格合并演示 |\r\n| `4x2-app-card` | — | 4×2 | 应用推广卡（左右分栏） |\r\n| `3x3-mixed-styles` | — | 3×3 | 每格不同样式演示 |\r\n\r\n---\r\n\r\n## 基础模块 (Base Modules)\r\n\r\n```\r\n# 字体大小: font-size-xxl / xl / lg / md / sm / xs / xxs\r\n# 字体颜色: color-dark / mid / light / white / primary / gradient-text\r\n# 背景: bg-white / transparent / light-blue / glass / dark / gradient-*\r\n# 圆角: radius-sm / md / lg / xl / full / pill\r\n# 间距: pad-xs / sm / md / lg / xl\r\n# 阴影: shadow-sm / md / lg / glass\r\n# 边框: border-glass / light / bottom / divider-*\r\n# 图片: img-circle / cover / contain / logo\r\n# 布局: flex-center / between / col / text-center / text-left / gap-*\r\n# 透明度: opacity-100 / 90 / 70 / 50\r\n# 动画: anim-fade / slide / hover-scale\r\n```\r\n\r\n---\r\n\r\n## 复合模块 (Composite Modules)\r\n\r\n| 模块名 | 用途 | 槽位 (data-field) |\r\n|--------|------|-------------------|\r\n| `header-entity` | 单实体头部（图标+名称+标签） | entity-name, entity-badge |\r\n| `header-dual` | 双实体头部（左应用+右元服务） | app-name, app-badge, service-name, service-badge |\r\n| `main-title` | 渐变文字主标题+副标题+底边线 | main-title, main-sub |\r\n| `qr-card` | 单张二维码卡片 | qr-image, qr-label, qr-hint |\r\n| `qr-dual` | 双二维码并排 | qr-image-left/right, qr-label-left/right |\r\n| `feature-panel` | 特性面板（多行图标+文字） | feature-icon-N, feature-text-N |\r\n| `comms-panel` | 多端通信面板（设备标签+协议） | 设备标签内容 |\r\n| `footer-caption` | 底部分隔线+标签组 | footer-tag-1/2/3 |\r\n| `small-note` | 极小注释文字 | note-text |\r\n| `text-block` | 纯文本块（标题+多行正文） | tb-title, tb-body, tb-body-2 |\r\n| `text-img-right` | 左文右图组合 | ti-title, ti-desc |\r\n| `param-panel` | 参数配置面板 | param-title, param-1/2 |\r\n| `data-table` | 数据表格（表头+行） | th-1/2, td-row*-col* |\r\n| `stat-card` | 数据统计卡片 | stat-label, stat-value |\r\n\r\n---\r\n\r\n## 可视化编辑器功能\r\n\r\n- **Ctrl+E** — 进入/退出编辑模式\r\n- **格子选择** — 点击格子 → 弹出属性面板\r\n- **字段编辑** — 点击带 data-field 的文字区域直接编辑\r\n- **工具栏** — 加粗/斜体/下划线、字色、背景色、字号、透明度\r\n- **网格概览** — 点击\"📋 网格\"按钮查看所有格子\r\n- **格子属性** — 右下角面板可调整底板颜色和内边距\r\n- **Ctrl+S** — 导出最终 HTML\n\nFile v3.3.1:references/LICENSE.md\n\nMIT License\n\nCopyright (c) {year} {author}\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nFile v3.3.1:references/module-library.md\n\n# module-library.md — hug-html 组件式模块库 v3.0\r\n\r\n## 架构总览\r\n\r\n```\r\n骨架 (Skeleton) — N×M 网格 + 3级约束(fill/fit/clip)\r\n  └─ 单元格 (Cell) — 放置组件组合\r\n       ├─ 组件 (Component) — 8种原子类型\r\n       │    ├─ text     纯文本（title/body/caption）\r\n       │    ├─ image    图片（fit/cover/clip）\r\n       │    ├─ icon     图标（FontAwesome/SVG）\r\n       │    ├─ qrcode   二维码\r\n       │    ├─ table    数据表格\r\n       │    ├─ divider  分割线\r\n       │    ├─ spacer   空白占位\r\n       │    └─ group    组合容器（递归）\r\n       └─ 约束系统 — fill/fit/clip 递归应用\r\n```\r\n\r\n**核心变化**（v2 → v3）：\r\n- 旧：14 个预置复合模块，每个固定 HTML 结构 → 硬编码，难以定制\r\n- 新：8 个原子组件 + 声明式组合 → 自由搭配，覆盖广泛场景\r\n\r\n---\r\n\r\n## 组件类型\r\n\r\n### text — 纯文本\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"text\"` |\r\n| `content` | string | ✅ | 文本内容 |\r\n| `variant` | string | ❌ | `title`(标题) / `body`(正文) / `caption`(注释)，默认 `body` |\r\n| `style` | object | ❌ | 覆盖样式（font_size, font_weight, color 等） |\r\n\r\n**变体默认样式：**\r\n\r\n| 变体 | font_size | font_weight | color |\r\n|------|-----------|-------------|-------|\r\n| title | 18px | 700 | #1a1a2e |\r\n| body | 14px | 400 | #4a4a6a |\r\n| caption | 12px | 300 | #8888aa |\r\n\r\n### image — 图片\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"image\"` |\r\n| `src` | string | ✅ | 图片 URL |\r\n| `alt` | string | ❌ | 替代文字 |\r\n| `constraint` | string | ❌ | `fit`(默认) / `cover` / `fill` |\r\n| `aspect` | string | ❌ | 宽高比，如 `\"1/1\"`、`\"16/9\"` |\r\n| `style` | object | ❌ | 额外 CSS |\r\n\r\n### icon — 图标\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"icon\"` |\r\n| `name` | string | ✅ | 图标名（如 `star`、`heart`） |\r\n| `family` | string | ❌ | `fa`(FontAwesome) / `svg`(内联)，默认 `fa` |\r\n| `size` | string | ❌ | 尺寸，如 `\"24px\"`，默认 `24px` |\r\n| `color` | string | ❌ | 颜色，默认 `#1a1a2e` |\r\n\r\n### qrcode — 二维码\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"qrcode\"` |\r\n| `content` | string | ✅ | 二维码内容（URL/文本） |\r\n| `size` | string | ❌ | 尺寸如 `\"120px\"`，默认 `120px` |\r\n| `label` | string | ❌ | 二维码下方标注文字 |\r\n\r\n### table — 数据表格\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"table\"` |\r\n| `headers` | string[] | ✅ | 表头数组 |\r\n| `rows` | string[][] | ✅ | 数据行二维数组 |\r\n| `style` | object | ❌ | 额外 CSS |\r\n\r\n### divider — 分割线\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"divider\"` |\r\n| `height` | string | ❌ | 线粗，默认 `\"1px\"` |\r\n| `color` | string | ❌ | 颜色，默认 `\"#e0e0e0\"` |\r\n| `style_type` | string | ❌ | `solid` / `dashed` / `dotted`，默认 `solid` |\r\n\r\n### spacer — 空白占位\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"spacer\"` |\r\n| `width` | string | ❌ | 宽度，默认 `\"100%\"` |\r\n| `height` | string | ❌ | 高度，默认 `\"auto\"` |\r\n\r\n### group — 组合容器（递归）\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"group\"` |\r\n| `direction` | string | ❌ | `\"row\"`(默认) / `\"column\"` |\r\n| `align` | string | ❌ | 主轴对齐：`left` / `center` / `right` / `top` / `bottom` |\r\n| `cross_align` | string | ❌ | 交叉轴对齐：`stretch`(默认) / `center` / `flex-start` / `flex-end` |\r\n| `ratios` | number[] | ❌ | 子组件 flex 比例，如 `[1, 2]` 表示1/3和2/3 |\r\n| `children` | array | ✅ | 子组件列表 |\r\n| `style` | object | ❌ | 容器额外 CSS |\r\n\r\n---\r\n\r\n## 约束系统\r\n\r\n三种约束模式递归应用于：**骨架 → 模块 → 组件**\r\n\r\n| 模式 | 枚举值 | CSS 行为 | 适用场景 |\r\n|------|--------|----------|---------|\r\n| 完全贴合 | `fill` | `width/height:100%` 拉伸填充 | 背景图、全宽文字 |\r\n| 等比缩放 | `fit` | `max-width/max-height:100%` + `object-fit:contain` | 图标、Logo |\r\n| 裁剪遮挡 | `clip` | `position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);overflow:hidden` | 头像、封面图 |\r\n\r\n约束在 Spec 中的配置位置：\r\n\r\n```json\r\n// 骨架对模块的约束（cell 级别）\r\n{\"row\": 0, \"constraint\": \"fit\", ...}\r\n\r\n// 组件级别的约束\r\n{\"type\": \"image\", \"constraint\": \"clip\", \"aspect\": \"1/1\", ...}\r\n```\r\n\r\n---\r\n\r\n## Grid Spec 完整示例\r\n\r\n```json\r\n{\r\n  \"name\": \"图文卡片\",\r\n  \"card_style\": {\r\n    \"max_width\": \"400px\",\r\n    \"bg\": \"rgba(255,255,255,0.85)\",\r\n    \"backdrop\": \"blur(20px)\",\r\n    \"border_radius\": \"24px\",\r\n    \"shadow\": \"0 12px 40px rgba(0,0,0,0.12)\",\r\n    \"padding\": \"20px\"\r\n  },\r\n  \"grid\": {\r\n    \"rows\": 3, \"cols\": 3, \"gap\": \"12px\",\r\n    \"cells\": [\r\n      {\r\n        \"id\": \"hero\", \"row\": 0, \"col\": 0, \"rowspan\": 2, \"colspan\": 2,\r\n        \"constraint\": \"fill\",\r\n        \"padding\": \"8px\",\r\n        \"components\": [\r\n          {\r\n            \"type\": \"image\",\r\n            \"src\": \"https://picsum.photos/200\",\r\n            \"constraint\": \"cover\",\r\n            \"style\": {\"border_radius\": \"12px\"}\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        \"id\": \"info\", \"row\": 0, \"col\": 2, \"rowspan\": 2,\r\n        \"direction\": \"column\",\r\n        \"ratios\": [1, 2, 1],\r\n        \"components\": [\r\n          {\"type\": \"icon\", \"name\": \"star\", \"size\": \"28px\", \"color\": \"#ffd700\"},\r\n          {\"type\": \"group\", \"direction\": \"column\", \"children\": [\r\n            {\"type\": \"text\", \"variant\": \"title\", \"content\": \"卡片标题\"},\r\n            {\"type\": \"text\", \"variant\": \"body\", \"content\": \"这里是正文描述，展示组件式组合的效果。\"}\r\n          ]},\r\n          {\"type\": \"text\", \"variant\": \"caption\", \"content\": \"¥ 99.00\"}\r\n        ]\r\n      },\r\n      {\"id\": \"div\", \"row\": 2, \"col\": 0, \"colspan\": 3,\r\n       \"components\": [{\"type\": \"divider\"}]}\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\n---\r\n\r\n## 命令行\r\n\r\n```bash\r\n# 列出所有组件类型\r\npython scripts/module_assembler.py --list-components\r\n\r\n# 导出接口定义 JSON\r\npython scripts/module_assembler.py --export-interfaces interfaces.json\r\n\r\n# 生成组件系统演示 HTML\r\npython scripts/module_assembler.py --demo\r\n\r\n# 旧模块系统（向后兼容）\r\npython scripts/grid_builder.py --list-modules\r\npython scripts/grid_builder.py --spec <spec> -o <output.html>\r\n```\r\n\r\n---\r\n\r\n## 从旧格式迁移\r\n\r\n旧版 `\"module\": \"composite:xxx\"` 格式仍然支持，但建议迁移到组件式格式。\r\n\r\n**迁移示例：text-img-right（左文右图）**\r\n\r\n旧格式：\r\n```json\r\n{\"module\": \"composite:text-img-right\"}\r\n```\r\n\r\n新格式：\r\n```json\r\n{\r\n  \"direction\": \"row\",\r\n  \"ratios\": [1, 1],\r\n  \"components\": [\r\n    {\"type\": \"text\", \"variant\": \"title\", \"content\": \"标题\"},\r\n    {\"type\": \"image\", \"src\": \"https://...\", \"constraint\": \"fit\", \"aspect\": \"1/1\"}\r\n  ]\r\n}\r\n```\n\nFile v3.3.1:references/permissions.md\n\n# 基于 skill-standardization 渐进式披露规范的权限说明\r\n\r\n本文档由 `skill-standardization` 权限扫描器自动维护。\r\n\r\n## 风险等级\r\n\r\n**LOW**（实际权重: 0.0）\r\n\r\n## 权限总览\r\n\r\n| 权限类别 | 涉及项数 | 风险等级 |\r\n|-----------|----------|----------|\r\n| `subprocess_call` | 0 项 | ✅ LOW |\r\n| `file_delete` | 0 项 | ✅ LOW |\r\n| `network_access` | 0 项 | ✅ LOW |\r\n| `sensitive_access` | 0 项 | ✅ LOW |\r\n| `critical_write` | 0 项 | ✅ LOW |\r\n\r\n## 高权限操作说明\r\n\r\n- 无。所有文件操作均限制在技能独立数据目录内，不涉及系统关键目录、网络监听或外部请求。\r\n\r\n## 权限详细说明\r\n\r\n### 子进程调用（subprocess）\r\n\r\n**无**。\r\n\r\n\r\n### 文件删除\r\n\r\n**无**。\r\n\r\n\r\n### 网络访问\r\n\r\n**无**。\r\n\r\n\r\n### 敏感信息访问\r\n\r\n**无**。\r\n\r\n\r\n### 关键位置写入\r\n\r\n**无**。\r\n\r\n\r\n## 授权方式说明\r\n\r\n- **immediate（即时授权）**：每次执行前需获得用户批准\r\n- **unified（统一授权）**：首次执行前获得用户批准，后续不再询问\r\n- **silent（静默授权）**：无需用户交互，自动执行并记录\r\n\r\n<!-- fp:risk=LOW|sensitive=0|critical_write=0|network=0|delete=0|subprocess=0|issues=0 -->\r\n---\r\n\r\n# 权限说明\r\n\r\n本文档说明 hug-html 技能的权限需求、各操作的权限权重及风险评级。\r\n\r\n## 权限权重说明\r\n\r\n| 操作 | 权限权重 | 说明 |\r\n|------|----------|------|\r\n| Read（读文件） | LOW | 读取输入文件、模块库、样式预设，无写入操作 |\r\n| Write（写文件） | MEDIUM | 将输出 HTML 文件写入 `../.standardization/hug-html/data/output/`，仅限指定目录 |\r\n| Bash（运行脚本） | MEDIUM | 运行 `scripts/` 目录内的 Python 脚本，不执行系统命令或外部代码 |\r\n| 网络访问 | NONE | 不访问任何外部网络，不发送数据 |\r\n\r\n## 风险评级\r\n\r\n本技能风险等级：**LOW**\r\n\r\n**原因**：\r\n- 所有操作仅限于本地文件读写\r\n- 不访问系统敏感路径（如 `~/.ssh/`、`~/.aws/`）\r\n- 不向外部网络发送任何数据\r\n- 不执行用户 Shell 配置文件（`.bashrc` / `.zshrc`）\r\n\r\n## 敏感信息访问声明\r\n\r\n本技能：\r\n- **不会**访问系统敏感路径或凭证文件\r\n- **不会**向外部网络发送数据\r\n- **不会**执行用户 Shell 配置文件（`.bashrc` / `.zshrc`）\r\n\r\n---\r\n\r\n> 本文档遵循 R-15/R-16 权限说明规范，由 `skill-standardization v2.38.6` 生成。\n\nArchive v3.3.0: 24 files, 89511 bytes\n\nFiles: _meta.json (127b), references/antipatterns.md (3220b), references/architecture.md (2359b), references/call-chains.md (6196b), references/changelog.md (8754b), references/examples.md (2632b), references/faq.md (10802b), references/guide.md (6900b), references/module-library.md (7290b), references/permissions.md (1189b), references/style-presets.md (2865b), scripts/content_filler.py (11919b), scripts/gen_calendar_spec.py (20913b), scripts/gen_test_grids.py (8072b), scripts/grid_builder.py (88198b), scripts/module_assembler.py (22216b), scripts/template_generator.py (4845b), scripts/templates/3x3-merge.json (2428b), scripts/templates/3x3-mixed-styles.json (5518b), scripts/templates/4x2-app-card.json (2186b), scripts/templates/calendar-dashboard-interactive.json (20108b), scripts/visual_editor.py (21305b), skill-card.md (2440b), SKILL.md (10409b)\n\nFile v3.3.0:SKILL.md\n\n---\r\nname: hug-html\r\ntags: ['html', 'grid', 'template', 'visual-editor', 'module-library', 'style-presets', 'layout', 'chinese-error-handling']\r\nversion: 3.0.4\r\nauthor: Ldxs\r\nlicense: MIT\r\ndescription: 8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation audit, user template save-as, Chinese error handling\r\nsensitive_access: false\r\ncritical_write: false\r\npermission_weight: LOW\r\ndata_dir: ../.standardization/hug-html/data/\r\nexternal_data_dir: true\r\ntrigger: 生成 HTML 模板/编辑 HTML/HTML 模块/网格布局/单元格合并/可视化编辑/输出自包含 HTML\r\ntrigger_negative: 只是简单文本编辑/不涉及 HTML 生成/使用其他框架\r\nmeta_field_sync: true\r\n---\r\n# hug-html\r\n\r\n> → 详见 `references/antipatterns.md`\r\n> → 详见 `references/faq.md`\r\n> → 详见 `references/architecture.md`\r\n\r\n## 触发场景\r\n\r\n当用户提到以下内容时触发本技能：\r\n\r\n- \"生成 HTML 模板\" / \"HTML template\" / \"hug html\"\r\n- \"编辑 HTML\" / \"可视化编辑 HTML\" / \"visual edit HTML\"\r\n- \"HTML 模块\" / \"HTML module library\"\r\n- \"网格布局\" / \"grid layout\" / \"N×M 网格\"\r\n- \"单元格合并\" / \"rowspan\" / \"colspan\"\r\n- 输出格式：自包含 HTML 文件（毛玻璃卡片风格）\r\n\r\n**复杂需求触发示例**（以下场景同样支持）：\r\n- \"我需要一个APP推广卡片，要有个二维码—可以用，支持\"\r\n- \"帮我做一个带表格和参数配置的HTML面板—支持，用 data-table + param-panel 模块\"\r\n- \"生成一个双端对比的推广页面—支持，用 header-dual + qr-dual\"\r\n- \"这个模板我想保存下来以后用—支持，用 --save-as 固化\"\r\n- \"给我生成的HTML加一个可视化编辑界面—支持，用 visual_editor.py\"\r\n\r\n**不触发**：\r\n- 用户仅询问 HTML 语法概念，无文件生成需求\r\n- 用户明确请求其他特定技能\r\n\r\n## 核心能力\r\n\r\n> 📚 **渐进式加载**：本技能采用渐进式 MD 体系，`SKILL.md` 为入口（≤230行），详细内容拆分到 `references/*.md` 按需加载。\r\n\r\n| # | 能力 | 说明 |\r\n|---|------|------|\r\n| 1 | **骨架结构** | N×M 网格、行列数、单元格合并（rowspan/colspan）、gap 间距 |\r\n| 2 | **骨架约束** | 3级约束（fill/fit/clip），递归传递到组件级别 |\r\n| 3 | **组件体系** | 8种原子组件（text/image/icon/qrcode/table/divider/spacer/group），自由组合 |\r\n| 4 | **组合逻辑** | 方向(row/column)、比例(ratios)、对齐(align)、8方向位置 |\r\n| 5 | **方案模板库** | 内置 7+ 预置{骨架+组件+样式}组合 + **用户可自定义固化** |\r\n| 6 | **样式预设** | 5 种内置风格：商务/科研/喜庆/丧事/技术，一键切换配色字体 |\r\n| 7 | **基础编辑** | 每个文字元素独立控制：字体家族(8种)/字重(100-900)/字号(9-48px)/字色/透明度 |\r\n| 8 | **图片编辑** | 点击输入URL + 拖放文件替换，所有图片组件均支持 |\r\n| 9 | **生成后审计** | 自动检查 HTML 结构完整性、标签平衡、图片属性、网格越界、渲染风险 |\r\n| 10 | **统一接口** | `--export-interfaces` 导出完整接口定义 JSON，大模型可直接理解 |\r\n| 11 | **方案模板固化** | `--save-as <名>` 将任意生成固化为用户模板，后续按名引用 |\r\n| 12 | **自由生成模式** | AI 参考组件库，理解需求确定骨架→组合组件→约束→生成→审计 |\r\n| 13 | **向后兼容** | 旧格式 `\"module\": \"composite:xxx\"` 仍然支持 |\r\n| 14 | **中文错误处理** | 所有脚本内置中文错误提示、参数校验前置、安全文件操作、调试模式 |\r\n\r\n### 渐进式文件索引\r\n\r\n| 文件名 | 位置 | 说明 |\r\n|--------|------|------|\r\n| `references/antipatterns.md` | 反模式 | 常见错误做法及正确做法 |\r\n| `references/architecture.md` | 架构设计 | 四层架构体系详解 |\r\n| `references/call-chains.md` | 调用链 | skill-sub 调用链定义 |\r\n| `references/changelog.md` | 更新日志 | 版本历史变更记录 |\r\n| `references/examples.md` | 示例 | 使用示例 |\r\n| `references/faq.md` | FAQ | 常见问题解答 |\r\n| `references/guide.md` | 使用指南 | 完整使用教程 |\r\n| `references/module-library.md` | 模块库 | 组件系统 + 约束系统 |\r\n| `references/permissions.md` | 权限说明 | 权限扫描报告和风险说明 |\r\n| `references/style-presets.md` | 样式预设 | 样式预设系统说明 |\r\n\r\n## 限制\r\n\r\n> **明确这个技能能做什么、不能做什么，避免使用时\"不知道支不支持\"。**\r\n\r\n### ✅ 支持的场景\r\n\r\n| 场景 | 说明 | 示例触发词 |\r\n|------|------|-----------|\r\n| 生成推广卡片 | 应用推广、活动宣传、产品介绍的毛玻璃卡片 | \"生成一个APP推广HTML卡片\" |\r\n| 生成信息面板 | 带表格、参数、二维码的信息展示面板 | \"做一个带二维码和参数描述的HTML\" |\r\n| 生成可视化编辑模板 | 带 Ctrl+E 可编辑的 HTML | \"生成一个可视化编辑的HTML模板\" |\r\n| 生成日历/周历仪表板 | 假日管理、年份控制、工日统计的交互仪表板 | \"生成一个周历交互HTML\" |\r\n| 生成双端对比卡片 | 左应用右元服务/双实体的对比展示 | \"生成一个双端推广卡片\" |\r\n| 内容填充 | 自动/手动填充 data-field 标记的文字和图片 | \"给这个HTML模板填充示例内容\" |\r\n| 方案模板固化 | 将当前设计保存为可复用的用户模板 | \"把这个模板保存为 my-card\" |\r\n| 自由创作 HTML | AI 参考模块库直接编写自包含 HTML | \"帮我写一个毛玻璃风格的首页\" |\r\n\r\n### ❌ 不支持 / 不适合的场景\r\n\r\n| 场景 | 为什么不支持 | 替代方案 |\r\n|------|-------------|---------|\r\n| 复杂前端应用（SPA / 数据可视化大屏） | 本技能面向静态 HTML+CSS 卡片，不支持路由/状态管理/API调用 | 手写 React/Vue 项目 |\r\n| 多页面 HTML 站点 | 本技能是单页面自包含 HTML 生成器，不处理页面间导航 | 手写或使用静态站点生成器 |\r\n| PDF / 图片输出 | 本技能输出 HTML 文件，不直接生成图片或 PDF | 生成 HTML 后用浏览器打印或截图 |\r\n| 外部 CSS/JS 框架集成 | 本技能强调零外部依赖的自包含 HTML | 手动引入 CDN 或在 `scripts` 字段写自定义 JS |\r\n| 非网格布局的自由排版 | 本技能基于 CSS Grid 网格系统，不适合绝对定位的自由排版 | 使用自由生成模式直接手写 HTML |\r\n| 后端交互 / 数据库读写 | 本技能是纯前端 HTML，无后端能力 | 搭配 Node.js / Flask 等后端框架 |\r\n\r\n### ⚠️ 需要注意的边界情况\r\n\r\n| 情况 | 说明 |\r\n|------|------|\r\n| 网格越界 | 单元格的 row/col 索引 + rowspan/colspan 不能超过网格总行列数，否则 CSS Grid 会异常渲染 |\r\n| 毛玻璃裁剪 | `backdrop-filter` 需要容器有 `overflow:hidden`，否则内容可能被裁剪 |\r\n| JSON 模板路径 | `--spec` 参数支持绝对路径、相对路径和内置模板名；文件不存在会输出中文错误提示 |\r\n| 文件编码 | 所有输入输出文件必须为 UTF-8 编码；其他编码可能导致乱码 |\r\n| 编辑模式兼容性 | Ctrl+E 编辑模式需要现代浏览器（Chrome/Edge/Firefox），不支持 IE |\r\n\r\n## 快速开始\r\n\r\n```bash\r\n# 列出所有组件类型（v3 新！）\r\npython scripts/module_assembler.py --list-components\r\n\r\n# 导出完整的组件接口定义\r\npython scripts/module_assembler.py --export-interfaces \"data/output/interfaces.json\"\r\n\r\n# 生成组件系统演示HTML\r\npython scripts/module_assembler.py --demo\r\n\r\n# 查看所有模板（向后兼容）\r\npython scripts/grid_builder.py --list-templates\r\n\r\n# 从内置模板生成 HTML\r\npython scripts/template_generator.py --type harmony-app -o \"data/output/card.html\"\r\n\r\n# 使用自定义 Grid Spec（支持新旧两种格式）\r\npython scripts/grid_builder.py --spec \"data/templates/3x3-merge.json\" -o \"data/output/grid.html\"\r\n\r\n# 导出完整接口定义（供大模型参考）\r\npython scripts/grid_builder.py --export-interfaces \"data/output/interfaces.json\"\r\n```\r\n\r\n## 工作流程\r\n\r\n本技能支持两种生成模式，**每次生成完成后必须输出生成说明**（`print_generation_guide()` 自动输出）：\r\n\r\n### 模式 A：结构化模式（推荐）\r\n1. **解析需求** — 理解用户需要的布局（行列数、合并、内容类型）\r\n2. **选择/创建 Grid Spec** — 选择内置模板或用 JSON 定义自定义网格\r\n3. **引用模块** — 从模块库中选择 base/composite 模块放入格子\r\n4. **生成 HTML** — 调用 `grid_builder.py` 生成，**自动执行审计**\r\n5. **生成编辑界面**（可选）— 调用 `visual_editor.py`\r\n6. **内容填充**（可选）— 调用 `content_filler.py`\r\n7. **输出结果** — 用 `preview_url` 展示，`deliver_attachments` 交付\r\n\r\n### 模式 B：自由生成模式（省 token）\r\n\r\n> **🛑 [MANDATORY] 每次生成完成后，必须阅读 `print_generation_guide()` 输出的生成说明并向用户展示。**\r\n1. **参考模块库** — 先执行 `python scripts/grid_builder.py --list-modules` 查看可用的 base/composite 模块\r\n2. **参考模板范例** — 先执行 `python scripts/grid_builder.py --list-templates` 查看内置模板风格\r\n3. **参考样式预设** — 先执行 `python scripts/grid_builder.py --list-presets` 查看可用风格\r\n4. **AI 自由生成** — 基于上述参考，直接编写自包含 HTML（使用 data-field 标记可编辑区域）\r\n5. **保存到文件** — 使用 Write 工具写入 `data/output/`\r\n6. **审计 [MANDATORY]** — 调用 `python scripts/grid_builder.py --audit <文件>`，不可跳过\r\n7. **输出结果** — 用 `preview_url` 展示\r\n\r\n> 自由生成模式适用场景：简单卡片、快速原型、不需要网格拆分的页面。\r\n> 结构化模式适用场景：复杂网格布局、需要批量生产、可复用模板。\r\n\r\n## 权限说明\r\n\r\n| 工具 | 访问级别 | 用途 |\r\n|------|----------|------|\r\n| Read | 只读 | 读取 Grid Spec、模块库、样式预设 |\r\n| Write | 写入 | 将输出 HTML 写入 `data/output/` |\r\n| Bash | 受限 | 运行内部处理脚本（限制在 `scripts/` 目录内） |\r\n\r\n- **不会**访问系统敏感路径或凭证文件\r\n- **不会**向外部网络发送数据\r\n- **不会**执行用户 Shell 配置文件\n\nFile v3.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn75zfd51df61ajdyqtgvrs1hx84s4q6\",\n  \"slug\": \"hug-html\",\n  \"version\": \"3.3.0\",\n  \"publishedAt\": 1782797918986\n}\n\nFile v3.3.0:references/antipatterns.md\n\n# 反模式手册\r\n\r\n本文档列出 hug-html 技能的常见反模式及正确做法。\r\n\r\n---\r\n\r\n## 反模式列表\r\n\r\n### ❌ 错误：在 SKILL.md 中粘贴大段代码\r\n\r\n**问题**：SKILL.md 应保持 ≤230 行，大段代码会导致文件臃肿，违反 R-17 渐进式加载规范。\r\n\r\n**正确做法**：将代码移到 `scripts/` 目录，在 SKILL.md 中描述调用方式。\r\n\r\n```markdown\r\n❌ 错误示例：\r\n```python\r\ndef generate_template():\r\n    # ... 50行代码 ...\r\n```\r\n\r\n✅ 正确示例：\r\n调用 `scripts/template_generator.py --output <path> --type <promo|product|tech|flow>`\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：使用相对路径 `./scripts/foo.py`\r\n\r\n**问题**：相对路径在不同工作目录下会解析错误，导致脚本找不到。\r\n\r\n**正确做法**：使用相对路径（如 `scripts/foo.py`），skill-standardization 审计工具会自动拼接安装目录。\r\n\r\n```markdown\r\n❌ 错误：python \"C:/Users/.../scripts/template_generator.py\"\r\n✅ 正确：python scripts/template_generator.py --output ../.standardization/hug-html/data/output/result.html\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：在 SKILL.md 中写\"详见脚本注释\"\r\n\r\n**问题**：用户无法看到脚本注释，且脚本注释容易过时。\r\n\r\n**正确做法**：将详细说明写入 `references/guide.md`，SKILL.md 只写必要信息。\r\n\r\n---\r\n\r\n### ❌ 错误：产出物路径指向安装目录\r\n\r\n**问题**：`artifact_paths` 应指向数据目录（`../.standardization/hug-html/data/output/`），而非安装目录下的 `data/output/`。\r\n\r\n**正确做法**：\r\n\r\n在 `SKILL.md` frontmatter 中：\r\n```yaml\r\nartifact_paths: [\"../.standardization/hug-html/data/output/\"]\r\n```\r\n\r\n在脚本中：\r\n```python\r\nfrom pathlib import Path\r\noutput_dir = Path(__file__).parent.parent.parent / \".standardization\" / \"hug-html\" / \"data\" / \"output\"\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：模块名拼写错误\r\n\r\n**问题**：`SKILL.md` 或 `references/` 中引用的模块名与实际文件名不一致，导致用户调用失败。\r\n\r\n**正确做法**：每次提及脚本名时，用绝对路径验证文件是否存在。\r\n\r\n```\r\n✅ 正确：python \"C:/Users/sm001/.workbuddy/skills/hug-html/scripts/template_generator.py\" --help\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：术语不一致\r\n\r\n**问题**：同一概念混用多个术语（如\"配置\"/\"配置\"、\"填充内容\"/\"填内容\"），增加理解成本。\r\n\r\n**正确做法**：全文统一术语。\r\n\r\n| 概念 | 统一术语 | 错误术语 |\r\n|------|----------|----------|\r\n| configuration | 配置 | 配置、setting |\r\n| fill content | 填充内容 | 填内容、填入 |\r\n| module | 模块 | 组件、component |\r\n| preset | 预设 | 预置、preset |\r\n| update | 更新 | 更新、modify |\r\n\r\n---\r\n\r\n## 检查清单\r\n\r\n- [ ] SKILL.md ≤ 230 行？\r\n- [ ] 无大段代码（>10行）直接在 SKILL.md 中？\r\n- [ ] 所有路径均为相对路径？\r\n- [ ] 无\"详见脚本注释\"等推卸责任的描述？\r\n- [ ] `artifact_paths` 指向数据目录而非安装目录？\r\n- [ ] 所有脚本名拼写正确且文件存在？\r\n- [ ] 术语全文统一？\r\n\r\n---\r\n\r\n> 本文档遵循 R-18 反模式引用规范，由 `skill-standardization v2.38.6` 生成。\n\nFile v3.3.0:references/architecture.md\n\n# 四层架构（细化）\r\n\r\nhug-html 采用四层架构设计，从抽象到具体逐层约束。\r\n\r\n```\r\n骨架 (Skeleton)\r\n├── 骨架结构 — N×M 网格、行列数、单元格合并(rowspan/colspan)、gap间距\r\n├── 骨架样式 — 底板背景/渐变/透明度、外阴影、外边框、圆角、内外边距\r\n└── 约束模式 — fill(完全贴合) / fit(等比缩放) / clip(裁剪遮挡)\r\n\r\n模块 (Module)  ← 组件组合 = {组件声明 + 约束 + 比例} 自由搭配\r\n├── 组件组合 — 8种原子组件自由搭配（text/image/icon/qrcode/table/divider/spacer/group）\r\n├── 组合逻辑 — 方向(row/column)、比例(ratios)、对齐(align/cross_align)\r\n└── 约束传递 — 骨架约束模块 → 模块约束组件（递归）\r\n\r\n组件 (Component)  ← 8种原子类型\r\n├── text     — 纯文本（title/body/caption 三种变体）\r\n├── image    — 图片（支持 fit/cover/fill 填充模式）\r\n├── icon     — 图标（FontAwesome / SVG内联）\r\n├── qrcode   — 二维码（API生成）\r\n├── table    — 数据表格（表头+行）\r\n├── divider  — 分割线\r\n├── spacer   — 空白占位\r\n└── group    — 组合容器（递归包含子组件）\r\n\r\n基础样式 (Base)\r\n└── CSS原语 — 字体/颜色/渐变/圆角/间距/阴影/边框\r\n```\r\n\r\n**编辑粒度**（可视化编辑器内）：\r\n| 可更新 | 不可更新（需改 Grid Spec） |\r\n|--------|---------------------------|\r\n| ✓ 图片内容（点击输入URL / 拖放文件替换） | ✗ 骨架结构（行列数、合并方式、gap） |\r\n| ✓ 基础样式（每个文字元素独立：字体家族/字重/字号/字色） | ✗ 模块结构（组件的HTML骨架） |\r\n| ✓ 模块样式（通过 cell style 覆盖背景色/内边距） | ✗ 骨架样式（底板色/外阴影等） |\r\n\r\n**大模型使用流程**（自由生成模式）：\r\n1. 理解用户需求 → 确定骨架结构：几行几列、哪些单元格需要合并\r\n2. 确定约束模式：fill/fit/clip → 决定骨架对模块、模块对组件的约束\r\n3. 描述需要的组件 → 从8种原子组件中自由组合，放入对应骨架位置\r\n4. 配置组合逻辑：方向、比例、对齐方式\r\n5. 生成 HTML → 可直接用 `module_assembler.py` 或自由生成自包含 HTML\n\nFile v3.3.0:references/call-chains.md\n\n# call-chains.md — hug-html 调用链定义\r\n\r\n本文件定义 `hug-html` 技能的调用链，供 `skill-sub` 读取和执行。\r\n\r\n---\r\n\r\n## 调用链 1：generate-html（完整生成流程）\r\n\r\n**描述**：从需求分析到输出最终 HTML 的完整流程\r\n\r\n**触发方式**：`/hug-html generate --type <type> --output <path>`\r\n\r\n**步骤**：\r\n\r\n| 步骤 | 动作 | 调用脚本 | 输出 |\r\n|------|-------|------|------|\r\n| 1 | 解析需求 | （AI 理解用户意图） | 确定 `type`, `preset`, `modules` |\r\n| 2 | 生成模板 | `template_generator.py --type <t> --output <o>` | `template.html` |\r\n| 3 | 填充内容（可选） | `content_filler.py --auto --template <t> --output <o>` | `filled.html` |\r\n| 4 | 应用样式预设（可选） | `content_filler.py --preset <p> --template <t> --output <o>` | `styled.html` |\r\n| 5 | 生成编辑界面（可选） | `visual_editor.py --template <t> --output <o>` | `editor.html` |\r\n| 6 | 组装模块（可选） | `module_assembler.py --modules <m> --output <o>` | `assembled.html` |\r\n| 7 | 输出最终文件 | （复制到 `data/output/final.html`） | `final.html` |\r\n\r\n**调用链 JSON**（`skill-sub` 格式）：\r\n\r\n```json\r\n{\r\n  \"name\": \"generate-html\",\r\n  \"description\": \"从需求到最终 HTML 的完整生成流程\",\r\n  \"steps\": [\r\n    {\"step\": 1, \"action\": \"parse-requirement\", \"tool\": \"AI\", \"output\": \"type,preset,modules\"},\r\n    {\"step\": 2, \"action\": \"generate-template\", \"script\": \"template_generator.py\", \"args\": \"--type {type} --output data/output/template.html\"},\r\n    {\"step\": 3, \"action\": \"fill-content\", \"script\": \"content_filler.py\", \"args\": \"--auto --template data/output/template.html --output data/output/filled.html\", \"optional\": true},\r\n    {\"step\": 4, \"action\": \"apply-preset\", \"script\": \"content_filler.py\", \"args\": \"--preset {preset} --template data/output/template.html --output data/output/styled.html\", \"optional\": true},\r\n    {\"step\": 5, \"action\": \"generate-editor\", \"script\": \"visual_editor.py\", \"args\": \"--template data/output/template.html --output data/output/editor.html\", \"optional\": true},\r\n    {\"step\": 6, \"action\": \"assemble-modules\", \"script\": \"module_assembler.py\", \"args\": \"--modules {modules} --output data/output/assembled.html\", \"optional\": true},\r\n    {\"step\": 7, \"action\": \"finalize\", \"tool\": \"AI\", \"output\": \"data/output/final.html\"}\r\n  ]\r\n}\r\n```\r\n\r\n---\r\n\r\n## 调用链 2：edit-html（编辑流程）\r\n\r\n**描述**：生成模板 → 生成编辑界面 → 用户编辑 → 导出最终 HTML\r\n\r\n**触发方式**：`/hug-html edit --template <path>`\r\n\r\n**步骤**：\r\n\r\n| 步骤 | 动作 | 调用脚本 | 输出 |\r\n|------|-------|------|------|\r\n| 1 | 检查模板是否存在 | （AI 验证） | 模板路径 |\r\n| 2 | 生成可视化编辑界面 | `visual_editor.py --template <t> --output <o>` | `editor.html` |\r\n| 3 | 提示用户在浏览器中编辑 | （AI 输出提示） | 编辑说明 |\r\n| 4 | 用户导出最终 HTML | （用户点击「生成最终 HTML」按钮） | `final.html` |\r\n| 5 | 提取编辑后内容（可选） | `content_filler.py --extract <html> --output <json>` | `content.json` |\r\n\r\n**调用链 JSON**：\r\n\r\n```json\r\n{\r\n  \"name\": \"edit-html\",\r\n  \"description\": \"生成可视化编辑界面并导出最终 HTML\",\r\n  \"steps\": [\r\n    {\"step\": 1, \"action\": \"validate-template\", \"tool\": \"AI\", \"output\": \"template-path\"},\r\n    {\"step\": 2, \"action\": \"generate-editor\", \"script\": \"visual_editor.py\", \"args\": \"--template {template} --output data/output/editor.html\"},\r\n    {\"step\": 3, \"action\": \"prompt-user\", \"tool\": \"AI\", \"output\": \"edit-instructions\"},\r\n    {\"step\": 4, \"action\": \"export-final\", \"tool\": \"user\", \"output\": \"final.html\"},\r\n    {\"step\": 5, \"action\": \"extract-content\", \"script\": \"content_filler.py\", \"args\": \"--extract data/output/editor-output.html --output data/config/content.json\", \"optional\": true}\r\n  ]\r\n}\r\n```\r\n\r\n---\r\n\r\n## 调用链 3：assemble-with-modules（模块组装流程）\r\n\r\n**描述**：选择模块 → 组装 → 填充内容 → 输出\r\n\r\n**触发方式**：`/hug-html assemble --modules <csv>`\r\n\r\n**步骤**：\r\n\r\n| 步骤 | 动作 | 调用脚本 | 输出 |\r\n|------|-------|------|------|\r\n| 1 | 列出可用模块 | `module_assembler.py --list` | 模块列表 |\r\n| 2 | 组装选定模块 | `module_assembler.py --modules <m> --output <o>` | `assembled.html` |\r\n| 3 | 填充内容（可选） | `content_filler.py --template <t> --content <c> --output <o>` | `filled.html` |\r\n| 4 | 生成编辑界面（可选） | `visual_editor.py --template <t> --output <o>` | `editor.html` |\r\n\r\n**调用链 JSON**：\r\n\r\n```json\r\n{\r\n  \"name\": \"assemble-with-modules\",\r\n  \"description\": \"选择模块并组装成完整 HTML\",\r\n  \"steps\": [\r\n    {\"step\": 1, \"action\": \"list-modules\", \"script\": \"module_assembler.py\", \"args\": \"--list\"},\r\n    {\"step\": 2, \"action\": \"assemble\", \"script\": \"module_assembler.py\", \"args\": \"--modules {modules} --output data/output/assembled.html\"},\r\n    {\"step\": 3, \"action\": \"fill-content\", \"script\": \"content_filler.py\", \"args\": \"--template data/output/assembled.html --content data/config/content.json --output data/output/filled.html\", \"optional\": true},\r\n    {\"step\": 4, \"action\": \"generate-editor\", \"script\": \"visual_editor.py\", \"args\": \"--template data/output/assembled.html --output data/output/editor.html\", \"optional\": true}\r\n  ]\r\n}\r\n```\r\n\r\n---\r\n\r\n## 注册方式（skill-sub）\r\n\r\n将以上 JSON 保存到 `data/config/call-chains.json`，或在 `skill-sub` 中注册：\r\n\r\n```bash\r\npython \"$(SKILL_DIR)/../skill-sub/scripts/chain_manager.py\" register --file \"C:/Users/sm001/.workbuddy/skills/hug-html/data/config/call-chains.json\"\r\n```\r\n\r\n---\r\n\r\n## 调用示例\r\n\r\n```bash\r\n# 使用 generate-html 调用链\r\npython \"$(SKILL_DIR)/../skill-sub/scripts/chain_executor.py\" run --chain generate-html --type promo --preset business\r\n\r\n# 使用 edit-html 调用链\r\npython \"$(SKILL_DIR)/../skill-sub/scripts/chain_executor.py\" run --chain edit-html --template \"data/output/template.html\"\r\n\r\n# 使用 assemble-with-modules 调用链\r\npython \"$(SKILL_DIR)/../skill-sub/scripts/chain_executor.py\" run --chain assemble-with-modules --modules \"color:gradient-purple,font:title-large,image:img-cover\"\r\n```\n\nFile v3.3.0:references/changelog.md\n\n## 3.0.4 (2026-06-02) -- skill-standardization 改造\r\n\r\n### Changed\r\n- R-10: SKILL.md frontmatter tags 和 description 与 _meta.json 同步一致\r\n- R-04: description 移除版本号（_meta.json 和 SKILL.md 均去除）\r\n- R-20: changelog.md 术语统一（移除→删除）\r\n- **R-17**: SKILL.md 缩减至 181 行，非标章节按 body.json 三层规则处理:\r\n   - 四层架构（细化）→ 渐进式: references/architecture.md\r\n   - 能力边界 → 重命名: 限制\r\n   - 错误处理说明 → 合并: 核心能力第14项\r\n   - 附录 → 合并: 核心能力 ### 渐进式文件索引\r\n\r\n---\r\n\r\n## 3.0.3 (2026-05-31)\r\n\r\n### 修复\r\n- **R-01/R-07**: frontmatter 补全 trigger 和 trigger_negative 字段\r\n- **R-04**: description 删除版本号\r\n- **R-06**: 补回缺失的 H1 标题\r\n- **R-10**: changelog 版本号去 v 前缀\r\n- **R-18/R-19**: SKILL.md 补充 antipatterns/faq 引用\r\n\r\n---\r\n\r\n## 3.0.2 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 3.0.1 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 3.0.0 (2026-05-30) — 组件式架构重构\r\n\r\n### 重大更新（MAJOR）\r\n- **架构重构**：从预置复合模块模板改为原子组件+声明式组合\r\n  - 删除 14 个固定复合模块，替换为 8 种原子组件（text/image/icon/qrcode/table/divider/spacer/group）\r\n  - 新增 3 级约束系统（fill/fit/clip），递归作用于骨架→模块→组件\r\n  - 新增声明式组合逻辑：方向(row/column)、比例(ratios)、对齐(align/cross_align)\r\n  - 新增  组件引擎， 支持新旧两种 Spec 格式\r\n\r\n### Changed\r\n- module_assembler.py 完全重写为组件引擎\r\n- grid_builder.py build_cell_html() 支持 components 字段\r\n- references/module-library.md 重写为组件系统文档\r\n- SKILL.md 四层架构、核心能力、快速开始全面更新\r\n\r\n---\r\n## 2.1.4 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 2.1.3 (2026-05-30) — R-12 合规完善\r\n\r\n### Changed\r\n- 所有脚本补充 DEFAULT_DATA_DIR_RAW + DATA_DIR R-12 定义\r\n- _meta.json 补充 data_dir 字段\r\n- 运行 fix_missing_data_dir 一键修复，R-12 审计通过\r\n\r\n\r\n# Changelog — hug-html\r\n\r\n\r\n\r\n## 2.1.2 (2026-05-30) — skill-standardization 改造 + R-12 脚本补全\r\n\r\n### Changed\r\n- 版本号 v2.1.1 → v2.1.2（SKILL.md + _meta.json + 脚本版本字符串三端统一）\r\n- SKILL.md frontmatter 补全 description 字段\r\n- SKILL.md 缩减至 ≤230 行（删除冗余空白行和 H1 标题）\r\n- 尾部版本声明更新为 2.1.2\r\n- 删除 references/faq-q4-fixed.md 遗留文件\r\n- template_generator.py / visual_editor.py / content_filler.py: 补充 DEFAULT_DATA_DIR_RAW + DATA_DIR R-12 定义\r\n- gen_calendar_spec.py: 补充 DEFAULT_DATA_DIR_RAW + DATA_DIR，保留 TEMPLATES_DIR 指向内置模板\r\n- _meta.json: 补充 data_dir 字段\r\n\r\n### Fixed\r\n- SKILL.md 版本号与 _meta.json 不一致问题\r\n- 4 个脚本缺少 R-12 合规的数据目录变量声明\r\n\r\n## 2.1.1 (2026-05-29) — skill-standardization 合规修正\r\n\r\n### Changed\r\n- 版本号 v2.1.0 → v2.1.1（`skill-standardization update --fix` 自动 bump）\r\n- `_meta.json` 补充 `data_dir` 字段，通过 R-12 检查\r\n- `scripts/grid_builder.py`：补充 `DEFAULT_DATA_DIR_RAW` R-12 数据目录字面量声明\r\n- `scripts/gen_test_grids.py`：补充 `DEFAULT_DATA_DIR_RAW` R-12 字面量\r\n- `scripts/module_assembler.py`：补充 `DEFAULT_DATA_DIR_RAW` R-12 字面量\r\n\r\n## 2.1.0 (2026-05-29) — 全面中文异常处理 + 能力边界定义\r\n\r\n### Added\r\n- 所有脚本集成中文错误处理机制：`show_error()` 函数统一输出 `❌ [错误类型] 说明 + 💡 修复建议`\r\n- `safe_read_json()` / `safe_write_text()` 安全文件操作工具，文件不存在/JSON格式错误/编码异常均有中文指引\r\n- `--debug` 参数支持（grid_builder.py / template_generator.py / visual_editor.py），加参数显示完整堆栈\r\n- SKILL.md 新增「能力边界」章节：✅ 支持场景 / ❌ 不支持场景 / ⚠️ 边界情况，明确回答\"这个需求支不支持\"\r\n- SKILL.md 新增「错误排查」快速入门表格+「错误处理说明」章节\r\n- SKILL.md 触发场景补充多个复杂需求触发示例\r\n- faq.md 新增 Q11-Q17：错误码对照表、文件找不到修复、布局错乱排查、编辑器无响应、模板固化使用、能力边界判断\r\n\r\n### Changed\r\n- `grid_builder.py`: main() 包裹 try/except，所有文件读取/写入改用安全函数\r\n- `template_generator.py`: 重写为 try/except + 中文错误，引入 grid_builder 的 show_error/safe_read_json/safe_write_text\r\n- `visual_editor.py`: 重写为 try/except + 中文错误，模板不存在/读取失败均有中文指引\r\n- `content_filler.py`: 重写为 try/except + 中文错误，文件读取/JSON解析/填充字段校验均有中文提示\r\n- `SKILL.md` frontmatter 版本号 v2.0.4 → v2.1.0\r\n\r\n## 2.0.1 (2026-05-29) — 完整交互 + 审计 + 标准化\r\n\r\n### Added\r\n- `scripts/grid_builder.py` — 核心网格引擎：N×M 网格布局、单元格合并（rowspan/colspan）\r\n- 两层级模块体系：Base（63 个 CSS 原语）+ Composite（14 个可复用 HTML 组件）\r\n- 内置 7 个方案模板：harmony-app、harmony-dual、calendar-dashboard(交互版)、promo、3x3-merge、4x2-app-card、3x3-mixed-styles\r\n- 泛化三个用户模板：harmony-app，harmony-dual，calendar-dashboard\r\n- `calendar-dashboard` 完整交互版：5×3 网格、年份控制、周末规则勾选、假日区间 CRUD、补班管理、周历视图、总工日统计\r\n- `grid_builder.py` 支持 `scripts` 字段注入自定义 JS，支持 `file` 字段引用外部 JSON 模板\r\n- `scripts/gen_calendar_spec.py` — 交互日历模板生成器\r\n- `scripts/gen_test_grids.py` — 测试 Grid Spec / 模块 JSON 生成工具\r\n- 图片编辑：点击输入 URL + 拖放文件替换（`editable-img` 类），所有复合模块图片均支持\r\n- 编辑器字体控制：字体家族（8种）、字重（100-900）、字号（9-48px）、字色拾色器\r\n- 5 种样式预设：business / academic / festive / mourning / tech，`style_preset` 字段一键切换\r\n- 生成后审计 `audit_html()`：检查 DOCTYPE、标签平衡、网格越界、单元格重叠、backdrop-filter 裁剪、背景异常\r\n- 生成说明 `print_generation_guide()`：每次生成强制输出编辑方法、创作模式、可用资源、审计说明\r\n- 方案模板固化 `--save-as <名>`：将任意 Grid Spec 保存为用户模板，自动版本管理\r\n- `--export-interfaces`：导出完整接口定义 JSON（Grid Spec schema + 63 base + 14 composite + 5 presets）\r\n- `scripts/templates/` 目录：内置文件型模板跟随技能安装（不丢失）\r\n- body 背景智能选择：玻璃卡用 `#000`，普通卡用 card bg 或 `#eef2f7`\r\n\r\n### Changed\r\n- `scripts/module_assembler.py` — 重写为 grid-aware（接受 grid spec 而非扁平模块列表）\r\n- `scripts/template_generator.py` — 重写，删除 `gen_body_*` 硬编码，使用 grid 框架，支持用户模板\r\n- `scripts/visual_editor.py` — 增强为网格感知编辑器 + 字体/字重/字号/字色独立控制 + 拖放图片\r\n- `scripts/content_filler.py` — 更新为 v2 接口\r\n- 所有复合模块图标从 `<div>` 改为 `<img>` 可点击换图\r\n- 通用化模板内容：删除具体来源（刻在石头上/灯球色盘），改用通用占位符\r\n- header-entity/header-dual/qr-card/qr-dual/text-img-right 所有图片均加 `editable-img` 类\r\n- CSS cell style 去重：style dict 直接替换默认 bg/padding，不再叠加\r\n- 编辑器工具栏全面升级：B/I/U + 字体 + 字重 + 字号 + 拾色器 + 背景色 + 透明度\r\n- 数据库目录移至 `.standardization/hug-html/data/`，遵循 R-11/R-22 规范\r\n- `SKILL.md` — 四层架构定义（骨架结构/骨架样式/模块结构+样式/基础样式）\r\n- `references/guide.md` — 完整重写为 v2 网格架构教程\r\n- `references/module-library.md` — 完整重写为两层级模块说明\r\n- 版本号 `1.0.1` → `2.0.1`\r\n\r\n### Fixed\r\n- Grid Spec `cells` 位置统一：`grid.cells[...]` 为标准存储位置，兼容顶层 `cells`\r\n- 单元格 CSS 生成逻辑修正（style dict 重叠问题）\r\n- body 背景硬编码 `#000` 修复：根据模板类型智能选择\r\n- `backdrop-filter` 从 DEFAULT_CARD_STYLE 泄露到普通模板（导致内容裁剪）修复\r\n- 日历 JS 缺失 `<script>` 包裹导致不执行修复\r\n- GBK 编码兼容：所有 print 输出兼容 Windows 终端\r\n- 标签平衡检查改用正则精确匹配，排除 script/style 内容，消除假阳性\r\n- R-20 写作规范修复：guide.md 中英文混排空格\r\n- R-11/R-22 数据目录合规：`data/` → `.standardization/hug-html/data/`\n\nFile v3.3.0:references/examples.md\n\n# examples.md — hug-html 使用示例\r\n\r\n## 示例 1：生成宣传面板 HTML\r\n\r\n```bash\r\npython \"scripts/template_generator.py\" ^\r\n  --output \"data/output/promo.html\" ^\r\n  --type promo\r\n```\r\n\r\n输出：`data/output/promo.html`（粉紫渐变风格宣传面板）\r\n\r\n---\r\n\r\n## 示例 2：生成可视化编辑界面\r\n\r\n```bash\r\npython \"scripts/visual_editor.py\" ^\r\n  --template \"data/output/promo.html\" ^\r\n  --output \"data/output/editor.html\"\r\n```\r\n\r\n在浏览器中打开 `editor.html`：\r\n1. 按 `Ctrl+E` 进入编辑模式\r\n2. 点击任意文字区域直接更新\r\n3. 点击图片可更换 URL\r\n4. 使用顶部工具栏调整颜色/字号/透明度\r\n5. 点击「✅ 生成最终HTML」下载成品\r\n\r\n---\r\n\r\n## 示例 3：用模块库组装 HTML\r\n\r\n```bash\r\n# 查看所有可用模块\r\npython \"scripts/module_assembler.py\" --list\r\n\r\n# 组装：渐变背景 + 大标题 + 封面图 + 分隔线\r\npython \"scripts/module_assembler.py\" ^\r\n  --modules \"color:gradient-purple,font:title-large,image:img-cover,effect:divider\" ^\r\n  --output \"data/output/assembled.html\"\r\n```\r\n\r\n---\r\n\r\n## 示例 4：自动填充模板内容\r\n\r\n```bash\r\n# 自动生成示例内容\r\npython \"scripts/content_filler.py\" ^\r\n  --template \"data/output/promo.html\" ^\r\n  --auto ^\r\n  --output \"data/output/promo-filled.html\"\r\n```\r\n\r\n---\r\n\r\n## 示例 5：用 JSON 文件填充内容\r\n\r\n`data/config/content.json`：\r\n```json\r\n{\r\n  \"title\": \"🎉 2026 新春庆典\",\r\n  \"subtitle\": \"时间：2026年5月28日 14:00\",\r\n  \"highlight\": \"精彩演出 · 美食盛宴 · 幸运抽奖\",\r\n  \"time\": \"2026年5月28日 14:00-18:00\",\r\n  \"location\": \"深圳市南山区创业路 XX 大厦\",\r\n  \"detail\": \"本次活动免费参加，请提前报名。现场提供茶歇和纪念品。\",\r\n  \"footer\": \"© 2026 新春庆典组委会 | 咨询电话：138-XXXX-XXXX\"\r\n}\r\n```\r\n\r\n```bash\r\npython \"scripts/content_filler.py\" ^\r\n  --template \"data/output/promo.html\" ^\r\n  --content \"data/config/content.json\" ^\r\n  --output \"data/output/final.html\"\r\n```\r\n\r\n---\r\n\r\n## 示例 6：应用样式预设\r\n\r\n```bash\r\n# 生成科技风格模板\r\npython \"scripts/template_generator.py\" ^\r\n  --output \"data/output/tech.html\" ^\r\n  --type tech\r\n\r\n# 应用「商务」预设\r\npython \"scripts/content_filler.py\" ^\r\n  --template \"data/output/tech.html\" ^\r\n  --preset business ^\r\n  --output \"data/output/tech-business.html\"\r\n```\r\n\r\n---\r\n\r\n## 示例 7：提取编辑后的内容\r\n\r\n用户在可视化编辑器中更新后导出 HTML，提取内容为 JSON：\r\n\r\n```bash\r\npython \"scripts/content_filler.py\" ^\r\n  --extract \"data/output/editor-output.html\" ^\r\n  --output \"data/config/extracted.json\"\r\n```\n\nFile v3.3.0:references/faq.md\n\n# 常见问题解答（FAQ）\r\n\r\n本文档回答 hug-html 技能的常见问题。\r\n\r\n---\r\n\r\n## 基础问题\r\n\r\n### Q1：这个技能支持哪些 HTML 模板类型？\r\n\r\n**A**：支持 4 种类型：\r\n- `promo` — 宣传面板（渐变背景 + 大标题 + 按钮）\r\n- `product` — 产品介绍（左文右图两栏布局）\r\n- `tech` — 技术说明（代码样式块 + 参数表格）\r\n- `flow` — 流程图表（步骤卡片 + 编号）\r\n\r\n详见 `references/guide.md` 完整参数说明。也可以用 `--list-templates` 查看所有可用模板。\r\n\r\n---\r\n\r\n### Q2：生成的 HTML 文件保存在哪里？\r\n\r\n**A**：默认输出到：\r\n```\r\nC:/Users/sm001/.workbuddy/skills/.standardization/hug-html/data/output/\r\n```\r\n\r\n可通过 `--output` 参数指定自定义路径：\r\n```bash\r\npython \"scripts/template_generator.py\" --output \"C:/path/to/output.html\" --type promo\r\n```\r\n\r\n---\r\n\r\n### Q3：如何自定义样式？\r\n\r\n**A**：有两种方式：\r\n\r\n**方式 A：更新预设配置文件**\r\n```\r\nC:/Users/sm001/.workbuddy/skills/.standardization/hug-html/data/config/style-presets.json\r\n```\r\n\r\n**方式 B：在调用时指定预设**\r\n```bash\r\npython \"scripts/content_filler.py\" preset --template <path> --preset business\r\n```\r\n\r\n可用预设：`business`（商务）、`academic`（科研）、`festive`（喜庆）、`mourning`（丧事）\r\n\r\n详见 `references/style-presets.md`。\r\n\r\n---\r\n\r\n### Q4：如何使用可视化编辑器对 HTML 模板进行可视化编辑并导出最终结果？\r\n\r\n**A**：完整使用流程如下（需要先有一个模板文件）：\r\n\r\n**第 1 步：生成模板文件**\r\n```bash\r\npython \"scripts/template_generator.py\" --output \"../.standardization/hug-html/data/output/template.html\" --type promo\r\n```\r\n\r\n**第 2 步：根据模板生成编辑器 HTML**\r\n```bash\r\npython \"scripts/visual_editor.py\" --template \"../.standardization/hug-html/data/output/template.html\" --output \"../.standardization/hug-html/data/output/editor.html\"\r\n```\r\n> 注意：`--template` 参数必须指向一个已存在的 HTML 模板文件，不能省略。\r\n\r\n**第 3 步：在浏览器中打开编辑器**\r\n双击打开 `editor.html`，页面默认是**只读预览模式**，看到的是最终效果。\r\n\r\n**第 4 步：进入编辑模式**\r\n按键盘 `Ctrl+E`，页面上的可编辑区域会出现**蓝色虚线边框**，此时可以直接点击任何文字进行更新，也可以点击图片区域更换图片。\r\n\r\n**第 5 步：导出最终 HTML**\r\n更新完成后，滚动到页面底部，点击**\"导出 HTML\"** 按钮，浏览器会自动下载一个完整的 HTML 文件，所有 CSS 和 JS 都已内嵌，无需任何外部依赖。\r\n\r\n> 导出的 HTML 文件可以直接双击在浏览器中打开预览，也可以作为最终交付物发送给他人。\r\n\r\n---\r\n\r\n### Q5：如何组合多个模块？\r\n\r\n**A**：使用 `module_assembler.py`：\r\n\r\n```bash\r\npython \"scripts/module_assembler.py\" \\\r\n  --modules \"gradient-purple,title-large,img-cover\" \\\r\n  --output \"C:/temp/assembled.html\"\r\n```\r\n\r\n可用模块列表：\r\n- 颜色：`gradient-purple`, `gradient-blue`, `solid-primary`, `transparent-card`\r\n- 字体：`title-large`, `title-medium`, `body-text`, `caption`, `mono-code`\r\n- 图片：`img-circle`, `img-logo`, `img-cover`, `img-contain`\r\n- 布局：`two-col`, `three-col-cards`, `centered`\r\n- 效果：`fade-in`, `hover-scale`, `divider`, `spacer`\r\n\r\n详见 `references/module-library.md`。\r\n\r\n---\r\n\r\n### Q6：可以给模板填充真实内容吗？\r\n\r\n**A**：可以，有三种方式：\r\n\r\n**方式 A：自动填充示例内容**\r\n```bash\r\npython \"scripts/content_filler.py\" auto --template <path> --output <path>\r\n```\r\n\r\n**方式 B：从 JSON 文件填充**\r\n```bash\r\npython \"scripts/content_filler.py\" fill --template <path> --content \"data/config/content.json\" --output <path>\r\n```\r\n\r\n**方式 C：交互式填充**\r\n```bash\r\npython \"scripts/content_filler.py\" interactive --template <path> --output <path>\r\n```\r\n\r\n---\r\n\r\n### Q7：生成的 HTML 依赖外部 CSS/JS 吗？\r\n\r\n**A**：不依赖。所有生成的 HTML 都是**自包含**的：\r\n- CSS 内嵌在 `<style>` 标签中\r\n- JS 内嵌在 `<script>` 标签中\r\n- 无外部链接、无 CDN 依赖\r\n\r\n可直接在浏览器中打开，或嵌入到其他系统中。\r\n\r\n---\r\n\r\n### Q8：如何查看所有可用的调用链？\r\n\r\n**A**：调用链定义在：\r\n```\r\nC:/Users/sm001/.workbuddy/skills/.standardization/hug-html/data/config/call-chains.json\r\n```\r\n\r\n或使用 skill-sub 查看：\r\n```bash\r\npython \"C:/Users/sm001/.workbuddy/skills/.standardization/skill-sub/skill_sub.py\" list\r\n```\r\n\r\n可用调用链：\r\n- `generate-html-page` — 从需求到完整 HTML 页面\r\n- `edit-html` — 生成可视化编辑界面并导出\r\n- `assemble-with-modules` — 选择模块并组装成完整 HTML\r\n\r\n---\r\n\r\n## 进阶问题\r\n\r\n### Q9：如何扩展新的模板类型？\r\n\r\n**A**：更新 `scripts/template_generator.py`，在 `TEMPLATES` 字典中添加新类型：\r\n\r\n```python\r\nTEMPLATES = {\r\n    \"promo\": {...},\r\n    \"product\": {...},\r\n    \"tech\": {...},\r\n    \"flow\": {...},\r\n    \"your-new-type\": {\r\n        \"title\": \"你的新模板\",\r\n        \"sections\": [...],\r\n        ...\r\n    }\r\n}\r\n```\r\n\r\n然后更新 `references/guide.md` 和 `data/config/template-types.json`。\r\n\r\n---\r\n\r\n### Q10：可视化编辑器的编辑区域怎么定义？\r\n\r\n**A**：在模板 HTML 中，给可编辑元素添加 `class=\"editable\"` 和 `data-field=\"字段名\"`：\r\n\r\n```html\r\n<h1 class=\"editable\" data-field=\"title\">默认标题</h1>\r\n<p class=\"editable\" data-field=\"content\">默认内容</p>\r\n<img class=\"editable\" data-field=\"image\" src=\"...\">\r\n```\r\n\r\n`visual_editor.py` 会自动识别这些元素并生成编辑界面。\r\n\r\n---\r\n\r\n## 故障排查\r\n\r\n### Q11：脚本报错显示中文提示了，但还是不知道怎么修？\r\n\r\n**A**：v2.1.0 起所有脚本输出的错误提示都包含两部分：\r\n\r\n```\r\n❌ [错误类型] 具体的错误描述\r\n  💡 修复建议: 怎么做才能解决\r\n```\r\n\r\n**常见错误码对照表：**\r\n\r\n| 提示开头 | 意思 | 最可能的原因 |\r\n|---------|------|-------------|\r\n| `❌ [参数错误]` | 你给的参数不对或漏了 | 用 `--help` 看完整参数列表 |\r\n| `📁 [文件错误] 找不到文件` | 指定的文件不存在 | 检查路径拼写，用绝对路径 |\r\n| `📄 [JSON错误] 格式错误` | JSON 文件语法有问题 | 检查逗号、引号是否配对 |\r\n| `📋 [模板错误] 未知模板` | 模板名不存在 | 用 `--list-templates` 看可用列表 |\r\n| `⚙️ [内部错误]` | 程序内部报错了 | 基本是参数传错了，检查后重试 |\r\n\r\n如果按照修复建议还是不行，加 `--debug` 参数显示详细堆栈，然后把全部输出发给 AI 协助分析。\r\n\r\n---\r\n\r\n### Q12：报错\"找不到文件\"，但文件确实存在？\r\n\r\n**A**：常见原因和修复：\r\n\r\n1. **路径是相对路径但运行目录不对**\r\n   - 所有脚本需要在技能根目录运行\r\n   - 推荐用绝对路径：`python \"C:/.../scripts/grid_builder.py\" --spec \"C:/.../spec.json\"`\r\n   - 或先用 `cd` 到技能目录\r\n\r\n2. **文件路径有空格**\r\n   - 用双引号包裹路径：`--output \"C:/My Project/output.html\"`\r\n\r\n3. **文件编码不是 UTF-8**\r\n   - 中文 Windows 可能默认 GBK，用记事本另存为 UTF-8\r\n\r\n---\r\n\r\n### Q13：模板生成出来是空的，或者布局错乱？\r\n\r\n**A**：排查步骤：\r\n\r\n1. **网格越界** — 检查 Grid Spec 中单元格的 row/col + rowspan/colspan 是否超出总行列数\r\n2. **CSS Grid 不支持重叠** — 单元格之间不能有位置重叠（审计会自动检查）\r\n3. **backdrop-filter 裁剪** — 毛玻璃类模板的卡片必须有 `overflow: hidden`\r\n4. **JSON 模板文件损坏** — 用 `--audit` 审查生成的 HTML\r\n\r\n---\r\n\r\n### Q14：编辑器打开后按 Ctrl+E 没反应？\r\n\r\n**A**：\r\n1. 检查浏览器控制台（F12）是否有 JS 错误\r\n2. 确认 HTML 中包含 `<script>` 标签且未被广告拦截器屏蔽\r\n3. 尝试用 Chrome/Edge/Firefox 打开（不支持 IE）\r\n\r\n---\r\n\r\n### Q15：我把方案模板保存了，下次怎么调出来直接用？\r\n\r\n**A**：模板固化后（`--save-as my-name`），文件会自动保存在 `data/user-templates/` 目录下，每个模板是一个独立的 JSON 文件，包含完整的 Grid Spec 和自动管理的版本号。下次使用时无需再指定 JSON 路径，直接按名称引用即可：\r\n\r\n```bash\r\npython \"scripts/grid_builder.py\" --spec \"my-name\" -o \"data/output/from-user.html\"\r\n```\r\n\r\n如果保存了同名的模板，系统会自动递增版本号，不会覆盖原有文件。使用 `--list-templates` 可查看所有已保存的用户模板及其版本信息。也可以通过直接更新 `data/user-templates/` 目录下的 JSON 文件来微调模板内容。\r\n\r\n---\r\n\r\n### Q16：我想生成的排版不是网格布局的，这个技能支持吗？\r\n\r\n**A**：**有限支持**。本技能的核心是 CSS Grid 网格系统，适合规整的卡片式排版。如果你需要自由排版（绝对定位/流式布局），建议使用\"自由生成模式\"（模式 B）让 AI 直接手写 HTML，不经过网格引擎。\r\n\r\n---\r\n\r\n### Q17：我做了一个复杂需求但不确定支不支持，怎么办？\r\n\r\n**A**：\r\n1. 先看 SKILL.md 的「能力边界」章节，对照 ✅ 支持 / ❌ 不支持列表\r\n2. 如果 ⚠️ 边界情况中有相似场景，说明可能支持但需要注意\r\n3. 直接执行 `--list-templates`、`--list-modules`、`--list-presets` 查看所有可用资源\r\n4. 如果不确定，直接把需求告诉 AI，AI 会判断能否用本技能实现\r\n\r\n---\r\n\r\n> 本文档遵循 R-19 FAQ 引用规范，由 `skill-standardization v2.38.7` 生成。\r\n\r\n---\r\n\r\n## 错误排查（快速入门）\r\n\r\n> 脚本报错了？不要慌。所有错误提示已改为中文，并附带修复建议。\r\n\r\n| 错误现象 | 可能原因 | 怎么做 |\r\n|----------|---------|--------|\r\n| ❌ [文件错误] 找不到文件 | 路径写错了 | 检查路径是否存在，用绝对路径试试 |\r\n| ❌ [JSON错误] 格式错误 | JSON 语法有问题 | 用 jsonlint.com 校验，或检查多了一个逗号 |\r\n| ❌ [模板错误] 未知模板 | 模板名写错了 | 用 `--list-templates` 查看所有可用模板 |\r\n| ❌ [参数错误] 缺参数 | 命令写少了参数 | 用 `--help` 查看完整参数说明 |\r\n| ⚠️ 审计警告 | HTML 有小问题但不致命 | 检查输出的 [WARN] 内容，逐一修正 |\r\n| 浏览器打开是空白 | HTML 文件编码问题 | 确认文件是 UTF-8 编码保存的 |\r\n\r\n> 完整错误排查指南见 `references/faq.md`。\r\n\r\n> 版本 2.1.2 — 全面中文异常处理：所有脚本输出的英文 Traceback 改为中文错误提示+修复建议；新增能力边界定义和错误排查指引。\n\nFile v3.3.0:references/guide.md\n\n# guide.md — hug-html 完整使用教程 (v2 网格架构)\r\n\r\nHTML 网格化模块生成技能，支持可配置的 N×M 网格布局、单元格合并、双层模块体系。\r\n\r\n---\r\n\r\n## 快速开始\r\n\r\n### 1. 查看所有可用基础模块\r\n\r\n```bash\r\npython \"scripts/grid_builder.py\" --list-modules\r\n```\r\n\r\n### 2. 查看所有内置模板\r\n\r\n```bash\r\npython \"scripts/grid_builder.py\" --list-templates\r\n```\r\n\r\n### 3. 从内置模板生成 HTML\r\n\r\n```bash\r\n# App 推广卡片\r\npython \"scripts/template_generator.py\" --type harmony-app -o \"data/output/my-card.html\"\r\n\r\n# 双端推广卡片\r\npython \"scripts/template_generator.py\" --type harmony-dual -o \"data/output/dual-card.html\"\r\n\r\n# 周历仪表板\r\npython \"scripts/template_generator.py\" --type calendar-dashboard -o \"data/output/calendar.html\"\r\n```\r\n\r\n### 4. 从自定义 Grid Spec 生成\r\n\r\n```bash\r\npython \"scripts/grid_builder.py\" --spec \"data/templates/3x3-merge.json\" -o \"data/output/3x3.html\"\r\n```\r\n\r\n### 5. 生成可视化编辑界面\r\n\r\n```bash\r\npython \"scripts/visual_editor.py\" --template \"data/output/my-card.html\" -o \"data/output/editor.html\"\r\n# 或用内置模板直接生成\r\npython \"scripts/visual_editor.py\" --type harmony-app -o \"data/output/editor.html\"\r\n# 打开后按 Ctrl+E 进入编辑模式\r\n```\r\n\r\n### 6. 内容填充\r\n\r\n```bash\r\n# 自动填充示例内容\r\npython \"scripts/content_filler.py\" auto --template \"data/output/template.html\" --output \"data/output/filled.html\"\r\n\r\n# 用 JSON 文件填充\r\npython \"scripts/content_filler.py\" fill --template \"data/output/template.html\" --content \"data/config/content.json\" --output \"data/output/final.html\"\r\n```\r\n\r\n---\r\n\r\n## 核心架构\r\n\r\n### 四层体系\r\n\r\n```\r\n骨架 (Skeleton)\r\n├── 骨架结构 — N×M 网格、行列数、单元格合并(rowspan/colspan)、gap间距\r\n└── 骨架样式 — 底板背景/渐变/透明度、外阴影、外边框、圆角、内外边距\r\n\r\n模块 (Modules)  ← 模块模板 = {模块结构 + 模块样式} 预置组合\r\n├── 模块结构 — 复合模块的 HTML 骨架\r\n└── 模块样式 — 模块级的视觉样式（由 base 模块提供）\r\n\r\n基础 (Base/Primitives)\r\n└── 基础样式 — 作用于具体文字/元素的 CSS 原语\r\n```\r\n\r\n### 两层级模块体系\r\n\r\n```\r\n基础模块 (base)      →    复合模块 (composite)     →    放入网格格子\r\nCSS 原语                  可复用 HTML 组件\r\n─────────────────────────────────────────────────────\r\nfont-size-xl               header-entity\r\ncolor-dark                 main-title\r\nbg-glass                   qr-card / qr-dual\r\nradius-xl                  feature-panel\r\nshadow-glass               comms-panel\r\nimg-circle                 footer-caption\r\nflex-center                text-block / text-img-right\r\n...                        param-panel / data-table / stat-card\r\n```\r\n\r\n### Grid Spec 格式\r\n\r\n```json\r\n{\r\n  \"name\": \"模板名称\",\r\n  \"desc\": \"描述\",\r\n  \"card_style\": {\r\n    \"max_width\": \"400px\",\r\n    \"bg\": \"rgba(255,255,255,0.82)\",\r\n    \"border_radius\": \"36px\",\r\n    \"padding\": \"24px 20px\"\r\n  },\r\n  \"grid\": {\r\n    \"rows\": 6,\r\n    \"cols\": 1,\r\n    \"gap\": \"0\",\r\n    \"cells\": [\r\n      {\"id\": \"header\", \"row\": 0, \"col\": 0, \"module\": \"composite:header-entity\"},\r\n      {\"id\": \"merged\", \"row\": 1, \"col\": 0, \"colspan\": 2, \"rowspan\": 2,\r\n       \"module\": \"composite:feature-panel\", \"style\": {\"background\": \"#f5f5f5\"}},\r\n      {\"id\": \"custom\", \"row\": 2, \"col\": 0, \"colspan\": 3,\r\n       \"html\": \"<div data-field='custom'>自定义HTML内容</div>\"}\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\n### 单元格合并\r\n\r\n通过 `colspan` 和 `rowspan` 实现合并效果：\r\n- `colspan: 2` — 跨 2 列\r\n- `rowspan: 2` — 跨 2 行\r\n- 两者同时使用 — 跨 2 列 2 行\r\n\r\n---\r\n\r\n## 内置模板列表\r\n\r\n| 模板名 | 来源 | 网格 | 说明 |\r\n|--------|------|------|------|\r\n| `harmony-app` | 刻在石头上 | 6×1 | App 推广毛玻璃卡片 |\r\n| `harmony-dual` | 灯球色盘 | 6×1 | 双端（应用+元服务）推广卡片 |\r\n| `calendar-dashboard` | 智能周历 | 5×3 | **完全交互式仪表板**：年份控制、周末规则、假日区间CRUD、补班管理、每周日历视图、总工日统计 |\r\n| `promo` | 原 promo 模板 | 3×3 | 活动宣传面板（卡片网格） |\r\n| `3x3-merge` | — | 3×3 | 单元格合并演示 |\r\n| `4x2-app-card` | — | 4×2 | 应用推广卡（左右分栏） |\r\n| `3x3-mixed-styles` | — | 3×3 | 每格不同样式演示 |\r\n\r\n---\r\n\r\n## 基础模块 (Base Modules)\r\n\r\n```\r\n# 字体大小: font-size-xxl / xl / lg / md / sm / xs / xxs\r\n# 字体颜色: color-dark / mid / light / white / primary / gradient-text\r\n# 背景: bg-white / transparent / light-blue / glass / dark / gradient-*\r\n# 圆角: radius-sm / md / lg / xl / full / pill\r\n# 间距: pad-xs / sm / md / lg / xl\r\n# 阴影: shadow-sm / md / lg / glass\r\n# 边框: border-glass / light / bottom / divider-*\r\n# 图片: img-circle / cover / contain / logo\r\n# 布局: flex-center / between / col / text-center / text-left / gap-*\r\n# 透明度: opacity-100 / 90 / 70 / 50\r\n# 动画: anim-fade / slide / hover-scale\r\n```\r\n\r\n---\r\n\r\n## 复合模块 (Composite Modules)\r\n\r\n| 模块名 | 用途 | 槽位 (data-field) |\r\n|--------|------|-------------------|\r\n| `header-entity` | 单实体头部（图标+名称+标签） | entity-name, entity-badge |\r\n| `header-dual` | 双实体头部（左应用+右元服务） | app-name, app-badge, service-name, service-badge |\r\n| `main-title` | 渐变文字主标题+副标题+底边线 | main-title, main-sub |\r\n| `qr-card` | 单张二维码卡片 | qr-image, qr-label, qr-hint |\r\n| `qr-dual` | 双二维码并排 | qr-image-left/right, qr-label-left/right |\r\n| `feature-panel` | 特性面板（多行图标+文字） | feature-icon-N, feature-text-N |\r\n| `comms-panel` | 多端通信面板（设备标签+协议） | 设备标签内容 |\r\n| `footer-caption` | 底部分隔线+标签组 | footer-tag-1/2/3 |\r\n| `small-note` | 极小注释文字 | note-text |\r\n| `text-block` | 纯文本块（标题+多行正文） | tb-title, tb-body, tb-body-2 |\r\n| `text-img-right` | 左文右图组合 | ti-title, ti-desc |\r\n| `param-panel` | 参数配置面板 | param-title, param-1/2 |\r\n| `data-table` | 数据表格（表头+行） | th-1/2, td-row*-col* |\r\n| `stat-card` | 数据统计卡片 | stat-label, stat-value |\r\n\r\n---\r\n\r\n## 可视化编辑器功能\r\n\r\n- **Ctrl+E** — 进入/退出编辑模式\r\n- **格子选择** — 点击格子 → 弹出属性面板\r\n- **字段编辑** — 点击带 data-field 的文字区域直接编辑\r\n- **工具栏** — 加粗/斜体/下划线、字色、背景色、字号、透明度\r\n- **网格概览** — 点击\"📋 网格\"按钮查看所有格子\r\n- **格子属性** — 右下角面板可调整底板颜色和内边距\r\n- **Ctrl+S** — 导出最终 HTML\n\nFile v3.3.0:references/module-library.md\n\n# module-library.md — hug-html 组件式模块库 v3.0\r\n\r\n## 架构总览\r\n\r\n```\r\n骨架 (Skeleton) — N×M 网格 + 3级约束(fill/fit/clip)\r\n  └─ 单元格 (Cell) — 放置组件组合\r\n       ├─ 组件 (Component) — 8种原子类型\r\n       │    ├─ text     纯文本（title/body/caption）\r\n       │    ├─ image    图片（fit/cover/clip）\r\n       │    ├─ icon     图标（FontAwesome/SVG）\r\n       │    ├─ qrcode   二维码\r\n       │    ├─ table    数据表格\r\n       │    ├─ divider  分割线\r\n       │    ├─ spacer   空白占位\r\n       │    └─ group    组合容器（递归）\r\n       └─ 约束系统 — fill/fit/clip 递归应用\r\n```\r\n\r\n**核心变化**（v2 → v3）：\r\n- 旧：14 个预置复合模块，每个固定 HTML 结构 → 硬编码，难以定制\r\n- 新：8 个原子组件 + 声明式组合 → 自由搭配，无限可能\r\n\r\n---\r\n\r\n## 组件类型\r\n\r\n### text — 纯文本\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"text\"` |\r\n| `content` | string | ✅ | 文本内容 |\r\n| `variant` | string | ❌ | `title`(标题) / `body`(正文) / `caption`(注释)，默认 `body` |\r\n| `style` | object | ❌ | 覆盖样式（font_size, font_weight, color 等） |\r\n\r\n**变体默认样式：**\r\n\r\n| 变体 | font_size | font_weight | color |\r\n|------|-----------|-------------|-------|\r\n| title | 18px | 700 | #1a1a2e |\r\n| body | 14px | 400 | #4a4a6a |\r\n| caption | 12px | 300 | #8888aa |\r\n\r\n### image — 图片\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"image\"` |\r\n| `src` | string | ✅ | 图片URL |\r\n| `alt` | string | ❌ | 替代文字 |\r\n| `constraint` | string | ❌ | `fit`(默认) / `cover` / `fill` |\r\n| `aspect` | string | ❌ | 宽高比，如 `\"1/1\"`、`\"16/9\"` |\r\n| `style` | object | ❌ | 额外CSS |\r\n\r\n### icon — 图标\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"icon\"` |\r\n| `name` | string | ✅ | 图标名（如 `star`、`heart`） |\r\n| `family` | string | ❌ | `fa`(FontAwesome) / `svg`(内联)，默认 `fa` |\r\n| `size` | string | ❌ | 尺寸，如 `\"24px\"`，默认 `24px` |\r\n| `color` | string | ❌ | 颜色，默认 `#1a1a2e` |\r\n\r\n### qrcode — 二维码\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"qrcode\"` |\r\n| `content` | string | ✅ | 二维码内容（URL/文本） |\r\n| `size` | string | ❌ | 尺寸如 `\"120px\"`，默认 `120px` |\r\n| `label` | string | ❌ | 二维码下方标注文字 |\r\n\r\n### table — 数据表格\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"table\"` |\r\n| `headers` | string[] | ✅ | 表头数组 |\r\n| `rows` | string[][] | ✅ | 数据行二维数组 |\r\n| `style` | object | ❌ | 额外CSS |\r\n\r\n### divider — 分割线\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"divider\"` |\r\n| `height` | string | ❌ | 线粗，默认 `\"1px\"` |\r\n| `color` | string | ❌ | 颜色，默认 `\"#e0e0e0\"` |\r\n| `style_type` | string | ❌ | `solid` / `dashed` / `dotted`，默认 `solid` |\r\n\r\n### spacer — 空白占位\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"spacer\"` |\r\n| `width` | string | ❌ | 宽度，默认 `\"100%\"` |\r\n| `height` | string | ❌ | 高度，默认 `\"auto\"` |\r\n\r\n### group — 组合容器（递归）\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"group\"` |\r\n| `direction` | string | ❌ | `\"row\"`(默认) / `\"column\"` |\r\n| `align` | string | ❌ | 主轴对齐：`left` / `center` / `right` / `top` / `bottom` |\r\n| `cross_align` | string | ❌ | 交叉轴对齐：`stretch`(默认) / `center` / `flex-start` / `flex-end` |\r\n| `ratios` | number[] | ❌ | 子组件flex比例，如 `[1, 2]` 表示1/3和2/3 |\r\n| `children` | array | ✅ | 子组件列表 |\r\n| `style` | object | ❌ | 容器额外CSS |\r\n\r\n---\r\n\r\n## 约束系统\r\n\r\n三种约束模式递归应用于：**骨架 → 模块 → 组件**\r\n\r\n| 模式 | 枚举值 | CSS 行为 | 适用场景 |\r\n|------|--------|----------|---------|\r\n| 完全贴合 | `fill` | `width/height:100%` 拉伸填充 | 背景图、全宽文字 |\r\n| 等比缩放 | `fit` | `max-width/max-height:100%` + `object-fit:contain` | 图标、Logo |\r\n| 裁剪遮挡 | `clip` | `position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);overflow:hidden` | 头像、封面图 |\r\n\r\n约束在 Spec 中的配置位置：\r\n\r\n```json\r\n// 骨架对模块的约束（cell级别）\r\n{\"row\": 0, \"constraint\": \"fit\", ...}\r\n\r\n// 组件级别的约束\r\n{\"type\": \"image\", \"constraint\": \"clip\", \"aspect\": \"1/1\", ...}\r\n```\r\n\r\n---\r\n\r\n## Grid Spec 完整示例\r\n\r\n```json\r\n{\r\n  \"name\": \"图文卡片\",\r\n  \"card_style\": {\r\n    \"max_width\": \"400px\",\r\n    \"bg\": \"rgba(255,255,255,0.85)\",\r\n    \"backdrop\": \"blur(20px)\",\r\n    \"border_radius\": \"24px\",\r\n    \"shadow\": \"0 12px 40px rgba(0,0,0,0.12)\",\r\n    \"padding\": \"20px\"\r\n  },\r\n  \"grid\": {\r\n    \"rows\": 3, \"cols\": 3, \"gap\": \"12px\",\r\n    \"cells\": [\r\n      {\r\n        \"id\": \"hero\", \"row\": 0, \"col\": 0, \"rowspan\": 2, \"colspan\": 2,\r\n        \"constraint\": \"fill\",\r\n        \"padding\": \"8px\",\r\n        \"components\": [\r\n          {\r\n            \"type\": \"image\",\r\n            \"src\": \"https://picsum.photos/200\",\r\n            \"constraint\": \"cover\",\r\n            \"style\": {\"border_radius\": \"12px\"}\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        \"id\": \"info\", \"row\": 0, \"col\": 2, \"rowspan\": 2,\r\n        \"direction\": \"column\",\r\n        \"ratios\": [1, 2, 1],\r\n        \"components\": [\r\n          {\"type\": \"icon\", \"name\": \"star\", \"size\": \"28px\", \"color\": \"#ffd700\"},\r\n          {\"type\": \"group\", \"direction\": \"column\", \"children\": [\r\n            {\"type\": \"text\", \"variant\": \"title\", \"content\": \"卡片标题\"},\r\n            {\"type\": \"text\", \"variant\": \"body\", \"content\": \"这里是正文描述，展示组件式组合的效果。\"}\r\n          ]},\r\n          {\"type\": \"text\", \"variant\": \"caption\", \"content\": \"¥ 99.00\"}\r\n        ]\r\n      },\r\n      {\"id\": \"div\", \"row\": 2, \"col\": 0, \"colspan\": 3,\r\n       \"components\": [{\"type\": \"divider\"}]}\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\n---\r\n\r\n## 命令行\r\n\r\n```bash\r\n# 列出所有组件类型\r\npython scripts/module_assembler.py --list-components\r\n\r\n# 导出接口定义JSON\r\npython scripts/module_assembler.py --export-interfaces interfaces.json\r\n\r\n# 生成组件系统演示HTML\r\npython scripts/module_assembler.py --demo\r\n\r\n# 旧模块系统（向后兼容）\r\npython scripts/grid_builder.py --list-modules\r\npython scripts/grid_builder.py --spec <spec> -o <output.html>\r\n```\r\n\r\n---\r\n\r\n## 从旧格式迁移\r\n\r\n旧版 `\"module\": \"composite:xxx\"` 格式仍然支持，但建议迁移到组件式格式。\r\n\r\n**迁移示例：text-img-right（左文右图）**\r\n\r\n旧格式：\r\n```json\r\n{\"module\": \"composite:text-img-right\"}\r\n```\r\n\r\n新格式：\r\n```json\r\n{\r\n  \"direction\": \"row\",\r\n  \"ratios\": [1, 1],\r\n  \"components\": [\r\n    {\"type\": \"text\", \"variant\": \"title\", \"content\": \"标题\"},\r\n    {\"type\": \"image\", \"src\": \"https://...\", \"constraint\": \"fit\", \"aspect\": \"1/1\"}\r\n  ]\r\n}\r\n```\n\nFile v3.3.0:references/permissions.md\n\n# 权限说明\n\n本文档说明 hug-html 技能的权限需求、各操作的权限权重及风险评级。\n\n## 权限权重说明\n\n| 操作 | 权限权重 | 说明 |\n|------|----------|------|\n| Read（读文件） | LOW | 读取输入文件、模块库、样式预设，无写入操作 |\n| Write（写文件） | MEDIUM | 将输出 HTML 文件写入 `../.standardization/hug-html/data/output/`，仅限指定目录 |\n| Bash（运行脚本） | MEDIUM | 运行 `scripts/` 目录内的 Python 脚本，不执行系统命令或外部代码 |\n| 网络访问 | NONE | 不访问任何外部网络，不发送数据 |\n\n## 风险评级\n\n本技能风险等级：**LOW**\n\n**原因**：\n- 所有操作仅限于本地文件读写\n- 不访问系统敏感路径（如 `~/.ssh/`、`~/.aws/`）\n- 不向外部网络发送任何数据\n- 不执行用户 Shell 配置文件（`.bashrc` / `.zshrc`）\n\n## 敏感信息访问声明\n\n本技能：\n- **不会**访问系统敏感路径或凭证文件\n- **不会**向外部网络发送数据\n- **不会**执行用户 Shell 配置文件（`.bashrc` / `.zshrc`）\n\n---\n\n> 本文档遵循 R-15/R-16 权限说明规范，由 `skill-standardization v2.38.6` 生成。\n\nFile v3.3.0:references/style-presets.md\n\n# style-presets.md — 样式预设系统\r\n\r\n`hug-html` 支持 5 种常见风格的样式预设，通过 `content_filler.py --preset` 应用。\r\n\r\n---\r\n\r\n## 预设列表\r\n\r\n### business — 商务风格\r\n\r\n| 属性 | 值 |\r\n|-------|-----|\r\n| 主色 | `#1a2a4a` |\r\n| 辅色 | `#4a5568` |\r\n| 背景 | `#f0f4f8` |\r\n| 字体 | Microsoft YaHei, sans-serif |\r\n| 圆角 | `8px` |\r\n| 适用 | 商务报告、正式文档、企业介绍 |\r\n\r\n### academic — 科研风格\r\n\r\n| 属性 | 值 |\r\n|-------|-----|\r\n| 主色 | `#333333` |\r\n| 辅色 | `#666666` |\r\n| 背景 | `#ffffff` |\r\n| 字体 | SimSun, serif |\r\n| 圆角 | `4px` |\r\n| 适用 | 科研论文、技术报告、学术海报 |\r\n\r\n### festive — 喜庆风格\r\n\r\n| 属性 | 值 |\r\n|-------|-----|\r\n| 主色 | `#c0392b` |\r\n| 辅色 | `#e74c3c` |\r\n| 背景 | 渐变 `#c0392b → #e74c3c` |\r\n| 字体 | SimSun, serif |\r\n| 圆角 | `12px` |\r\n| 适用 | 婚庆、节日、庆典、喜报 |\r\n\r\n### mourning — 丧事风格\r\n\r\n| 属性 | 值 |\r\n|-------|-----|\r\n| 主色 | `#333333` |\r\n| 辅色 | `#666666` |\r\n| 背景 | `#f5f5f5` |\r\n| 字体 | SimSun, serif |\r\n| 圆角 | `8px` |\r\n| 适用 | 讣告、悼念、正式讣悼场合 |\r\n\r\n### tech — 技术风格\r\n\r\n| 属性 | 值 |\r\n|-------|-----|\r\n| 主色 | `#2D3436` |\r\n| 辅色 | `#636E72` |\r\n| 背景 | `#f8f9fa` |\r\n| 字体 | Consolas, 'Courier New', monospace |\r\n| 圆角 | `4px` |\r\n| 适用 | 技术文档、代码说明、API 文档 |\r\n\r\n---\r\n\r\n## 应用方法\r\n\r\n### 通过命令行应用\r\n\r\n```bash\r\npython \"scripts/content_filler.py\" ^\r\n  --template \"data/output/template.html\" ^\r\n  --preset business ^\r\n  --output \"data/output/styled.html\"\r\n```\r\n\r\n### 在可视化编辑器中应用\r\n\r\n打开生成的 `editor.html` → 点击任意区域 → 使用顶部工具栏：\r\n- 🎨字色 — 更新文字颜色\r\n- 🖌️背景 — 更新背景色\r\n- 🔤字号 — 更新字号（12/14/16/18/24/32px）\r\n- 👁️透明 — 更新透明度（100%/90%/70%/50%/30%）\r\n\r\n### 在 HTML 中直接写死\r\n\r\n```html\r\n<div style=\"background: #1a2a4a; color: white;\">\r\n  商务风格面板\r\n</div>\r\n```\r\n\r\n---\r\n\r\n## 扩展自定义预设\r\n\r\n编辑 `scripts/content_filler.py` 中的 `STYLE_PRESETS` 字典：\r\n\r\n```python\r\nSTYLE_PRESETS = {\r\n    \"my-style\": {\r\n        \"primary\": \"#ff6600\",\r\n        \"secondary\": \"#ffcc00\",\r\n        \"bg\": \"linear-gradient(135deg, #ff6600 0%, #ffcc00 100%)\",\r\n        \"font\": \"'Comic Sans MS', cursive\",\r\n        \"border_radius\": \"16px\",\r\n    },\r\n}\r\n```\r\n\r\n或通过 JSON 配置文件 `data/config/style-presets.json` 管理（计划中）。\r\n\r\n---\r\n\r\n## 与模块库的关系\r\n\r\n- **样式预设** = 全局风格（颜色/字体/圆角）\r\n- **模块库** = 可复用 HTML 片段（独立组件）\r\n\r\n建议流程：\r\n1. 用 `--preset` 配置全局风格\r\n2. 用 `module_assembler.py` 组装具体模块\r\n3. 用可视化编辑器微调\n\nArchive v3.2.0: 26 files, 91221 bytes\n\nFiles: _meta.json (127b), references/antipatterns.md (3238b), references/architecture.md (2359b), references/call-chains.md (6196b), references/changelog.md (8894b), references/examples.md (2632b), references/faq.md (10802b), references/guide.md (6900b), references/LICENSE.md (1067b), references/module-library.md (7290b), references/permissions.md (2486b), references/style-presets.md (2865b), scripts/_paths.py (568b), scripts/content_filler.py (11919b), scripts/gen_calendar_spec.py (20901b), scripts/gen_test_grids.py (8072b), scripts/grid_builder.py (88198b), scripts/module_assembler.py (22173b), scripts/template_generator.py (4823b), scripts/templates/3x3-merge.json (2428b), scripts/templates/3x3-mixed-styles.json (5518b), scripts/templates/4x2-app-card.json (2186b), scripts/templates/calendar-dashboard-interactive.json (20108b), scripts/visual_editor.py (21305b), skill-card.md (2586b), SKILL.md (10083b)\n\nFile v3.2.0:SKILL.md\n\n---\r\nname: hug-html\r\ntags: ['html', 'grid', 'template', 'visual-editor', 'module-library', 'style-presets', 'layout', 'chinese-error-handling']\r\nversion: 3.2.0\r\nauthor: Ldxs\r\nlicense: MIT\r\ndescription: 8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation audit, user template save-as, Chinese error handling\r\nsensitive_access: false\r\ncritical_write: false\r\npermission_weight: LOW\r\ndata_dir: ../.standardization/hug-html/data/\r\nexternal_data_dir: true\r\ntrigger: 生成 HTML 模板/编辑 HTML/HTML 模块/网格布局/单元格合并/可视化编辑/输出自包含 HTML\r\ntrigger_negative: 仅询问概念/无文件生成需求/要求使用其他工具\r\nmeta_field_sync: true\r\ncreate_permissions_md: true\r\nlicense_compliance: true\r\n---\r\n# hug-html\r\n\r\n> → 详见核心能力的渐进式文件索引\r\n> → 详见核心能力的渐进式文件索引\r\n> → 详见核心能力的渐进式文件索引\r\n\r\n## 限制\r\n\r\n- **本技能的能力边界分为支持场景、不支持场景和边界情况三类。**\r\n- **生成推广卡片** — 应用推广、活动宣传、产品介绍的毛玻璃卡片。触发词：\"生成一个APP推广HTML卡片\"\r\n- **生成信息面板** — 带表格、参数、二维码的信息展示面板。触发词：\"做一个带二维码和参数描述的HTML\"\r\n- **生成可视化编辑模板** — 带 Ctrl+E 可编辑的 HTML。触发词：\"生成一个可视化编辑的HTML模板\"\r\n- **生成日历/周历仪表板** — 假日管理、年份控制、工日统计的交互仪表板。触发词：\"生成一个周历交互HTML\"\r\n- **生成双端对比卡片** — 左应用右元服务/双实体的对比展示。触发词：\"生成一个双端推广卡片\"\r\n- **内容填充** — 自动/手动填充 data-field 标记的文字和图片。触发词：\"给这个HTML模板填充示例内容\"\r\n- **方案模板固化** — 将当前设计保存为可复用的用户模板。触发词：\"把这个模板保存为 my-card\"\r\n- **自由创作 HTML** — AI 参考模块库直接编写自包含 HTML。触发词：\"帮我写一个毛玻璃风格的首页\"\r\n\r\n**不支持的场景：**\r\n- **复杂前端应用** — 不支持路由/状态管理/API调用（替代：手写 React/Vue）\r\n- **多页面 HTML 站点** — 不处理页面间导航（替代：静态站点生成器）\r\n- **PDF / 图片输出** — 不直接生成图片或 PDF（替代：浏览器打印或截图）\r\n- **外部 CSS/JS 框架集成** — 强调零外部依赖（替代：手动引入 CDN）\r\n- **非网格布局的自由排版** — 基于 CSS Grid（替代：自由生成模式）\r\n- **后端交互** — 纯前端 HTML，无后端能力。影响：数据持久化需额外方案。替代：搭配 Flask/Node.js\r\n\r\n**边界情况：**\r\n- **网格越界** — row/col + rowspan/colspan 不能超过网格总行列数。影响：CSS Grid 异常渲染\r\n- **毛玻璃裁剪** — backdrop-filter 需要 overflow:hidden 容器\r\n- **JSON 模板路径** — --spec 支持绝对/相对路径和内置名，不存在有中文错误提示\r\n- **文件编码** — 必须 UTF-8，其他编码可能乱码\r\n- **编辑模式兼容性** — Ctrl+E 需要 Chrome/Edge/Firefox，不支持 IE\r\n\r\n## 触发条件\r\n\r\n**正向触发：**\r\n- \"生成 HTML 模板\" / \"HTML template\" / \"hug html\"\r\n- \"编辑 HTML\" / \"可视化编辑 HTML\" / \"visual edit HTML\"\r\n- \"HTML 模块\" / \"HTML module library\"\r\n- \"网格布局\" / \"grid layout\" / \"N×M 网格\"\r\n- \"单元格合并\" / \"rowspan\" / \"colspan\"\r\n- 输出格式：自包含 HTML 文件（毛玻璃卡片风格）\r\n- \"我需要一个APP推广卡片，要有个二维码—可以用，支持\"\r\n- \"帮我做一个带表格和参数配置的HTML面板—支持，用 data-table + param-panel 模块\"\r\n- \"生成一个双端对比的推广页面—支持，用 header-dual + qr-dual\"\r\n- \"这个模板我想保存下来以后用—支持，用 --save-as 固化\"\r\n- \"给我生成的HTML加一个可视化编辑界面—支持，用 visual_editor.py\"\r\n\r\n**否定条件：**\r\n- 不触发：用户仅询问 HTML 语法概念，无文件生成需求\r\n- 不触发：用户明确请求其他特定技能\r\n\r\n## 核心能力\r\n\r\n> 📚 **渐进式加载**：本技能采用渐进式 MD 体系，`SKILL.md` 为入口（≤230行），详细内容拆分到 `references/*.md` 按需加载。\r\n\r\n| # | 能力 | 说明 |\r\n| --- |------| ------ |\r\n| 1 | **骨架结构** | N×M 网格、行列数、单元格合并（rowspan/colspan）、gap 间距 |\r\n| 2 | **骨架约束** | 3级约束（fill/fit/clip），递归传递到组件级别 |\r\n| 3 | **组件体系** | 8种原子组件（text/image/icon/qrcode/table/divider/spacer/group），自由组合 |\r\n| 4 | **组合逻辑** | 方向(row/column)、比例(ratios)、对齐(align)、8方向位置 |\r\n| 5 | **方案模板库** | 内置 7+ 预置{骨架+组件+样式}组合 + **用户可自定义固化** |\r\n| 6 | **样式预设** | 5 种内置风格：商务/科研/喜庆/丧事/技术，一键切换配色字体 |\r\n| 7 | **基础编辑** | 每个文字元素独立控制：字体家族(8种)/字重(100-900)/字号(9-48px)/字色/透明度 |\r\n| 8 | **图片编辑** | 点击输入URL + 拖放文件替换，所有图片组件均支持 |\r\n| 9 | **生成后审计** | 自动检查 HTML 结构完整性、标签平衡、图片属性、网格越界、渲染风险 |\r\n| 10 | **统一接口** | `--export-interfaces` 导出完整接口定义 JSON，大模型可直接理解 |\r\n| 11 | **方案模板固化** | `--save-as <名>` 将任意生成固化为用户模板，后续按名引用 |\r\n| 12 | **自由生成模式** | AI 参考组件库，理解需求确定骨架→组合组件→约束→生成→审计 |\r\n| 13 | **参数约束** | 行列数 1-10, span≥1, gap 4-24px, 字号 9-48px, 字重 100-900 |\r\n| 14 | **向后兼容** | 旧格式 `\"module\": \"composite:xxx\"` 仍然支持 |\r\n| 14 | **中文错误处理** | 所有脚本内置中文错误提示、参数校验前置、安全文件操作、调试模式 |\r\n\r\n### 渐进式文件索引\r\n\r\n| 文件名 | 分类 | 包含内容 | 审计关联 |\r\n|--------|------|----------|----------|\r\n| `references/LICENSE.md` | 许可协议 | 开源许可证声明（MIT）。包含：MIT 许可证完整文本。 | R-26 |\r\n| `references/antipatterns.md` | 规范指南 | skill 编写中的常见反模式。包含：错误做法示例、正确做法示例、避坑指引。 | R-18 |\r\n| `references/architecture.md` | 架构设计 | skill-standardization 整体架构。包含：模块关系、数据流、核心设计决策。 | 无 |\r\n| `references/call-chains.md` | 参考文档 | 本文件定义 `hug-html` 技能的调用链，供 `skill-sub` 读取和执行。 | 无 |\r\n| `references/changelog.md` | 版本管理 | 版本更新日志。包含：版本号、变更类型、修复项、升级说明。 | R-24 |\r\n| `references/examples.md` | 使用示例 | 各场景完整执行示例。包含：CLI 命令、执行过程、输出结果。 | R-25 C-17 |\r\n| `references/faq.md` | 常见问题 | 常见疑问与解答。包含：问题分类、原因分析、解决方案。 | R-19, R-25 C-19 |\r\n| `references/guide.md` | 使用指南 | 三种执行模式操作教程。包含：audit/create/refactor 流程、参数说明、注意事项。 | 无 |\r\n| `references/module-library.md` | 参考文档 | ``` | 无 |\r\n| `references/permissions.md` | 权限与测试 | 权限扫描说明与测试结论。包含：风险等级、高权限操作说明、测试概览、计时统计。 | R-15, R-16 |\r\n| `references/style-presets.md` | 参考文档 | `hug-html` 支持 5 种常见风格的样式预设，通过 `content_filler.py --preset` 应用。 | 无 |\r\n## 快速开始\r\n\r\n**场景：生成推广卡片**\r\n用户需求：帮我做一个APP推广卡片，要有二维码，输出HTML文件\r\n系统执行：\r\n```bash\r\npython scripts/template_generator.py --type promo -o \"data/output/card.html\"\r\n```\r\n系统输出：data/output/card.html — 毛玻璃风格推广卡片，含二维码、产品名、宣传语\r\n\r\n**场景：可视化编辑**\r\n用户需求：给这个卡片加一个在线编辑功能，输出可编辑HTML\r\n系统执行：\r\n```bash\r\npython scripts/visual_editor.py --template data/output/card.html -o data/output/editor.html\r\n```\r\n系统输出：data/output/editor.html — 带Ctrl+E编辑界面，双击文字可修改\r\n\r\n**场景：生成周历仪表板**\r\n用户需求：做一个带假日管理的周历交互HTML，输出仪表板\r\n系统执行：\r\n```bash\r\npython scripts/template_generator.py --type calendar-dashboard -o \"data/output/calendar.html\"\r\n```\r\n系统输出：data/output/calendar.html — 交互式周历，支持年份切换和工日统计\r\n## 工作流程\r\n\r\n本技能的执行流程包含以下编号列表（按顺序执行）：\r\n\r\n- **① 解析需求** — 输入 用户需求描述 → 输出 需求规格\r\n- **② 选择/创建 Grid Spec** — 输入 需求规格 → 输出 grid_spec.json\r\n- **③ 引用模块** — 输入 grid_spec.json, modules/ → 输出 module_config.json\r\n- **④ 生成 HTML** — 输入 grid_spec.json, module_config.json → 输出 *.html\r\n- **⑤ 生成编辑界面（可选）** — 输入 *.html → 输出 editor.html\r\n- **⑥ 内容填充（可选）** — 输入 editor.html → 输出 filled.html\r\n- **⑦ 方案模板固化（可选）** — 输入 filled.html → 输出 interfaces.json\r\n- **⑧ 输出结果** — 输入 最终 HTML → 输出 预览\r\n## 权限说明\r\n\r\n| 工具 | 访问级别 | 用途 |\r\n| ------ |----------| ------ |\r\n| Read | 只读 | 读取 Grid Spec、模块库、样式预设 |\r\n| Write | 写入 | 将输出 HTML 写入 `data/output/` |\r\n| Bash | 受限 | 运行内部处理脚本（限制在 `scripts/` 目录内） |\r\n\r\n- **不会**访问系统敏感路径或凭证文件\r\n- **不会**向外部网络发送数据\r\n- **不会**执行用户 Shell 配置文件\r\n- **不会**修改系统注册表或环境变量\r\n- **不会**执行用户 Shell 配置文件\n\nFile v3.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn75zfd51df61ajdyqtgvrs1hx84s4q6\",\n  \"slug\": \"hug-html\",\n  \"version\": \"3.2.0\",\n  \"publishedAt\": 1782479239900\n}\n\nFile v3.2.0:references/antipatterns.md\n\n# 反模式手册\r\n\r\n本文档列出 hug-html 技能的常见反模式及正确做法。\r\n\r\n---\r\n\r\n## 反模式列表\r\n\r\n### ❌ 错误：在 SKILL.md 中粘贴大段代码\r\n\r\n**问题**：SKILL.md 应保持 ≤230 行，大段代码会导致文件臃肿，违反 R-17 渐进式加载规范。\r\n\r\n**正确做法**：将代码移到 `scripts/` 目录，在 SKILL.md 中描述调用方式。\r\n\r\n```markdown\r\n❌ 错误示例：\r\n```python\r\ndef generate_template():\r\n    # ... 50行代码 ...\r\n```\r\n\r\n✅ 正确示例：\r\n调用 `scripts/template_generator.py --output <path> --type <promo|product|tech|flow>`\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：使用相对路径 `./scripts/grid_builder.py`\r\n\r\n**问题**：相对路径在不同工作目录下会解析错误，导致脚本找不到。\r\n\r\n**正确做法**：使用相对路径（如 `scripts/grid_builder.py`），skill-standardization 审计工具会自动拼接安装目录。\r\n\r\n```markdown\r\n❌ 错误：python \"C:/Users/.../scripts/template_generator.py\"\r\n✅ 正确：python scripts/template_generator.py --output ../.standardization/hug-html/data/output/result.html\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：在 SKILL.md 中写\"详见脚本注释\"\r\n\r\n**问题**：用户无法看到脚本注释，且脚本注释容易过时。\r\n\r\n**正确做法**：将详细说明写入 `references/guide.md`，SKILL.md 只写必要信息。\r\n\r\n---\r\n\r\n### ❌ 错误：产出物路径指向安装目录\r\n\r\n**问题**：`artifact_paths` 应指向数据目录（`../.standardization/hug-html/data/output/`），而非安装目录下的 `data/output/`。\r\n\r\n**正确做法**：\r\n\r\n在 `SKILL.md` frontmatter 中：\r\n```yaml\r\nartifact_paths: [\"../.standardization/hug-html/data/output/\"]\r\n```\r\n\r\n在脚本中：\r\n```python\r\nfrom pathlib import Path\r\noutput_dir = Path(__file__).parent.parent.parent / \".standardization\" / \"hug-html\" / \"data\" / \"output\"\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：模块名拼写错误\r\n\r\n**问题**：`SKILL.md` 或 `references/` 中引用的模块名与实际文件名不一致，导致用户调用失败。\r\n\r\n**正确做法**：每次提及脚本名时，用绝对路径验证文件是否存在。\r\n\r\n```\r\n✅ 正确：python \"C:/Users/sm001/.workbuddy/skills/hug-html/scripts/template_generator.py\" --help\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：术语不一致\r\n\r\n**问题**：同一概念混用多个术语（如\"配置\"/\"配置\"、\"填充内容\"/\"填内容\"），增加理解成本。\r\n\r\n**正确做法**：全文统一术语。\r\n\r\n| 概念 | 统一术语 | 错误术语 |\r\n|------|----------|----------|\r\n| configuration | 配置 | 配置、setting |\r\n| fill content | 填充内容 | 填内容、填入 |\r\n| module | 模块 | 组件、component |\r\n| preset | 预设 | 预置、preset |\r\n| update | 更新 | 更新、modify |\r\n\r\n---\r\n\r\n## 检查清单\r\n\r\n- [ ] SKILL.md ≤ 230 行？\r\n- [ ] 无大段代码（>10行）直接在 SKILL.md 中？\r\n- [ ] 所有路径均为相对路径？\r\n- [ ] 无\"详见脚本注释\"等推卸责任的描述？\r\n- [ ] `artifact_paths` 指向数据目录而非安装目录？\r\n- [ ] 所有脚本名拼写正确且文件存在？\r\n- [ ] 术语全文统一？\r\n\r\n---\r\n\r\n> 本文档遵循 R-18 反模式引用规范，由 `skill-standardization v2.38.6` 生成。\n\nFile v3.2.0:references/architecture.md\n\n# 四层架构（细化）\r\n\r\nhug-html 采用四层架构设计，从抽象到具体逐层约束。\r\n\r\n```\r\n骨架 (Skeleton)\r\n├── 骨架结构 — N×M 网格、行列数、单元格合并(rowspan/colspan)、gap间距\r\n├── 骨架样式 — 底板背景/渐变/透明度、外阴影、外边框、圆角、内外边距\r\n└── 约束模式 — fill(完全贴合) / fit(等比缩放) / clip(裁剪遮挡)\r\n\r\n模块 (Module)  ← 组件组合 = {组件声明 + 约束 + 比例} 自由搭配\r\n├── 组件组合 — 8种原子组件自由搭配（text/image/icon/qrcode/table/divider/spacer/group）\r\n├── 组合逻辑 — 方向(row/column)、比例(ratios)、对齐(align/cross_align)\r\n└── 约束传递 — 骨架约束模块 → 模块约束组件（递归）\r\n\r\n组件 (Component)  ← 8种原子类型\r\n├── text     — 纯文本（title/body/caption 三种变体）\r\n├── image    — 图片（支持 fit/cover/fill 填充模式）\r\n├── icon     — 图标（FontAwesome / SVG内联）\r\n├── qrcode   — 二维码（API生成）\r\n├── table    — 数据表格（表头+行）\r\n├── divider  — 分割线\r\n├── spacer   — 空白占位\r\n└── group    — 组合容器（递归包含子组件）\r\n\r\n基础样式 (Base)\r\n└── CSS原语 — 字体/颜色/渐变/圆角/间距/阴影/边框\r\n```\r\n\r\n**编辑粒度**（可视化编辑器内）：\r\n| 可更新 | 不可更新（需改 Grid Spec） |\r\n|--------|---------------------------|\r\n| ✓ 图片内容（点击输入URL / 拖放文件替换） | ✗ 骨架结构（行列数、合并方式、gap） |\r\n| ✓ 基础样式（每个文字元素独立：字体家族/字重/字号/字色） | ✗ 模块结构（组件的HTML骨架） |\r\n| ✓ 模块样式（通过 cell style 覆盖背景色/内边距） | ✗ 骨架样式（底板色/外阴影等） |\r\n\r\n**大模型使用流程**（自由生成模式）：\r\n1. 理解用户需求 → 确定骨架结构：几行几列、哪些单元格需要合并\r\n2. 确定约束模式：fill/fit/clip → 决定骨架对模块、模块对组件的约束\r\n3. 描述需要的组件 → 从8种原子组件中自由组合，放入对应骨架位置\r\n4. 配置组合逻辑：方向、比例、对齐方式\r\n5. 生成 HTML → 可直接用 `module_assembler.py` 或自由生成自包含 HTML\n\nFile v3.2.0:references/call-chains.md\n\n# call-chains.md — hug-html 调用链定义\r\n\r\n本文件定义 `hug-html` 技能的调用链，供 `skill-sub` 读取和执行。\r\n\r\n---\r\n\r\n## 调用链 1：generate-html（完整生成流程）\r\n\r\n**描述**：从需求分析到输出最终 HTML 的完整流程\r\n\r\n**触发方式**：`/hug-html generate --type <type> --output <path>`\r\n\r\n**步骤**：\r\n\r\n| 步骤 | 动作 | 调用脚本 | 输出 |\r\n|------|-------|------|------|\r\n| 1 | 解析需求 | （AI 理解用户意图） | 确定 `type`, `preset`, `modules` |\r\n| 2 | 生成模板 | `template_generator.py --type <t> --output <o>` | `template.html` |\r\n| 3 | 填充内容（可选） | `content_filler.py --auto --template <t> --output <o>` | `filled.html` |\r\n| 4 | 应用样式预设（可选） | `content_filler.py --preset <p> --template <t> --output <o>` | `styled.html` |\r\n| 5 | 生成编辑界面（可选） | `visual_editor.py --template <t> --output <o>` | `editor.html` |\r\n| 6 | 组装模块（可选） | `module_assembler.py --modules <m> --output <o>` | `assembled.html` |\r\n| 7 | 输出最终文件 | （复制到 `data/output/final.html`） | `final.html` |\r\n\r\n**调用链 JSON**（`skill-sub` 格式）：\r\n\r\n```json\r\n{\r\n  \"name\": \"generate-html\",\r\n  \"description\": \"从需求到最终 HTML 的完整生成流程\",\r\n  \"steps\": [\r\n    {\"step\": 1, \"action\": \"parse-requirement\", \"tool\": \"AI\", \"output\": \"type,preset,modules\"},\r\n    {\"step\": 2, \"action\": \"generate-template\", \"script\": \"template_generator.py\", \"args\": \"--type {type} --output data/output/template.html\"},\r\n    {\"step\": 3, \"action\": \"fill-content\", \"script\": \"content_filler.py\", \"args\": \"--auto --template data/output/template.html --output data/output/filled.html\", \"optional\": true},\r\n    {\"step\": 4, \"action\": \"apply-preset\", \"script\": \"content_filler.py\", \"args\": \"--preset {preset} --template data/output/template.html --output data/output/styled.html\", \"optional\": true},\r\n    {\"step\": 5, \"action\": \"generate-editor\", \"script\": \"visual_editor.py\", \"args\": \"--template data/output/template.html --output data/output/editor.html\", \"optional\": true},\r\n    {\"step\": 6, \"action\": \"assemble-modules\", \"script\": \"module_assembler.py\", \"args\": \"--modules {modules} --output data/output/assembled.html\", \"optional\": true},\r\n    {\"step\": 7, \"action\": \"finalize\", \"tool\": \"AI\", \"output\": \"data/output/final.html\"}\r\n  ]\r\n}\r\n```\r\n\r\n---\r\n\r\n## 调用链 2：edit-html（编辑流程）\r\n\r\n**描述**：生成模板 → 生成编辑界面 → 用户编辑 → 导出最终 HTML\r\n\r\n**触发方式**：`/hug-html edit --template <path>`\r\n\r\n**步骤**：\r\n\r\n| 步骤 | 动作 | 调用脚本 | 输出 |\r\n|------|-------|------|------|\r\n| 1 | 检查模板是否存在 | （AI 验证） | 模板路径 |\r\n| 2 | 生成可视化编辑界面 | `visual_editor.py --template <t> --output <o>` | `editor.html` |\r\n| 3 | 提示用户在浏览器中编辑 | （AI 输出提示） | 编辑说明 |\r\n| 4 | 用户导出最终 HTML | （用户点击「生成最终 HTML」按钮） | `final.html` |\r\n| 5 | 提取编辑后内容（可选） | `content_filler.py --extract <html> --output <json>` | `content.json` |\r\n\r\n**调用链 JSON**：\r\n\r\n```json\r\n{\r\n  \"name\": \"edit-html\",\r\n  \"description\": \"生成可视化编辑界面并导出最终 HTML\",\r\n  \"steps\": [\r\n    {\"step\": 1, \"action\": \"validate-template\", \"tool\": \"AI\", \"output\": \"template-path\"},\r\n    {\"step\": 2, \"action\": \"generate-editor\", \"script\": \"visual_editor.py\", \"args\": \"--template {template} --output data/output/editor.html\"},\r\n    {\"step\": 3, \"action\": \"prompt-user\", \"tool\": \"AI\", \"output\": \"edit-instructions\"},\r\n    {\"step\": 4, \"action\": \"export-final\", \"tool\": \"user\", \"output\": \"final.html\"},\r\n    {\"step\": 5, \"action\": \"extract-content\", \"script\": \"content_filler.py\", \"args\": \"--extract data/output/editor-output.html --output data/config/content.json\", \"optional\": true}\r\n  ]\r\n}\r\n```\r\n\r\n---\r\n\r\n## 调用链 3：assemble-with-modules（模块组装流程）\r\n\r\n**描述**：选择模块 → 组装 → 填充内容 → 输出\r\n\r\n**触发方式**：`/hug-html assemble --modules <csv>`\r\n\r\n**步骤**：\r\n\r\n| 步骤 | 动作 | 调用脚本 | 输出 |\r\n|------|-------|------|------|\r\n| 1 | 列出可用模块 | `module_assembler.py --list` | 模块列表 |\r\n| 2 | 组装选定模块 | `module_assembler.py --modules <m> --output <o>` | `assembled.html` |\r\n| 3 | 填充内容（可选） | `content_filler.py --template <t> --content <c> --output <o>` | `filled.html` |\r\n| 4 | 生成编辑界面（可选） | `visual_editor.py --template <t> --output <o>` | `editor.html` |\r\n\r\n**调用链 JSON**：\r\n\r\n```json\r\n{\r\n  \"name\": \"assemble-with-modules\",\r\n  \"description\": \"选择模块并组装成完整 HTML\",\r\n  \"steps\": [\r\n    {\"step\": 1, \"action\": \"list-modules\", \"script\": \"module_assembler.py\", \"args\": \"--list\"},\r\n    {\"step\": 2, \"action\": \"assemble\", \"script\": \"module_assembler.py\", \"args\": \"--modules {modules} --output data/output/assembled.html\"},\r\n    {\"step\": 3, \"action\": \"fill-content\", \"script\": \"content_filler.py\", \"args\": \"--template data/output/assembled.html --content data/config/content.json --output data/output/filled.html\", \"optional\": true},\r\n    {\"step\": 4, \"action\": \"generate-editor\", \"script\": \"visual_editor.py\", \"args\": \"--template data/output/assembled.html --output data/output/editor.html\", \"optional\": true}\r\n  ]\r\n}\r\n```\r\n\r\n---\r\n\r\n## 注册方式（skill-sub）\r\n\r\n将以上 JSON 保存到 `data/config/call-chains.json`，或在 `skill-sub` 中注册：\r\n\r\n```bash\r\npython \"$(SKILL_DIR)/../skill-sub/scripts/chain_manager.py\" register --file \"C:/Users/sm001/.workbuddy/skills/hug-html/data/config/call-chains.json\"\r\n```\r\n\r\n---\r\n\r\n## 调用示例\r\n\r\n```bash\r\n# 使用 generate-html 调用链\r\npython \"$(SKILL_DIR)/../skill-sub/scripts/chain_executor.py\" run --chain generate-html --type promo --preset business\r\n\r\n# 使用 edit-html 调用链\r\npython \"$(SKILL_DIR)/../skill-sub/scripts/chain_executor.py\" run --chain edit-html --template \"data/output/template.html\"\r\n\r\n# 使用 assemble-with-modules 调用链\r\npython \"$(SKILL_DIR)/../skill-sub/scripts/chain_executor.py\" run --chain assemble-with-modules --modules \"color:gradient-purple,font:title-large,image:img-cover\"\r\n```\n\nFile v3.2.0:references/changelog.md\n\n## [3.2.0] - 2026-06-26\r\n\r\n### 修复\r\n- refactor: hug-html\r\n\r\n---\r\n\r\n## [3.1.0] - 2026-06-26\r\n\r\n### 修复\r\n- refactor: hug-html\r\n\r\n---\r\n\r\n## 3.0.4 (2026-06-02) -- skill-standardization 改造\r\n\r\n### Changed\r\n- R-10: SKILL.md frontmatter tags 和 description 与 _meta.json 同步一致\r\n- R-04: description 删除版本号（_meta.json 和 SKILL.md 均去除）\r\n- R-20: changelog.md 术语统一（删除→删除）\r\n- **R-17**: SKILL.md 缩减至 181 行，非标章节按 body.json 三层规则处理:\r\n   - 四层架构（细化）→ 渐进式: references/architecture.md\r\n   - 能力边界 → 重命名: 限制\r\n   - 错误处理说明 → 合并: 核心能力第14项\r\n   - 附录 → 合并: 核心能力 ### 渐进式文件索引\r\n\r\n---\r\n\r\n## 3.0.3 (2026-05-31)\r\n\r\n### 修复\r\n- **R-01/R-07**: frontmatter 补全 trigger 和 trigger_negative 字段\r\n- **R-04**: description 删除版本号\r\n- **R-06**: 补回缺失的 H1 标题\r\n- **R-10**: changelog 版本号去 v 前缀\r\n- **R-18/R-19**: SKILL.md 补充 antipatterns/faq 引用\r\n\r\n---\r\n\r\n## 3.0.2 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 3.0.1 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 3.0.0 (2026-05-30) — 组件式架构重构\r\n\r\n### 重大更新（MAJOR）\r\n- **架构重构**：从预置复合模块模板改为原子组件+声明式组合\r\n  - 删除 14 个固定复合模块，替换为 8 种原子组件（text/image/icon/qrcode/table/divider/spacer/group）\r\n  - 新增 3 级约束系统（fill/fit/clip），递归作用于骨架→模块→组件\r\n  - 新增声明式组合逻辑：方向(row/column)、比例(ratios)、对齐(align/cross_align)\r\n  - 新增  组件引擎， 支持新旧两种 Spec 格式\r\n\r\n### Changed\r\n- module_assembler.py 完全重写为组件引擎\r\n- grid_builder.py build_cell_html() 支持 components 字段\r\n- references/module-library.md 重写为组件系统文档\r\n- SKILL.md 四层架构、核心能力、快速开始全面更新\r\n\r\n---\r\n## 2.1.4 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 2.1.3 (2026-05-30) — R-12 合规完善\r\n\r\n### Changed\r\n- 所有脚本补充 DEFAULT_DATA_DIR_RAW + DATA_DIR R-12 定义\r\n- _meta.json 补充 data_dir 字段\r\n- 运行 fix_missing_data_dir 一键修复，R-12 审计通过\r\n\r\n\r\n# Changelog — hug-html\r\n\r\n\r\n\r\n## 2.1.2 (2026-05-30) — skill-standardization 改造 + R-12 脚本补全\r\n\r\n### Changed\r\n- 版本号 v2.1.1 → v2.1.2（SKILL.md + _meta.json + 脚本版本字符串三端统一）\r\n- SKILL.md frontmatter 补全 description 字段\r\n- SKILL.md 缩减至 ≤230 行（删除冗余空白行和 H1 标题）\r\n- 尾部版本声明更新为 2.1.2\r\n- 删除 references/faq-q4-fixed.md 遗留文件\r\n- template_generator.py / visual_editor.py / content_filler.py: 补充 DEFAULT_DATA_DIR_RAW + DATA_DIR R-12 定义\r\n- gen_calendar_spec.py: 补充 DEFAULT_DATA_DIR_RAW + DATA_DIR，保留 TEMPLATES_DIR 指向内置模板\r\n- _meta.json: 补充 data_dir 字段\r\n\r\n### Fixed\r\n- SKILL.md 版本号与 _meta.json 不一致问题\r\n- 4 个脚本缺少 R-12 合规的数据目录变量声明\r\n\r\n## 2.1.1 (2026-05-29) — skill-standardization 合规修正\r\n\r\n### Changed\r\n- 版本号 v2.1.0 → v2.1.1（`skill-standardization update --fix` 自动 bump）\r\n- `_meta.json` 补充 `data_dir` 字段，通过 R-12 检查\r\n- `scripts/grid_builder.py`：补充 `DEFAULT_DATA_DIR_RAW` R-12 数据目录字面量声明\r\n- `scripts/gen_test_grids.py`：补充 `DEFAULT_DATA_DIR_RAW` R-12 字面量\r\n- `scripts/module_assembler.py`：补充 `DEFAULT_DATA_DIR_RAW` R-12 字面量\r\n\r\n## 2.1.0 (2026-05-29) — 全面中文异常处理 + 能力边界定义\r\n\r\n### Added\r\n- 所有脚本集成中文错误处理机制：`show_error()` 函数统一输出 `❌ [错误类型] 说明 + 💡 修复建议`\r\n- `safe_read_json()` / `safe_write_text()` 安全文件操作工具，文件不存在/JSON格式错误/编码异常均有中文指引\r\n- `--debug` 参数支持（grid_builder.py / template_generator.py / visual_editor.py），加参数显示完整堆栈\r\n- SKILL.md 新增「能力边界」章节：✅ 支持场景 / ❌ 不支持场景 / ⚠️ 边界情况，明确回答\"这个需求支不支持\"\r\n- SKILL.md 新增「错误排查」快速入门表格+「错误处理说明」章节\r\n- SKILL.md 触发场景补充多个复杂需求触发示例\r\n- faq.md 新增 Q11-Q17：错误码对照表、文件找不到修复、布局错乱排查、编辑器无响应、模板固化使用、能力边界判断\r\n\r\n### Changed\r\n- `grid_builder.py`: main() 包裹 try/except，所有文件读取/写入改用安全函数\r\n- `template_generator.py`: 重写为 try/except + 中文错误，引入 grid_builder 的 show_error/safe_read_json/safe_write_text\r\n- `visual_editor.py`: 重写为 try/except + 中文错误，模板不存在/读取失败均有中文指引\r\n- `content_filler.py`: 重写为 try/except + 中文错误，文件读取/JSON解析/填充字段校验均有中文提示\r\n- `SKILL.md` frontmatter 版本号 v2.0.4 → v2.1.0\r\n\r\n## 2.0.1 (2026-05-29) — 完整交互 + 审计 + 标准化\r\n\r\n### Added\r\n- `scripts/grid_builder.py` — 核心网格引擎：N×M 网格布局、单元格合并（rowspan/colspan）\r\n- 两层级模块体系：Base（63 个 CSS 原语）+ Composite（14 个可复用 HTML 组件）\r\n- 内置 7 个方案模板：harmony-app、harmony-dual、calendar-dashboard(交互版)、promo、3x3-merge、4x2-app-card、3x3-mixed-styles\r\n- 泛化三个用户模板：harmony-app，harmony-dual，calendar-dashboard\r\n- `calendar-dashboard` 完整交互版：5×3 网格、年份控制、周末规则勾选、假日区间 CRUD、补班管理、周历视图、总工日统计\r\n- `grid_builder.py` 支持 `scripts` 字段注入自定义 JS，支持 `file` 字段引用外部 JSON 模板\r\n- `scripts/gen_calendar_spec.py` — 交互日历模板生成器\r\n- `scripts/gen_test_grids.py` — 测试 Grid Spec / 模块 JSON 生成工具\r\n- 图片编辑：点击输入 URL + 拖放文件替换（`editable-img` 类），所有复合模块图片均支持\r\n- 编辑器字体控制：字体家族（8种）、字重（100-900）、字号（9-48px）、字色拾色器\r\n- 5 种样式预设：business / academic / festive / mourning / tech，`style_preset` 字段一键切换\r\n- 生成后审计 `audit_html()`：检查 DOCTYPE、标签平衡、网格越界、单元格重叠、backdrop-filter 裁剪、背景异常\r\n- 生成说明 `print_generation_guide()`：每次生成强制输出编辑方法、创作模式、可用资源、审计说明\r\n- 方案模板固化 `--save-as <名>`：将任意 Grid Spec 保存为用户模板，自动版本管理\r\n- `--export-interfaces`：导出完整接口定义 JSON（Grid Spec schema + 63 base + 14 composite + 5 presets）\r\n- `scripts/templates/` 目录：内置文件型模板跟随技能安装（不丢失）\r\n- body 背景智能选择：玻璃卡用 `#000`，普通卡用 card bg 或 `#eef2f7`\r\n\r\n### Changed\r\n- `scripts/module_assembler.py` — 重写为 grid-aware（接受 grid spec 而非扁平模块列表）\r\n- `scripts/template_generator.py` — 重写，删除 `gen_body_*` 硬编码，使用 grid 框架，支持用户模板\r\n- `scripts/visual_editor.py` — 增强为网格感知编辑器 + 字体/字重/字号/字色独立控制 + 拖放图片\r\n- `scripts/content_filler.py` — 更新为 v2 接口\r\n- 所有复合模块图标从 `<div>` 改为 `<img>` 可点击换图\r\n- 通用化模板内容：删除具体来源（刻在石头上/灯球色盘），改用通用占位符\r\n- header-entity/header-dual/qr-card/qr-dual/text-img-right 所有图片均加 `editable-img` 类\r\n- CSS cell style 去重：style dict 直接替换默认 bg/padding，不再叠加\r\n- 编辑器工具栏全面升级：B/I/U + 字体 + 字重 + 字号 + 拾色器 + 背景色 + 透明度\r\n- 数据库目录移至 `.standardization/hug-html/data/`，遵循 R-11/R-22 规范\r\n- `SKILL.md` — 四层架构定义（骨架结构/骨架样式/模块结构+样式/基础样式）\r\n- `references/guide.md` — 完整重写为 v2 网格架构教程\r\n- `references/module-library.md` — 完整重写为两层级模块说明\r\n- 版本号 `1.0.1` → `2.0.1`\r\n\r\n### Fixed\r\n- Grid Spec `cells` 位置统一：`grid.cells[...]` 为标准存储位置，兼容顶层 `cells`\r\n- 单元格 CSS 生成逻辑修正（style dict 重叠问题）\r\n- body 背景硬编码 `#000` 修复：根据模板类型智能选择\r\n- `backdrop-filter` 从 DEFAULT_CARD_STYLE 泄露到普通模板（导致内容裁剪）修复\r\n- 日历 JS 缺失 `<script>` 包裹导致不执行修复\r\n- GBK 编码兼容：所有 print 输出兼容 Windows 终端\r\n- 标签平衡检查改用正则精确匹配，排除 script/style 内容，消除假阳性\r\n- R-20 写作规范修复：guide.md 中英文混排空格\r\n- R-11/R-22 数据目录合规：`data/` → `.standardization/hug-html/data/`\n\nFile v3.2.0:references/examples.md\n\n# examples.md — hug-html 使用示例\r\n\r\n## 示例 1：生成宣传面板 HTML\r\n\r\n```bash\r\npython \"scripts/template_generator.py\" ^\r\n  --output \"data/output/promo.html\" ^\r\n  --type promo\r\n```\r\n\r\n输出：`data/output/promo.html`（粉紫渐变风格宣传面板）\r\n\r\n---\r\n\r\n## 示例 2：生成可视化编辑界面\r\n\r\n```bash\r\npython \"scripts/visual_editor.py\" ^\r\n  --template \"data/output/promo.html\" ^\r\n  --output \"data/output/editor.html\"\r\n```\r\n\r\n在浏览器中打开 `editor.html`：\r\n1. 按 `Ctrl+E` 进入编辑模式\r\n2. 点击任意文字区域直接更新\r\n3. 点击图片可更换 URL\r\n4. 使用顶部工具栏调整颜色/字号/透明度\r\n5. 点击「✅ 生成最终HTML」下载成品\r\n\r\n---\r\n\r\n## 示例 3：用模块库组装 HTML\r\n\r\n```bash\r\n# 查看所有可用模块\r\npython \"scripts/module_assembler.py\" --list\r\n\r\n# 组装：渐变背景 + 大标题 + 封面图 + 分隔线\r\npython \"scripts/module_assembler.py\" ^\r\n  --modules \"color:gradient-purple,font:title-large,image:img-cover,effect:divider\" ^\r\n  --output \"data/output/assembled.html\"\r\n```\r\n\r\n---\r\n\r\n## 示例 4：自动填充模板内容\r\n\r\n```bash\r\n# 自动生成示例内容\r\npython \"scripts/content_filler.py\" ^\r\n  --template \"data/output/promo.html\" ^\r\n  --auto ^\r\n  --output \"data/output/promo-filled.html\"\r\n```\r\n\r\n---\r\n\r\n## 示例 5：用 JSON 文件填充内容\r\n\r\n`data/config/content.json`：\r\n```json\r\n{\r\n  \"title\": \"🎉 2026 新春庆典\",\r\n  \"subtitle\": \"时间：2026年5月28日 14:00\",\r\n  \"highlight\": \"精彩演出 · 美食盛宴 · 幸运抽奖\",\r\n  \"time\": \"2026年5月28日 14:00-18:00\",\r\n  \"location\": \"深圳市南山区创业路 XX 大厦\",\r\n  \"detail\": \"本次活动免费参加，请提前报名。现场提供茶歇和纪念品。\",\r\n  \"footer\": \"© 2026 新春庆典组委会 | 咨询电话：138-XXXX-XXXX\"\r\n}\r\n```\r\n\r\n```bash\r\npython \"scripts/content_filler.py\" ^\r\n  --template \"data/output/promo.html\" ^\r\n  --content \"data/config/content.json\" ^\r\n  --output \"data/output/final.html\"\r\n```\r\n\r\n---\r\n\r\n## 示例 6：应用样式预设\r\n\r\n```bash\r\n# 生成科技风格模板\r\npython \"scripts/template_generator.py\" ^\r\n  --output \"data/output/tech.html\" ^\r\n  --type tech\r\n\r\n# 应用「商务」预设\r\npython \"scripts/content_filler.py\" ^\r\n  --template \"data/output/tech.html\" ^\r\n  --preset business ^\r\n  --output \"data/output/tech-business.html\"\r\n```\r\n\r\n---\r\n\r\n## 示例 7：提取编辑后的内容\r\n\r\n用户在可视化编辑器中更新后导出 HTML，提取内容为 JSON：\r\n\r\n```bash\r\npython \"scripts/content_filler.py\" ^\r\n  --extract \"data/output/editor-output.html\" ^\r\n  --output \"data/config/extracted.json\"\r\n```\n\nFile v3.2.0:references/faq.md\n\n# 常见问题解答（FAQ）\r\n\r\n本文档回答 hug-html 技能的常见问题。\r\n\r\n---\r\n\r\n## 基础问题\r\n\r\n### Q1：这个技能支持哪些 HTML 模板类型？\r\n\r\n**A**：支持 4 种类型：\r\n- `promo` — 宣传面板（渐变背景 + 大标题 + 按钮）\r\n- `product` — 产品介绍（左文右图两栏布局）\r\n- `tech` — 技术说明（代码样式块 + 参数表格）\r\n- `flow` — 流程图表（步骤卡片 + 编号）\r\n\r\n详见 `references/guide.md` 完整参数说明。也可以用 `--list-templates` 查看所有可用模板。\r\n\r\n---\r\n\r\n### Q2：生成的 HTML 文件保存在哪里？\r\n\r\n**A**：默认输出到：\r\n```\r\nC:/Users/sm001/.workbuddy/skills/.standardization/hug-html/data/output/\r\n```\r\n\r\n可通过 `--output` 参数指定自定义路径：\r\n```bash\r\npython \"scripts/template_generator.py\" --output \"C:/path/to/output.html\" --type promo\r\n```\r\n\r\n---\r\n\r\n### Q3：如何自定义样式？\r\n\r\n**A**：有两种方式：\r\n\r\n**方式 A：更新预设配置文件**\r\n```\r\nC:/Users/sm001/.workbuddy/skills/.standardization/hug-html/data/config/style-presets.json\r\n```\r\n\r\n**方式 B：在调用时指定预设**\r\n```bash\r\npython \"scripts/content_filler.py\" preset --template <path> --preset business\r\n```\r\n\r\n可用预设：`business`（商务）、`academic`（科研）、`festive`（喜庆）、`mourning`（丧事）\r\n\r\n详见 `references/style-presets.md`。\r\n\r\n---\r\n\r\n### Q4：如何使用可视化编辑器对 HTML 模板进行可视化编辑并导出最终结果？\r\n\r\n**A**：完整使用流程如下（需要先有一个模板文件）：\r\n\r\n**第 1 步：生成模板文件**\r\n```bash\r\npython \"scripts/template_generator.py\" --output \"../.standardization/hug-html/data/output/template.html\" --type promo\r\n```\r\n\r\n**第 2 步：根据模板生成编辑器 HTML**\r\n```bash\r\npython \"scripts/visual_editor.py\" --template \"../.standardization/hug-html/data/output/template.html\" --output \"../.standardization/hug-html/data/output/editor.html\"\r\n```\r\n> 注意：`--template` 参数必须指向一个已存在的 HTML 模板文件，不能省略。\r\n\r\n**第 3 步：在浏览器中打开编辑器**\r\n双击打开 `editor.html`，页面默认是**只读预览模式**，看到的是最终效果。\r\n\r\n**第 4 步：进入编辑模式**\r\n按键盘 `Ctrl+E`，页面上的可编辑区域会出现**蓝色虚线边框**，此时可以直接点击任何文字进行更新，也可以点击图片区域更换图片。\r\n\r\n**第 5 步：导出最终 HTML**\r\n更新完成后，滚动到页面底部，点击**\"导出 HTML\"** 按钮，浏览器会自动下载一个完整的 HTML 文件，所有 CSS 和 JS 都已内嵌，无需任何外部依赖。\r\n\r\n> 导出的 HTML 文件可以直接双击在浏览器中打开预览，也可以作为最终交付物发送给他人。\r\n\r\n---\r\n\r\n### Q5：如何组合多个模块？\r\n\r\n**A**：使用 `module_assembler.py`：\r\n\r\n```bash\r\npython \"scripts/module_assembler.py\" \\\r\n  --modules \"gradient-purple,title-large,img-cover\" \\\r\n  --output \"C:/temp/assembled.html\"\r\n```\r\n\r\n可用模块列表：\r\n- 颜色：`gradient-purple`, `gradient-blue`, `solid-primary`, `transparent-card`\r\n- 字体：`title-large`, `title-medium`, `body-text`, `caption`, `mono-code`\r\n- 图片：`img-circle`, `img-logo`, `img-cover`, `img-contain`\r\n- 布局：`two-col`, `three-col-cards`, `centered`\r\n- 效果：`fade-in`, `hover-scale`, `divider`, `spacer`\r\n\r\n详见 `references/module-library.md`。\r\n\r\n---\r\n\r\n### Q6：可以给模板填充真实内容吗？\r\n\r\n**A**：可以，有三种方式：\r\n\r\n**方式 A：自动填充示例内容**\r\n```bash\r\npython \"scripts/content_filler.py\" auto --template <path> --output <path>\r\n```\r\n\r\n**方式 B：从 JSON 文件填充**\r\n```bash\r\npython \"scripts/content_filler.py\" fill --template <path> --content \"data/config/content.json\" --output <path>\r\n```\r\n\r\n**方式 C：交互式填充**\r\n```bash\r\npython \"scripts/content_filler.py\" interactive --template <path> --output <path>\r\n```\r\n\r\n---\r\n\r\n### Q7：生成的 HTML 依赖外部 CSS/JS 吗？\r\n\r\n**A**：不依赖。所有生成的 HTML 都是**自包含**的：\r\n- CSS 内嵌在 `<style>` 标签中\r\n- JS 内嵌在 `<script>` 标签中\r\n- 无外部链接、无 CDN 依赖\r\n\r\n可直接在浏览器中打开，或嵌入到其他系统中。\r\n\r\n---\r\n\r\n### Q8：如何查看所有可用的调用链？\r\n\r\n**A**：调用链定义在：\r\n```\r\nC:/Users/sm001/.workbuddy/skills/.standardization/hug-html/data/config/call-chains.json\r\n```\r\n\r\n或使用 skill-sub 查看：\r\n```bash\r\npython \"C:/Users/sm001/.workbuddy/skills/.standardization/skill-sub/skill_sub.py\" list\r\n```\r\n\r\n可用调用链：\r\n- `generate-html-page` — 从需求到完整 HTML 页面\r\n- `edit-html` — 生成可视化编辑界面并导出\r\n- `assemble-with-modules` — 选择模块并组装成完整 HTML\r\n\r\n---\r\n\r\n## 进阶问题\r\n\r\n### Q9：如何扩展新的模板类型？\r\n\r\n**A**：更新 `scripts/template_generator.py`，在 `TEMPLATES` 字典中添加新类型：\r\n\r\n```python\r\nTEMPLATES = {\r\n    \"promo\": {...},\r\n    \"product\": {...},\r\n    \"tech\": {...},\r\n    \"flow\": {...},\r\n    \"your-new-type\": {\r\n        \"title\": \"你的新模板\",\r\n        \"sections\": [...],\r\n        ...\r\n    }\r\n}\r\n```\r\n\r\n然后更新 `references/guide.md` 和 `data/config/template-types.json`。\r\n\r\n---\r\n\r\n### Q10：可视化编辑器的编辑区域怎么定义？\r\n\r\n**A**：在模板 HTML 中，给可编辑元素添加 `class=\"editable\"` 和 `data-field=\"字段名\"`：\r\n\r\n```html\r\n<h1 class=\"editable\" data-field=\"title\">默认标题</h1>\r\n<p class=\"editable\" data-field=\"content\">默认内容</p>\r\n<img class=\"editable\" data-field=\"image\" src=\"...\">\r\n```\r\n\r\n`visual_editor.py` 会自动识别这些元素并生成编辑界面。\r\n\r\n---\r\n\r\n## 故障排查\r\n\r\n### Q11：脚本报错显示中文提示了，但还是不知道怎么修？\r\n\r\n**A**：v2.1.0 起所有脚本输出的错误提示都包含两部分：\r\n\r\n```\r\n❌ [错误类型] 具体的错误描述\r\n  💡 修复建议: 怎么做才能解决\r\n```\r\n\r\n**常见错误码对照表：**\r\n\r\n| 提示开头 | 意思 | 最可能的原因 |\r\n|---------|------|-------------|\r\n| `❌ [参数错误]` | 你给的参数不对或漏了 | 用 `--help` 看完整参数列表 |\r\n| `📁 [文件错误] 找不到文件` | 指定的文件不存在 | 检查路径拼写，用绝对路径 |\r\n| `📄 [JSON错误] 格式错误` | JSON 文件语法有问题 | 检查逗号、引号是否配对 |\r\n| `📋 [模板错误] 未知模板` | 模板名不存在 | 用 `--list-templates` 看可用列表 |\r\n| `⚙️ [内部错误]` | 程序内部报错了 | 基本是参数传错了，检查后重试 |\r\n\r\n如果按照修复建议还是不行，加 `--debug` 参数显示详细堆栈，然后把全部输出发给 AI 协助分析。\r\n\r\n---\r\n\r\n### Q12：报错\"找不到文件\"，但文件确实存在？\r\n\r\n**A**：常见原因和修复：\r\n\r\n1. **路径是相对路径但运行目录不对**\r\n   - 所有脚本需要在技能根目录运行\r\n   - 推荐用绝对路径：`python \"C:/.../scripts/grid_builder.py\" --spec \"C:/.../spec.json\"`\r\n   - 或先用 `cd` 到技能目录\r\n\r\n2. **文件路径有空格**\r\n   - 用双引号包裹路径：`--output \"C:/My Project/output.html\"`\r\n\r\n3. **文件编码不是 UTF-8**\r\n   - 中文 Windows 可能默认 GBK，用记事本另存为 UTF-8\r\n\r\n---\r\n\r\n### Q13：模板生成出来是空的，或者布局错乱？\r\n\r\n**A**：排查步骤：\r\n\r\n1. **网格越界** — 检查 Grid Spec 中单元格的 row/col + rowspan/colspan 是否超出总行列数\r\n2. **CSS Grid 不支持重叠** — 单元格之间不能有位置重叠（审计会自动检查）\r\n3. **backdrop-filter 裁剪** — 毛玻璃类模板的卡片必须有 `overflow: hidden`\r\n4. **JSON 模板文件损坏** — 用 `--audit` 审查生成的 HTML\r\n\r\n---\r\n\r\n### Q14：编辑器打开后按 Ctrl+E 没反应？\r\n\r\n**A**：\r\n1. 检查浏览器控制台（F12）是否有 JS 错误\r\n2. 确认 HTML 中包含 `<script>` 标签且未被广告拦截器屏蔽\r\n3. 尝试用 Chrome/Edge/Firefox 打开（不支持 IE）\r\n\r\n---\r\n\r\n### Q15：我把方案模板保存了，下次怎么调出来直接用？\r\n\r\n**A**：模板固化后（`--save-as my-name`），文件会自动保存在 `data/user-templates/` 目录下，每个模板是一个独立的 JSON 文件，包含完整的 Grid Spec 和自动管理的版本号。下次使用时无需再指定 JSON 路径，直接按名称引用即可：\r\n\r\n```bash\r\npython \"scripts/grid_builder.py\" --spec \"my-name\" -o \"data/output/from-user.html\"\r\n```\r\n\r\n如果保存了同名的模板，系统会自动递增版本号，不会覆盖原有文件。使用 `--list-templates` 可查看所有已保存的用户模板及其版本信息。也可以通过直接更新 `data/user-templates/` 目录下的 JSON 文件来微调模板内容。\r\n\r\n---\r\n\r\n### Q16：我想生成的排版不是网格布局的，这个技能支持吗？\r\n\r\n**A**：**有限支持**。本技能的核心是 CSS Grid 网格系统，适合规整的卡片式排版。如果你需要自由排版（绝对定位/流式布局），建议使用\"自由生成模式\"（模式 B）让 AI 直接手写 HTML，不经过网格引擎。\r\n\r\n---\r\n\r\n### Q17：我做了一个复杂需求但不确定支不支持，怎么办？\r\n\r\n**A**：\r\n1. 先看 SKILL.md 的「能力边界」章节，对照 ✅ 支持 / ❌ 不支持列表\r\n2. 如果 ⚠️ 边界情况中有相似场景，说明可能支持但需要注意\r\n3. 直接执行 `--list-templates`、`--list-modules`、`--list-presets` 查看所有可用资源\r\n4. 如果不确定，直接把需求告诉 AI，AI 会判断能否用本技能实现\r\n\r\n---\r\n\r\n> 本文档遵循 R-19 FAQ 引用规范，由 `skill-standardization v2.38.7` 生成。\r\n\r\n---\r\n\r\n## 错误排查（快速入门）\r\n\r\n> 脚本报错了？不要慌。所有错误提示已改为中文，并附带修复建议。\r\n\r\n| 错误现象 | 可能原因 | 怎么做 |\r\n|----------|---------|--------|\r\n| ❌ [文件错误] 找不到文件 | 路径写错了 | 检查路径是否存在，用绝对路径试试 |\r\n| ❌ [JSON错误] 格式错误 | JSON 语法有问题 | 用 jsonlint.com 校验，或检查多了一个逗号 |\r\n| ❌ [模板错误] 未知模板 | 模板名写错了 | 用 `--list-templates` 查看所有可用模板 |\r\n| ❌ [参数错误] 缺参数 | 命令写少了参数 | 用 `--help` 查看完整参数说明 |\r\n| ⚠️ 审计警告 | HTML 有小问题但不致命 | 检查输出的 [WARN] 内容，逐一修正 |\r\n| 浏览器打开是空白 | HTML 文件编码问题 | 确认文件是 UTF-8 编码保存的 |\r\n\r\n> 完整错误排查指南见 `references/faq.md`。\r\n\r\n> 版本 2.1.2 — 全面中文异常处理：所有脚本输出的英文 Traceback 改为中文错误提示+修复建议；新增能力边界定义和错误排查指引。\n\nFile v3.2.0:references/guide.md\n\n# guide.md — hug-html 完整使用教程 (v2 网格架构)\r\n\r\nHTML 网格化模块生成技能，支持可配置的 N×M 网格布局、单元格合并、双层模块体系。\r\n\r\n---\r\n\r\n## 快速开始\r\n\r\n### 1. 查看所有可用基础模块\r\n\r\n```bash\r\npython \"scripts/grid_builder.py\" --list-modules\r\n```\r\n\r\n### 2. 查看所有内置模板\r\n\r\n```bash\r\npython \"scripts/grid_builder.py\" --list-templates\r\n```\r\n\r\n### 3. 从内置模板生成 HTML\r\n\r\n```bash\r\n# App 推广卡片\r\npython \"scripts/template_generator.py\" --type harmony-app -o \"data/output/my-card.html\"\r\n\r\n# 双端推广卡片\r\npython \"scripts/template_generator.py\" --type harmony-dual -o \"data/output/dual-card.html\"\r\n\r\n# 周历仪表板\r\npython \"scripts/template_generator.py\" --type calendar-dashboard -o \"data/output/calendar.html\"\r\n```\r\n\r\n### 4. 从自定义 Grid Spec 生成\r\n\r\n```bash\r\npython \"scripts/grid_builder.py\" --spec \"data/templates/3x3-merge.json\" -o \"data/output/3x3.html\"\r\n```\r\n\r\n### 5. 生成可视化编辑界面\r\n\r\n```bash\r\npython \"scripts/visual_editor.py\" --template \"data/output/my-card.html\" -o \"data/output/editor.html\"\r\n# 或用内置模板直接生成\r\npython \"scripts/visual_editor.py\" --type harmony-app -o \"data/output/editor.html\"\r\n# 打开后按 Ctrl+E 进入编辑模式\r\n```\r\n\r\n### 6. 内容填充\r\n\r\n```bash\r\n# 自动填充示例内容\r\npython \"scripts/content_filler.py\" auto --template \"data/output/template.html\" --output \"data/output/filled.html\"\r\n\r\n# 用 JSON 文件填充\r\npython \"scripts/content_filler.py\" fill --template \"data/output/template.html\" --content \"data/config/content.json\" --output \"data/output/final.html\"\r\n```\r\n\r\n---\r\n\r\n## 核心架构\r\n\r\n### 四层体系\r\n\r\n```\r\n骨架 (Skeleton)\r\n├── 骨架结构 — N×M 网格、行列数、单元格合并(rowspan/colspan)、gap间距\r\n└── 骨架样式 — 底板背景/渐变/透明度、外阴影、外边框、圆角、内外边距\r\n\r\n模块 (Modules)  ← 模块模板 = {模块结构 + 模块样式} 预置组合\r\n├── 模块结构 — 复合模块的 HTML 骨架\r\n└── 模块样式 — 模块级的视觉样式（由 base 模块提供）\r\n\r\n基础 (Base/Primitives)\r\n└── 基础样式 — 作用于具体文字/元素的 CSS 原语\r\n```\r\n\r\n### 两层级模块体系\r\n\r\n```\r\n基础模块 (base)      →    复合模块 (composite)     →    放入网格格子\r\nCSS 原语                  可复用 HTML 组件\r\n─────────────────────────────────────────────────────\r\nfont-size-xl               header-entity\r\ncolor-dark                 main-title\r\nbg-glass                   qr-card / qr-dual\r\nradius-xl                  feature-panel\r\nshadow-glass               comms-panel\r\nimg-circle                 footer-caption\r\nflex-center                text-block / text-img-right\r\n...                        param-panel / data-table / stat-card\r\n```\r\n\r\n### Grid Spec 格式\r\n\r\n```json\r\n{\r\n  \"name\": \"模板名称\",\r\n  \"desc\": \"描述\",\r\n  \"card_style\": {\r\n    \"max_width\": \"400px\",\r\n    \"bg\": \"rgba(255,255,255,0.82)\",\r\n    \"border_radius\": \"36px\",\r\n    \"padding\": \"24px 20px\"\r\n  },\r\n  \"grid\": {\r\n    \"rows\": 6,\r\n    \"cols\": 1,\r\n    \"gap\": \"0\",\r\n    \"cells\": [\r\n      {\"id\": \"header\", \"row\": 0, \"col\": 0, \"module\": \"composite:header-entity\"},\r\n      {\"id\": \"merged\", \"row\": 1, \"col\": 0, \"colspan\": 2, \"rowspan\": 2,\r\n       \"module\": \"composite:feature-panel\", \"style\": {\"background\": \"#f5f5f5\"}},\r\n      {\"id\": \"custom\", \"row\": 2, \"col\": 0, \"colspan\": 3,\r\n       \"html\": \"<div data-field='custom'>自定义HTML内容</div>\"}\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\n### 单元格合并\r\n\r\n通过 `colspan` 和 `rowspan` 实现合并效果：\r\n- `colspan: 2` — 跨 2 列\r\n- `rowspan: 2` — 跨 2 行\r\n- 两者同时使用 — 跨 2 列 2 行\r\n\r\n---\r\n\r\n## 内置模板列表\r\n\r\n| 模板名 | 来源 | 网格 | 说明 |\r\n|--------|------|------|------|\r\n| `harmony-app` | 刻在石头上 | 6×1 | App 推广毛玻璃卡片 |\r\n| `harmony-dual` | 灯球色盘 | 6×1 | 双端（应用+元服务）推广卡片 |\r\n| `calendar-dashboard` | 智能周历 | 5×3 | **完全交互式仪表板**：年份控制、周末规则、假日区间CRUD、补班管理、每周日历视图、总工日统计 |\r\n| `promo` | 原 promo 模板 | 3×3 | 活动宣传面板（卡片网格） |\r\n| `3x3-merge` | — | 3×3 | 单元格合并演示 |\r\n| `4x2-app-card` | — | 4×2 | 应用推广卡（左右分栏） |\r\n| `3x3-mixed-styles` | — | 3×3 | 每格不同样式演示 |\r\n\r\n---\r\n\r\n## 基础模块 (Base Modules)\r\n\r\n```\r\n# 字体大小: font-size-xxl / xl / lg / md / sm / xs / xxs\r\n# 字体颜色: color-dark / mid / light / white / primary / gradient-text\r\n# 背景: bg-white / transparent / light-blue / glass / dark / gradient-*\r\n# 圆角: radius-sm / md / lg / xl / full / pill\r\n# 间距: pad-xs / sm / md / lg / xl\r\n# 阴影: shadow-sm / md / lg / glass\r\n# 边框: border-glass / light / bottom / divider-*\r\n# 图片: img-circle / cover / contain / logo\r\n# 布局: flex-center / between / col / text-center / text-left / gap-*\r\n# 透明度: opacity-100 / 90 / 70 / 50\r\n# 动画: anim-fade / slide / hover-scale\r\n```\r\n\r\n---\r\n\r\n## 复合模块 (Composite Modules)\r\n\r\n| 模块名 | 用途 | 槽位 (data-field) |\r\n|--------|------|-------------------|\r\n| `header-entity` | 单实体头部（图标+名称+标签） | entity-name, entity-badge |\r\n| `header-dual` | 双实体头部（左应用+右元服务） | app-name, app-badge, service-name, service-badge |\r\n| `main-title` | 渐变文字主标题+副标题+底边线 | main-title, main-sub |\r\n| `qr-card` | 单张二维码卡片 | qr-image, qr-label, qr-hint |\r\n| `qr-dual` | 双二维码并排 | qr-image-left/right, qr-label-left/right |\r\n| `feature-panel` | 特性面板（多行图标+文字） | feature-icon-N, feature-text-N |\r\n| `comms-panel` | 多端通信面板（设备标签+协议） | 设备标签内容 |\r\n| `footer-caption` | 底部分隔线+标签组 | footer-tag-1/2/3 |\r\n| `small-note` | 极小注释文字 | note-text |\r\n| `text-block` | 纯文本块（标题+多行正文） | tb-title, tb-body, tb-body-2 |\r\n| `text-img-right` | 左文右图组合 | ti-title, ti-desc |\r\n| `param-panel` | 参数配置面板 | param-title, param-1/2 |\r\n| `data-table` | 数据表格（表头+行） | th-1/2, td-row*-col* |\r\n| `stat-card` | 数据统计卡片 | stat-label, stat-value |\r\n\r\n---\r\n\r\n## 可视化编辑器功能\r\n\r\n- **Ctrl+E** — 进入/退出编辑模式\r\n- **格子选择** — 点击格子 → 弹出属性面板\r\n- **字段编辑** — 点击带 data-field 的文字区域直接编辑\r\n- **工具栏** — 加粗/斜体/下划线、字色、背景色、字号、透明度\r\n- **网格概览** — 点击\"📋 网格\"按钮查看所有格子\r\n- **格子属性** — 右下角面板可调整底板颜色和内边距\r\n- **Ctrl+S** — 导出最终 HTML\n\nFile v3.2.0:references/LICENSE.md\n\nMIT License\n\nCopyright (c) {year} {author}\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nFile v3.2.0:references/module-library.md\n\n# module-library.md — hug-html 组件式模块库 v3.0\r\n\r\n## 架构总览\r\n\r\n```\r\n骨架 (Skeleton) — N×M 网格 + 3级约束(fill/fit/clip)\r\n  └─ 单元格 (Cell) — 放置组件组合\r\n       ├─ 组件 (Component) — 8种原子类型\r\n       │    ├─ text     纯文本（title/body/caption）\r\n       │    ├─ image    图片（fit/cover/clip）\r\n       │    ├─ icon     图标（FontAwesome/SVG）\r\n       │    ├─ qrcode   二维码\r\n       │    ├─ table    数据表格\r\n       │    ├─ divider  分割线\r\n       │    ├─ spacer   空白占位\r\n       │    └─ group    组合容器（递归）\r\n       └─ 约束系统 — fill/fit/clip 递归应用\r\n```\r\n\r\n**核心变化**（v2 → v3）：\r\n- 旧：14 个预置复合模块，每个固定 HTML 结构 → 硬编码，难以定制\r\n- 新：8 个原子组件 + 声明式组合 → 自由搭配，无限可能\r\n\r\n---\r\n\r\n## 组件类型\r\n\r\n### text — 纯文本\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"text\"` |\r\n| `content` | string | ✅ | 文本内容 |\r\n| `variant` | string | ❌ | `title`(标题) / `body`(正文) / `caption`(注释)，默认 `body` |\r\n| `style` | object | ❌ | 覆盖样式（font_size, font_weight, color 等） |\r\n\r\n**变体默认样式：**\r\n\r\n| 变体 | font_size | font_weight | color |\r\n|------|-----------|-------------|-------|\r\n| title | 18px | 700 | #1a1a2e |\r\n| body | 14px | 400 | #4a4a6a |\r\n| caption | 12px | 300 | #8888aa |\r\n\r\n### image — 图片\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"image\"` |\r\n| `src` | string | ✅ | 图片URL |\r\n| `alt` | string | ❌ | 替代文字 |\r\n| `constraint` | string | ❌ | `fit`(默认) / `cover` / `fill` |\r\n| `aspect` | string | ❌ | 宽高比，如 `\"1/1\"`、`\"16/9\"` |\r\n| `style` | object | ❌ | 额外CSS |\r\n\r\n### icon — 图标\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"icon\"` |\r\n| `name` | string | ✅ | 图标名（如 `star`、`heart`） |\r\n| `family` | string | ❌ | `fa`(FontAwesome) / `svg`(内联)，默认 `fa` |\r\n| `size` | string | ❌ | 尺寸，如 `\"24px\"`，默认 `24px` |\r\n| `color` | string | ❌ | 颜色，默认 `#1a1a2e` |\r\n\r\n### qrcode — 二维码\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"qrcode\"` |\r\n| `content` | string | ✅ | 二维码内容（URL/文本） |\r\n| `size` | string | ❌ | 尺寸如 `\"120px\"`，默认 `120px` |\r\n| `label` | string | ❌ | 二维码下方标注文字 |\r\n\r\n### table — 数据表格\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"table\"` |\r\n| `headers` | string[] | ✅ | 表头数组 |\r\n| `rows` | string[][] | ✅ | 数据行二维数组 |\r\n| `style` | object | ❌ | 额外CSS |\r\n\r\n### divider — 分割线\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"divider\"` |\r\n| `height` | string | ❌ | 线粗，默认 `\"1px\"` |\r\n| `color` | string | ❌ | 颜色，默认 `\"#e0e0e0\"` |\r\n| `style_type` | string | ❌ | `solid` / `dashed` / `dotted`，默认 `solid` |\r\n\r\n### spacer — 空白占位\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"spacer\"` |\r\n| `width` | string | ❌ | 宽度，默认 `\"100%\"` |\r\n| `height` | string | ❌ | 高度，默认 `\"auto\"` |\r\n\r\n### group — 组合容器（递归）\r\n\r\n| 字段 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| `type` | string | ✅ | `\"group\"` |\r\n| `direction` | string | ❌ | `\"row\"`(默认) / `\"column\"` |\r\n| `align` | string | ❌ | 主轴对齐：`left` / `center` / `right` / `top` / `bottom` |\r\n| `cross_align` | string | ❌ | 交叉轴对齐：`stretch`(默认) / `center` / `flex-start` / `flex-end` |\r\n| `ratios` | number[] | ❌ | 子组件flex比例，如 `[1, 2]` 表示1/3和2/3 |\r\n| `children` | array | ✅ | 子组件列表 |\r\n| `style` | object | ❌ | 容器额外CSS |\r\n\r\n---\r\n\r\n## 约束系统\r\n\r\n三种约束模式递归应用于：**骨架 → 模块 → 组件**\r\n\r\n| 模式 | 枚举值 | CSS 行为 | 适用场景 |\r\n|------|--------|----------|---------|\r\n| 完全贴合 | `fill` | `width/height:100%` 拉伸填充 | 背景图、全宽文字 |\r\n| 等比缩放 | `fit` | `max-width/max-height:100%` + `object-fit:contain` | 图标、Logo |\r\n| 裁剪遮挡 | `clip` | `position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);overflow:hidden` | 头像、封面图 |\r\n\r\n约束在 Spec 中的配置位置：\r\n\r\n```json\r\n// 骨架对模块的约束（cell级别）\r\n{\"row\": 0, \"constraint\": \"fit\", ...}\r\n\r\n// 组件级别的约束\r\n{\"type\": \"image\", \"constraint\": \"clip\", \"aspect\": \"1/1\", ...}\r\n```\r\n\r\n---\r\n\r\n## Grid Spec 完整示例\r\n\r\n```json\r\n{\r\n  \"name\": \"图文卡片\",\r\n  \"card_style\": {\r\n    \"max_width\": \"400px\",\r\n    \"bg\": \"rgba(255,255,255,0.85)\",\r\n    \"backdrop\": \"blur(20px)\",\r\n    \"border_radius\": \"24px\",\r\n    \"shadow\": \"0 12px 40px rgba(0,0,0,0.12)\",\r\n    \"padding\": \"20px\"\r\n  },\r\n  \"grid\": {\r\n    \"rows\": 3, \"cols\": 3, \"gap\": \"12px\",\r\n    \"cells\": [\r\n      {\r\n        \"id\": \"hero\", \"row\": 0, \"col\": 0, \"rowspan\": 2, \"colspan\": 2,\r\n        \"constraint\": \"fill\",\r\n        \"padding\": \"8px\",\r\n        \"components\": [\r\n          {\r\n            \"type\": \"image\",\r\n            \"src\": \"https://picsum.photos/200\",\r\n            \"constraint\": \"cover\",\r\n            \"style\": {\"border_radius\": \"12px\"}\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        \"id\": \"info\", \"row\": 0, \"col\": 2, \"rowspan\": 2,\r\n        \"direction\": \"column\",\r\n        \"ratios\": [1, 2, 1],\r\n        \"components\": [\r\n          {\"type\": \"icon\", \"name\": \"star\", \"size\": \"28px\", \"color\": \"#ffd700\"},\r\n          {\"type\": \"group\", \"direction\": \"column\", \"children\": [\r\n            {\"type\": \"text\", \"variant\": \"title\", \"content\": \"卡片标题\"},\r\n            {\"type\": \"text\", \"variant\": \"body\", \"content\": \"这里是正文描述，展示组件式组合的效果。\"}\r\n          ]},\r\n          {\"type\": \"text\", \"variant\": \"caption\", \"content\": \"¥ 99.00\"}\r\n        ]\r\n      },\r\n      {\"id\": \"div\", \"row\": 2, \"col\": 0, \"colspan\": 3,\r\n       \"components\": [{\"type\": \"divider\"}]}\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\n---\r\n\r\n## 命令行\r\n\r\n```bash\r\n# 列出所有组件类型\r\npython scripts/module_assembler.py --list-components\r\n\r\n# 导出接口定义JSON\r\npython scripts/module_assembler.py --export-interfaces interfaces.json\r\n\r\n# 生成组件系统演示HTML\r\npython scripts/module_assembler.py --demo\r\n\r\n# 旧模块系统（向后兼容）\r\npython scripts/grid_builder.py --list-modules\r\npython scripts/grid_builder.py --spec <spec> -o <output.html>\r\n```\r\n\r\n---\r\n\r\n## 从旧格式迁移\r\n\r\n旧版 `\"module\": \"composite:xxx\"` 格式仍然支持，但建议迁移到组件式格式。\r\n\r\n**迁移示例：text-img-right（左文右图）**\r\n\r\n旧格式：\r\n```json\r\n{\"module\": \"composite:text-img-right\"}\r\n```\r\n\r\n新格式：\r\n```json\r\n{\r\n  \"direction\": \"row\",\r\n  \"ratios\": [1, 1],\r\n  \"components\": [\r\n    {\"type\": \"text\", \"variant\": \"title\", \"content\": \"标题\"},\r\n    {\"type\": \"image\", \"src\": \"https://...\", \"constraint\": \"fit\", \"aspect\": \"1/1\"}\r\n  ]\r\n}\r\n```\n\nFile v3.2.0:references/permissions.md\n\n# 基于 skill-standardization 渐进式披露规范的权限说明\r\n\r\n本文档由 `skill-standardization` 权限扫描器自动维护。\r\n\r\n## 风险等级\r\n\r\n**LOW**（实际权重: 0.0）\r\n\r\n## 权限总览\r\n\r\n| 权限类别 | 涉及项数 | 风险等级 |\r\n|-----------|----------|----------|\r\n| `subprocess_call` | 0 项 | ✅ LOW |\r\n| `file_delete` | 0 项 | ✅ LOW |\r\n| `network_access` | 0 项 | ✅ LOW |\r\n| `sensitive_access` | 0 项 | ✅ LOW |\r\n| `critical_write` | 0 项 | ✅ LOW |\r\n\r\n## 高权限操作说明\r\n\r\n- 无。所有文件操作均限制在技能独立数据目录内，不涉及系统关键目录、网络监听或外部请求。\r\n\r\n## 权限详细说明\r\n\r\n### 子进程调用（subprocess）\r\n\r\n**无**。\r\n\r\n\r\n### 文件删除\r\n\r\n**无**。\r\n\r\n\r\n### 网络访问\r\n\r\n**无**。\r\n\r\n\r\n### 敏感信息访问\r\n\r\n**无**。\r\n\r\n\r\n### 关键位置写入\r\n\r\n**无**。\r\n\r\n\r\n## 授权方式说明\r\n\r\n- **immediate（即时授权）**：每次执行前需获得用户批准\r\n- **unified（统一授权）**：首次执行前获得用户批准，后续不再询问\r\n- **silent（静默授权）**：无需用户交互，自动执行并记录\r\n\r\n<!-- fp:risk=LOW|sensitive=0|critical_write=0|network=0|delete=0|subprocess=0|issues=0 -->\r\n---\r\n\r\n# 权限说明\r\n\r\n本文档说明 hug-html 技能的权限需求、各操作的权限权重及风险评级。\r\n\r\n## 权限权重说明\r\n\r\n| 操作 | 权限权重 | 说明 |\r\n|------|----------|------|\r\n| Read（读文件） | LOW | 读取输入文件、模块库、样式预设，无写入操作 |\r\n| Write（写文件） | MEDIUM | 将输出 HTML 文件写入 `../.standardization/hug-html/data/output/`，仅限指定目录 |\r\n| Bash（运行脚本） | MEDIUM | 运行 `scripts/` 目录内的 Python 脚本，不执行系统命令或外部代码 |\r\n| 网络访问 | NONE | 不访问任何外部网络，不发送数据 |\r\n\r\n## 风险评级\r\n\r\n本技能风险等级：**LOW**\r\n\r\n**原因**：\r\n- 所有操作仅限于本地文件读写\r\n- 不访问系统敏感路径（如 `~/.ssh/`、`~/.aws/`）\r\n- 不向外部网络发送任何数据\r\n- 不执行用户 Shell 配置文件（`.bashrc` / `.zshrc`）\r\n\r\n## 敏感信息访问声明\r\n\r\n本技能：\r\n- **不会**访问系统敏感路径或凭证文件\r\n- **不会**向外部网络发送数据\r\n- **不会**执行用户 Shell 配置文件（`.bashrc` / `.zshrc`）\r\n\r\n---\r\n\r\n> 本文档遵循 R-15/R-16 权限说明规范，由 `skill-standardization v2.38.6` 生成。\n\nArchive v3.0.4: 24 files, 89626 bytes\n\nFiles: _meta.json (127b), references/antipatterns.md (3220b), references/architecture.md (2359b), references/call-chains.md (6196b), references/changelog.md (8754b), references/examples.md (2632b), references/faq.md (10802b), references/guide.md (6900b), references/module-library.md (7290b), references/permissions.md (1189b), references/style-presets.md (2865b), scripts/content_filler.py (11919b), scripts/gen_calendar_spec.py (20913b), scripts/gen_test_grids.py (8072b), scripts/grid_builder.py (88198b), scripts/module_assembler.py (22216b), scripts/template_generator.py (4845b), scripts/templates/3x3-merge.json (2428b), scripts/templates/3x3-mixed-styles.json (5518b), scripts/templates/4x2-app-card.json (2186b), scripts/templates/calendar-dashboard-interactive.json (20108b), scripts/visual_editor.py (21305b), skill-card.md (2693b), SKILL.md (10409b)\n\nFile v3.0.4:SKILL.md\n\n---\r\nname: hug-html\r\ntags: ['html', 'grid', 'template', 'visual-editor', 'module-library', 'style-presets', 'layout', 'chinese-error-handling']\r\nversion: 3.0.4\r\nauthor: Ldxs\r\nlicense: MIT\r\ndescription: 8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation audit, user template save-as, Chinese error handling\r\nsensitive_access: false\r\ncritical_write: false\r\npermission_weight: LOW\r\ndata_dir: ../.standardization/hug-html/data/\r\nexternal_data_dir: true\r\ntrigger: 生成 HTML 模板/编辑 HTML/HTML 模块/网格布局/单元格合并/可视化编辑/输出自包含 HTML\r\ntrigger_negative: 只是简单文本编辑/不涉及 HTML 生成/使用其他框架\r\nmeta_field_sync: true\r\n---\r\n# hug-html\r\n\r\n> → 详见 `references/antipatterns.md`\r\n> → 详见 `references/faq.md`\r\n> → 详见 `references/architecture.md`\r\n\r\n## 触发场景\r\n\r\n当用户提到以下内容时触发本技能：\r\n\r\n- \"生成 HTML 模板\" / \"HTML template\" / \"hug html\"\r\n- \"编辑 HTML\" / \"可视化编辑 HTML\" / \"visual edit HTML\"\r\n- \"HTML 模块\" / \"HTML module library\"\r\n- \"网格布局\" / \"grid layout\" / \"N×M 网格\"\r\n- \"单元格合并\" / \"rowspan\" / \"colspan\"\r\n- 输出格式：自包含 HTML 文件（毛玻璃卡片风格）\r\n\r\n**复杂需求触发示例**（以下场景同样支持）：\r\n- \"我需要一个APP推广卡片，要有个二维码—可以用，支持\"\r\n- \"帮我做一个带表格和参数配置的HTML面板—支持，用 data-table + param-panel 模块\"\r\n- \"生成一个双端对比的推广页面—支持，用 header-dual + qr-dual\"\r\n- \"这个模板我想保存下来以后用—支持，用 --save-as 固化\"\r\n- \"给我生成的HTML加一个可视化编辑界面—支持，用 visual_editor.py\"\r\n\r\n**不触发**：\r\n- 用户仅询问 HTML 语法概念，无文件生成需求\r\n- 用户明确请求其他特定技能\r\n\r\n## 核心能力\r\n\r\n> 📚 **渐进式加载**：本技能采用渐进式 MD 体系，`SKILL.md` 为入口（≤230行），详细内容拆分到 `references/*.md` 按需加载。\r\n\r\n| # | 能力 | 说明 |\r\n|---|------|------|\r\n| 1 | **骨架结构** | N×M 网格、行列数、单元格合并（rowspan/colspan）、gap 间距 |\r\n| 2 | **骨架约束** | 3级约束（fill/fit/clip），递归传递到组件级别 |\r\n| 3 | **组件体系** | 8种原子组件（text/image/icon/qrcode/table/divider/spacer/group），自由组合 |\r\n| 4 | **组合逻辑** | 方向(row/column)、比例(ratios)、对齐(align)、8方向位置 |\r\n| 5 | **方案模板库** | 内置 7+ 预置{骨架+组件+样式}组合 + **用户可自定义固化** |\r\n| 6 | **样式预设** | 5 种内置风格：商务/科研/喜庆/丧事/技术，一键切换配色字体 |\r\n| 7 | **基础编辑** | 每个文字元素独立控制：字体家族(8种)/字重(100-900)/字号(9-48px)/字色/透明度 |\r\n| 8 | **图片编辑** | 点击输入URL + 拖放文件替换，所有图片组件均支持 |\r\n| 9 | **生成后审计** | 自动检查 HTML 结构完整性、标签平衡、图片属性、网格越界、渲染风险 |\r\n| 10 | **统一接口** | `--export-interfaces` 导出完整接口定义 JSON，大模型可直接理解 |\r\n| 11 | **方案模板固化** | `--save-as <名>` 将任意生成固化为用户模板，后续按名引用 |\r\n| 12 | **自由生成模式** | AI 参考组件库，理解需求确定骨架→组合组件→约束→生成→审计 |\r\n| 13 | **向后兼容** | 旧格式 `\"module\": \"composite:xxx\"` 仍然支持 |\r\n| 14 | **中文错误处理** | 所有脚本内置中文错误提示、参数校验前置、安全文件操作、调试模式 |\r\n\r\n### 渐进式文件索引\r\n\r\n| 文件名 | 位置 | 说明 |\r\n|--------|------|------|\r\n| `references/antipatterns.md` | 反模式 | 常见错误做法及正确做法 |\r\n| `references/architecture.md` | 架构设计 | 四层架构体系详解 |\r\n| `references/call-chains.md` | 调用链 | skill-sub 调用链定义 |\r\n| `references/changelog.md` | 更新日志 | 版本历史变更记录 |\r\n| `references/examples.md` | 示例 | 使用示例 |\r\n| `references/faq.md` | FAQ | 常见问题解答 |\r\n| `references/guide.md` | 使用指南 | 完整使用教程 |\r\n| `references/module-library.md` | 模块库 | 组件系统 + 约束系统 |\r\n| `references/permissions.md` | 权限说明 | 权限扫描报告和风险说明 |\r\n| `references/style-presets.md` | 样式预设 | 样式预设系统说明 |\r\n\r\n## 限制\r\n\r\n> **明确这个技能能做什么、不能做什么，避免使用时\"不知道支不支持\"。**\r\n\r\n### ✅ 支持的场景\r\n\r\n| 场景 | 说明 | 示例触发词 |\r\n|------|------|-----------|\r\n| 生成推广卡片 | 应用推广、活动宣传、产品介绍的毛玻璃卡片 | \"生成一个APP推广HTML卡片\" |\r\n| 生成信息面板 | 带表格、参数、二维码的信息展示面板 | \"做一个带二维码和参数描述的HTML\" |\r\n| 生成可视化编辑模板 | 带 Ctrl+E 可编辑的 HTML | \"生成一个可视化编辑的HTML模板\" |\r\n| 生成日历/周历仪表板 | 假日管理、年份控制、工日统计的交互仪表板 | \"生成一个周历交互HTML\" |\r\n| 生成双端对比卡片 | 左应用右元服务/双实体的对比展示 | \"生成一个双端推广卡片\" |\r\n| 内容填充 | 自动/手动填充 data-field 标记的文字和图片 | \"给这个HTML模板填充示例内容\" |\r\n| 方案模板固化 | 将当前设计保存为可复用的用户模板 | \"把这个模板保存为 my-card\" |\r\n| 自由创作 HTML | AI 参考模块库直接编写自包含 HTML | \"帮我写一个毛玻璃风格的首页\" |\r\n\r\n### ❌ 不支持 / 不适合的场景\r\n\r\n| 场景 | 为什么不支持 | 替代方案 |\r\n|------|-------------|---------|\r\n| 复杂前端应用（SPA / 数据可视化大屏） | 本技能面向静态 HTML+CSS 卡片，不支持路由/状态管理/API调用 | 手写 React/Vue 项目 |\r\n| 多页面 HTML 站点 | 本技能是单页面自包含 HTML 生成器，不处理页面间导航 | 手写或使用静态站点生成器 |\r\n| PDF / 图片输出 | 本技能输出 HTML 文件，不直接生成图片或 PDF | 生成 HTML 后用浏览器打印或截图 |\r\n| 外部 CSS/JS 框架集成 | 本技能强调零外部依赖的自包含 HTML | 手动引入 CDN 或在 `scripts` 字段写自定义 JS |\r\n| 非网格布局的自由排版 | 本技能基于 CSS Grid 网格系统，不适合绝对定位的自由排版 | 使用自由生成模式直接手写 HTML |\r\n| 后端交互 / 数据库读写 | 本技能是纯前端 HTML，无后端能力 | 搭配 Node.js / Flask 等后端框架 |\r\n\r\n### ⚠️ 需要注意的边界情况\r\n\r\n| 情况 | 说明 |\r\n|------|------|\r\n| 网格越界 | 单元格的 row/col 索引 + rowspan/colspan 不能超过网格总行列数，否则 CSS Grid 会异常渲染 |\r\n| 毛玻璃裁剪 | `backdrop-filter` 需要容器有 `overflow:hidden`，否则内容可能被裁剪 |\r\n| JSON 模板路径 | `--spec` 参数支持绝对路径、相对路径和内置模板名；文件不存在会输出中文错误提示 |\r\n| 文件编码 | 所有输入输出文件必须为 UTF-8 编码；其他编码可能导致乱码 |\r\n| 编辑模式兼容性 | Ctrl+E 编辑模式需要现代浏览器（Chrome/Edge/Firefox），不支持 IE |\r\n\r\n## 快速开始\r\n\r\n```bash\r\n# 列出所有组件类型（v3 新！）\r\npython scripts/module_assembler.py --list-components\r\n\r\n# 导出完整的组件接口定义\r\npython scripts/module_assembler.py --export-interfaces \"data/output/interfaces.json\"\r\n\r\n# 生成组件系统演示HTML\r\npython scripts/module_assembler.py --demo\r\n\r\n# 查看所有模板（向后兼容）\r\npython scripts/grid_builder.py --list-templates\r\n\r\n# 从内置模板生成 HTML\r\npython scripts/template_generator.py --type harmony-app -o \"data/output/card.html\"\r\n\r\n# 使用自定义 Grid Spec（支持新旧两种格式）\r\npython scripts/grid_builder.py --spec \"data/templates/3x3-merge.json\" -o \"data/output/grid.html\"\r\n\r\n# 导出完整接口定义（供大模型参考）\r\npython scripts/grid_builder.py --export-interfaces \"data/output/interfaces.json\"\r\n```\r\n\r\n## 工作流程\r\n\r\n本技能支持两种生成模式，**每次生成完成后必须输出生成说明**（`print_generation_guide()` 自动输出）：\r\n\r\n### 模式 A：结构化模式（推荐）\r\n1. **解析需求** — 理解用户需要的布局（行列数、合并、内容类型）\r\n2. **选择/创建 Grid Spec** — 选择内置模板或用 JSON 定义自定义网格\r\n3. **引用模块** — 从模块库中选择 base/composite 模块放入格子\r\n4. **生成 HTML** — 调用 `grid_builder.py` 生成，**自动执行审计**\r\n5. **生成编辑界面**（可选）— 调用 `visual_editor.py`\r\n6. **内容填充**（可选）— 调用 `content_filler.py`\r\n7. **输出结果** — 用 `preview_url` 展示，`deliver_attachments` 交付\r\n\r\n### 模式 B：自由生成模式（省 token）\r\n\r\n> **🛑 [MANDATORY] 每次生成完成后，必须阅读 `print_generation_guide()` 输出的生成说明并向用户展示。**\r\n1. **参考模块库** — 先执行 `python scripts/grid_builder.py --list-modules` 查看可用的 base/composite 模块\r\n2. **参考模板范例** — 先执行 `python scripts/grid_builder.py --list-templates` 查看内置模板风格\r\n3. **参考样式预设** — 先执行 `python scripts/grid_builder.py --list-presets` 查看可用风格\r\n4. **AI 自由生成** — 基于上述参考，直接编写自包含 HTML（使用 data-field 标记可编辑区域）\r\n5. **保存到文件** — 使用 Write 工具写入 `data/output/`\r\n6. **审计 [MANDATORY]** — 调用 `python scripts/grid_builder.py --audit <文件>`，不可跳过\r\n7. **输出结果** — 用 `preview_url` 展示\r\n\r\n> 自由生成模式适用场景：简单卡片、快速原型、不需要网格拆分的页面。\r\n> 结构化模式适用场景：复杂网格布局、需要批量生产、可复用模板。\r\n\r\n## 权限说明\r\n\r\n| 工具 | 访问级别 | 用途 |\r\n|------|----------|------|\r\n| Read | 只读 | 读取 Grid Spec、模块库、样式预设 |\r\n| Write | 写入 | 将输出 HTML 写入 `data/output/` |\r\n| Bash | 受限 | 运行内部处理脚本（限制在 `scripts/` 目录内） |\r\n\r\n- **不会**访问系统敏感路径或凭证文件\r\n- **不会**向外部网络发送数据\r\n- **不会**执行用户 Shell 配置文件\n\nFile v3.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn75zfd51df61ajdyqtgvrs1hx84s4q6\",\n  \"slug\": \"hug-html\",\n  \"version\": \"3.0.4\",\n  \"publishedAt\": 1780371458734\n}\n\nFile v3.0.4:references/antipatterns.md\n\n# 反模式手册\r\n\r\n本文档列出 hug-html 技能的常见反模式及正确做法。\r\n\r\n---\r\n\r\n## 反模式列表\r\n\r\n### ❌ 错误：在 SKILL.md 中粘贴大段代码\r\n\r\n**问题**：SKILL.md 应保持 ≤230 行，大段代码会导致文件臃肿，违反 R-17 渐进式加载规范。\r\n\r\n**正确做法**：将代码移到 `scripts/` 目录，在 SKILL.md 中描述调用方式。\r\n\r\n```markdown\r\n❌ 错误示例：\r\n```python\r\ndef generate_template():\r\n    # ... 50行代码 ...\r\n```\r\n\r\n✅ 正确示例：\r\n调用 `scripts/template_generator.py --output <path> --type <promo|product|tech|flow>`\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：使用相对路径 `./scripts/foo.py`\r\n\r\n**问题**：相对路径在不同工作目录下会解析错误，导致脚本找不到。\r\n\r\n**正确做法**：使用相对路径（如 `scripts/foo.py`），skill-standardization 审计工具会自动拼接安装目录。\r\n\r\n```markdown\r\n❌ 错误：python \"C:/Users/.../scripts/template_generator.py\"\r\n✅ 正确：python scripts/template_generator.py --output ../.standardization/hug-html/data/output/result.html\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：在 SKILL.md 中写\"详见脚本注释\"\r\n\r\n**问题**：用户无法看到脚本注释，且脚本注释容易过时。\r\n\r\n**正确做法**：将详细说明写入 `references/guide.md`，SKILL.md 只写必要信息。\r\n\r\n---\r\n\r\n### ❌ 错误：产出物路径指向安装目录\r\n\r\n**问题**：`artifact_paths` 应指向数据目录（`../.standardization/hug-html/data/output/`），而非安装目录下的 `data/output/`。\r\n\r\n**正确做法**：\r\n\r\n在 `SKILL.md` frontmatter 中：\r\n```yaml\r\nartifact_paths: [\"../.standardization/hug-html/data/output/\"]\r\n```\r\n\r\n在脚本中：\r\n```python\r\nfrom pathlib import Path\r\noutput_dir = Path(__file__).parent.parent.parent / \".standardization\" / \"hug-html\" / \"data\" / \"output\"\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：模块名拼写错误\r\n\r\n**问题**：`SKILL.md` 或 `references/` 中引用的模块名与实际文件名不一致，导致用户调用失败。\r\n\r\n**正确做法**：每次提及脚本名时，用绝对路径验证文件是否存在。\r\n\r\n```\r\n✅ 正确：python \"C:/Users/sm001/.workbuddy/skills/hug-html/scripts/template_generator.py\" --help\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：术语不一致\r\n\r\n**问题**：同一概念混用多个术语（如\"配置\"/\"配置\"、\"填充内容\"/\"填内容\"），增加理解成本。\r\n\r\n**正确做法**：全文统一术语。\r\n\r\n| 概念 | 统一术语 | 错误术语 |\r\n|------|----------|----------|\r\n| configuration | 配置 | 配置、setting |\r\n| fill content | 填充内容 | 填内容、填入 |\r\n| module | 模块 | 组件、component |\r\n| preset | 预设 | 预置、preset |\r\n| update | 更新 | 更新、modify |\r\n\r\n---\r\n\r\n## 检查清单\r\n\r\n- [ ] SKILL.md ≤ 230 行？\r\n- [ ] 无大段代码（>10行）直接在 SKILL.md 中？\r\n- [ ] 所有路径均为相对路径？\r\n- [ ] 无\"详见脚本注释\"等推卸责任的描述？\r\n- [ ] `artifact_paths` 指向数据目录而非安装目录？\r\n- [ ] 所有脚本名拼写正确且文件存在？\r\n- [ ] 术语全文统一？\r\n\r\n---\r\n\r\n> 本文档遵循 R-18 反模式引用规范，由 `skill-standardization v2.38.6` 生成。\n\nFile v3.0.4:references/architecture.md\n\n# 四层架构（细化）\r\n\r\nhug-html 采用四层架构设计，从抽象到具体逐层约束。\r\n\r\n```\r\n骨架 (Skeleton)\r\n├── 骨架结构 — N×M 网格、行列数、单元格合并(rowspan/colspan)、gap间距\r\n├── 骨架样式 — 底板背景/渐变/透明度、外阴影、外边框、圆角、内外边距\r\n└── 约束模式 — fill(完全贴合) / fit(等比缩放) / clip(裁剪遮挡)\r\n\r\n模块 (Module)  ← 组件组合 = {组件声明 + 约束 + 比例} 自由搭配\r\n├── 组件组合 — 8种原子组件自由搭配（text/image/icon/qrcode/table/divider/spacer/group）\r\n├── 组合逻辑 — 方向(row/column)、比例(ratios)、对齐(align/cross_align)\r\n└── 约束传递 — 骨架约束模块 → 模块约束组件（递归）\r\n\r\n组件 (Component)  ← 8种原子类型\r\n├── text     — 纯文本（title/body/caption 三种变体）\r\n├── image    — 图片（支持 fit/cover/fill 填充模式）\r\n├── icon     — 图标（FontAwesome / SVG内联）\r\n├── qrcode   — 二维码（API生成）\r\n├── table    — 数据表格（表头+行）\r\n├── divider  — 分割线\r\n├── spacer   — 空白占位\r\n└── group    — 组合容器（递归包含子组件）\r\n\r\n基础样式 (Base)\r\n└── CSS原语 — 字体/颜色/渐变/圆角/间距/阴影/边框\r\n```\r\n\r\n**编辑粒度**（可视化编辑器内）：\r\n| 可更新 | 不可更新（需改 Grid Spec） |\r\n|--------|---------------------------|\r\n| ✓ 图片内容（点击输入URL / 拖放文件替换） | ✗ 骨架结构（行列数、合并方式、gap） |\r\n| ✓ 基础样式（每个文字元素独立：字体家族/字重/字号/字色） | ✗ 模块结构（组件的HTML骨架） |\r\n| ✓ 模块样式（通过 cell style 覆盖背景色/内边距） | ✗ 骨架样式（底板色/外阴影等） |\r\n\r\n**大模型使用流程**（自由生成模式）：\r\n1. 理解用户需求 → 确定骨架结构：几行几列、哪些单元格需要合并\r\n2. 确定约束模式：fill/fit/clip → 决定骨架对模块、模块对组件的约束\r\n3. 描述需要的组件 → 从8种原子组件中自由组合，放入对应骨架位置\r\n4. 配置组合逻辑：方向、比例、对齐方式\r\n5. 生成 HTML → 可直接用 `module_assembler.py` 或自由生成自包含 HTML\n\nFile v3.0.4:references/call-chains.md\n\n# call-chains.md — hug-html 调用链定义\r\n\r\n本文件定义 `hug-html` 技能的调用链，供 `skill-sub` 读取和执行。\r\n\r\n---\r\n\r\n## 调用链 1：generate-html（完整生成流程）\r\n\r\n**描述**：从需求分析到输出最终 HTML 的完整流程\r\n\r\n**触发方式**：`/hug-html generate --type <type> --output <path>`\r\n\r\n**步骤**：\r\n\r\n| 步骤 | 动作 | 调用脚本 | 输出 |\r\n|------|-------|------|------|\r\n| 1 | 解析需求 | （AI 理解用户意图） | 确定 `type`, `preset`, `modules` |\r\n| 2 | 生成模板 | `template_generator.py --type <t> --output <o>` | `template.html` |\r\n| 3 | 填充内容（可选） | `content_filler.py --auto --template <t> --output <o>` | `filled.html` |\r\n| 4 | 应用样式预设（可选） | `content_filler.py --\n\nArchive v3.0.3: 23 files, 88934 bytes\n\nFiles: _meta.json (127b), references/antipatterns.md (3220b), references/call-chains.md (6196b), references/changelog.md (8141b), references/examples.md (2632b), references/faq.md (9719b), references/guide.md (6900b), references/module-library.md (7290b), references/permissions.md (1189b), references/style-presets.md (2865b), scripts/content_filler.py (11919b), scripts/gen_calendar_spec.py (20913b), scripts/gen_test_grids.py (8072b), scripts/grid_builder.py (88198b), scripts/module_assembler.py (22216b), scripts/template_generator.py (4845b), scripts/templates/3x3-merge.json (2428b), scripts/templates/3x3-mixed-styles.json (5518b), scripts/templates/4x2-app-card.json (2186b), scripts/templates/calendar-dashboard-interactive.json (20108b), scripts/visual_editor.py (21305b), skill-card.md (2606b), SKILL.md (13981b)\n\nArchive v3.0.0: 24 files, 89771 bytes\n\nFiles: _meta.json (127b), data/output/component-demo.html (2891b), references/antipatterns.md (3220b), references/call-chains.md (6196b), references/changelog.md (7698b), references/examples.md (2632b), references/faq.md (9719b), references/guide.md (6900b), references/module-library.md (7290b), references/permissions.md (1189b), references/style-presets.md (2865b), scripts/content_filler.py (11919b), scripts/gen_calendar_spec.py (20913b), scripts/gen_test_grids.py (8072b), scripts/grid_builder.py (88198b), scripts/module_assembler.py (22043b), scripts/template_generator.py (4845b), scripts/templates/3x3-merge.json (2428b), scripts/templates/3x3-mixed-styles.json (5518b), scripts/templates/4x2-app-card.json (2186b), scripts/templates/calendar-dashboard-interactive.json (20108b), scripts/visual_editor.py (21305b), skill-card.md (2704b), SKILL.md (13766b)\n\nArchive v2.1.3: 23 files, 82928 bytes\n\nFiles: _meta.json (127b), references/antipatterns.md (3220b), references/call-chains.md (6196b), references/changelog.md (6824b), references/examples.md (2632b), references/faq.md (9719b), references/guide.md (6900b), references/module-library.md (4188b), references/permissions.md (1189b), references/style-presets.md (2865b), scripts/content_filler.py (11919b), scripts/gen_calendar_spec.py (20913b), scripts/gen_test_grids.py (8072b), scripts/grid_builder.py (87401b), scripts/module_assembler.py (5787b), scripts/template_generator.py (4845b), scripts/templates/3x3-merge.json (2428b), scripts/templates/3x3-mixed-styles.json (5518b), scripts/templates/4x2-app-card.json (2186b), scripts/templates/calendar-dashboard-interactive.json (20108b), scripts/visual_editor.py (21305b), skill-card.md (2300b), SKILL.md (13101b)\n\nArchive v2.1.1: 24 files, 83266 bytes\n\nFiles: _meta.json (127b), references/antipatterns.md (3220b), references/call-chains.md (6196b), references/changelog.md (5805b), references/examples.md (2632b), references/faq-q4-fixed.md (1437b), references/faq.md (9719b), references/guide.md (6900b), references/module-library.md (4188b), references/permissions.md (1189b), references/style-presets.md (2865b), scripts/content_filler.py (11897b), scripts/gen_calendar_spec.py (20439b), scripts/gen_test_grids.py (8045b), scripts/grid_builder.py (85908b), scripts/module_assembler.py (5787b), scripts/template_generator.py (3880b), scripts/templates/3x3-merge.json (2428b), scripts/templates/3x3-mixed-styles.json (5518b), scripts/templates/4x2-app-card.json (2186b), scripts/templates/calendar-dashboard-interactive.json (20108b), scripts/visual_editor.py (21368b), skill-card.md (2305b), SKILL.md (13110b)\n\nArchive v2.1.0: 24 files, 82985 bytes\n\nFiles: _meta.json (127b), references/antipatterns.md (3220b), references/call-chains.md (6196b), references/changelog.md (5326b), references/examples.md (2632b), references/faq-q4-fixed.md (1437b), references/faq.md (9719b), references/guide.md (6900b), references/module-library.md (4188b), references/permissions.md (1189b), references/style-presets.md (2865b), scripts/content_filler.py (11897b), scripts/gen_calendar_spec.py (20439b), scripts/gen_test_grids.py (7961b), scripts/grid_builder.py (85794b), scripts/module_assembler.py (5701b), scripts/template_generator.py (3880b), scripts/templates/3x3-merge.json (2428b), scripts/templates/3x3-mixed-styles.json (5518b), scripts/templates/4x2-app-card.json (2186b), scripts/templates/calendar-dashboard-interactive.json (20108b), scripts/visual_editor.py (21368b), skill-card.md (2496b), SKILL.md (13110b)\n\nArchive v2.0.2: 24 files, 74981 bytes\n\nFiles: _meta.json (127b), references/antipatterns.md (3220b), references/call-chains.md (6196b), references/changelog.md (4085b), references/examples.md (2632b), references/faq-q4-fixed.md (1437b), references/faq.md (6264b), references/guide.md (6900b), references/module-library.md (4188b), references/permissions.md (1189b), references/style-presets.md (2865b), scripts/content_filler.py (7322b), scripts/gen_calendar_spec.py (20439b), scripts/gen_test_grids.py (7961b), scripts/grid_builder.py (80552b), scripts/module_assembler.py (5701b), scripts/template_generator.py (3157b), scripts/templates/3x3-merge.json (2428b), scripts/templates/3x3-mixed-styles.json (5518b), scripts/templates/4x2-app-card.json (2186b), scripts/templates/calendar-dashboard-interactive.json (20108b), scripts/visual_editor.py (20283b), skill-card.md (2397b), SKILL.md (9361b)","readmeExcerpt":"Skill: hug-html Owner: ldxs001 Summary: 8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation... Tags: chinese-error-handling:3.3.1, grid:3.3.1, html:3.3.1, latest:3.3.1, layout:3.3.1, module-library:3.3.1, style-presets:3.3.1, template:3.3.1, visual-editor:3.3.1 Version history: v3.3.1 | 2026-07-09T10:47:33.622Z | ","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"File v3.3.1:references/changelog.md\n\n## [3.3.1] - 2026-07-09\r\n\r\n### 修复\r\n- **displayName 统一为 kebab-case**：ClawHub/SkillHub 发布的显示名与技能名一致（），废除驼峰格式\r\n\r\n## [3.3.0] - 2026-07-09\r\n## [3.3.0] - 2026-06-30\r\n\r\n### 修复\r\n- refactor: hug-html\r\n\r\n---\r\n\r\n## [3.2.0] - 2026-06-26\r\n\r\n### 修复\r\n- refactor: hug-html\r\n\r\n---\r\n\r\n## [3.1.0] - 2026-06-26\r\n\r\n### 修复\r\n- refactor: hug-html\r\n\r\n---\r\n\r\n## 3.0.4 (2026-06-02) -- skill-standardization 改造\r\n\r\n### Changed\r\n- R-10: SKILL.md frontmatter tags 和 description 与 _meta.json 同步一致\r\n- R-04: description 删除版本号（_meta.json 和 SKILL.md 均去除）\r\n- R-20: changelog.md 术语统一（删除→删除）\r\n- **R-17**: SKILL.md 缩减至 181 行，非标章节按 body.json 三层规则处理:\r\n   - 四层架构（细化）→ 渐进式: references/architecture.md\r\n   - 能力边界 → 重命名: 限制\r\n   - 错误处理说明 → 合并: 核心能力第14项\r\n   - 附录 → 合并: 核心能力 ### 渐进式文件索引\r\n\r\n---\r\n\r\n## 3.0.3 (2026-05-31)\r\n\r\n### 修复\r\n- **R-01/R-07**: frontmatter 补全 trigger 和 trigger_negative 字段\r\n- **R-04**: description 删除版本号\r\n- **R-06**: 补回缺失的 H1 标题\r\n- **R-10**: changelog 版本号去 v 前缀\r\n- **R-18/R-19**: SKILL.md 补充 antipatterns/faq 引用\r\n\r\n---\r\n\r\n## 3.0.2 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 3.0.1 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 3.0.0 (2026-05-30) — 组件式架构重构\r\n\r\n### 重大更新（MAJOR）\r\n- **架构重构**：从预置复合模块模板改为原子组件+声明式组合\r\n  - 删除 14 个固定复合模块，替换为 8 种原子组件（text/image/icon/qrcode/table/divider/spacer/group）\r\n  - 新增 3 级约束系统（fill/fit/clip），递归作用于骨架→模块→组件\r\n  - 新增声明式组合逻辑：方向(row/column)、比例(ratios)、对齐(align/cross_align)\r\n  - 新增  组件引擎， 支持新旧两种 Spec 格式\r\n\r\n### Changed\r\n- module_assembler.py 完全重写为组件引擎\r\n- grid_builder.py build_cell_html() 支持 components 字段\r\n- references/module-library.md 重写为组件系统文档\r\n- SKILL.md 四层架构、核心能力、快速开始全面更新\r\n\r\n---\r\n## 2.1.4 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 2.1.3 (2026-05-30) — R-12 合规完善\r\n\r\n### Changed\r\n- 所有脚本补充 DEFAULT_DATA_DIR_RAW + DATA_DIR R-12 定义\r\n- _meta.json 补充 data_dir 字段\r\n- 运行 fix_missing_data_dir 一键修复，R-12 审计通过\r\n\r\n\r\n# Changelog — hug-html\r\n\r\n\r\n\r\n## 2.1.2 (2026-05-30) — skill-standardization 改造 + R-12 脚本补全\r\n\r\n### Changed\r\n- 版本号 v2.1.1 → "},{"language":"text","snippet":"File v3.3.1:references/faq.md\n\n# 常见问题解答（FAQ）\r\n\r\n本文档回答 hug-html 技能的常见问题。\r\n\r\n---\r\n\r\n## 基础问题\r\n\r\n### Q1：这个技能支持哪些 HTML 模板类型？\r\n\r\n**A**：支持 4 种类型：\r\n- `promo` — 宣传面板（渐变背景 + 大标题 + 按钮）\r\n- `product` — 产品介绍（左文右图两栏布局）\r\n- `tech` — 技术说明（代码样式块 + 参数表格）\r\n- `flow` — 流程图表（步骤卡片 + 编号）\r\n\r\n详见 `references/guide.md` 完整参数说明。也可以用 `--list-templates` 查看所有可用模板。\r\n\r\n---\r\n\r\n### Q2：生成的 HTML 文件保存在哪里？\r\n\r\n**A**：默认输出到："},{"language":"text","snippet":"File v3.3.1:references/permissions.md\n\n# 基于 skill-standardization 渐进式披露规范的权限说明\r\n\r\n本文档由 `skill-standardization` 权限扫描器自动维护。\r\n\r\n## 风险等级\r\n\r\n**LOW**（实际权重: 0.0）\r\n\r\n## 权限总览\r\n\r\n| 权限类别 | 涉及项数 | 风险等级 |\r\n|-----------|----------|----------|\r\n| `subprocess_call` | 0 项 | ✅ LOW |\r\n| `file_delete` | 0 项 | ✅ LOW |\r\n| `network_access` | 0 项 | ✅ LOW |\r\n| `sensitive_access` | 0 项 | ✅ LOW |\r\n| `critical_write` | 0 项 | ✅ LOW |\r\n\r\n## 高权限操作说明\r\n\r\n- 无。所有文件操作均限制在技能独立数据目录内，不涉及系统关键目录、网络监听或外部请求。\r\n\r\n## 权限详细说明\r\n\r\n### 子进程调用（subprocess）\r\n\r\n**无**。\r\n\r\n\r\n### 文件删除\r\n\r\n**无**。\r\n\r\n\r\n### 网络访问\r\n\r\n**无**。\r\n\r\n\r\n### 敏感信息访问\r\n\r\n**无**。\r\n\r\n\r\n### 关键位置写入\r\n\r\n**无**。\r\n\r\n\r\n## 授权方式说明\r\n\r\n- **immediate（即时授权）**：每次执行前需获得用户批准\r\n- **unified（统一授权）**：首次执行前获得用户批准，后续不再询问\r\n- **silent（静默授权）**：无需用户交互，自动执行并记录\r\n\r\n<!-- fp:risk=LOW|sensitive=0|critical_write=0|network=0|delete=0|subprocess=0|issues=0 -->\r\n---\r\n\r\n# 权限说明\r\n\r\n本文档说明 hug-html 技能的权限需求、各操作的权限权重及风险评级。\r\n\r\n## 权限权重说明\r\n\r\n| 操作 | 权限权重 | 说明 |\r\n|------|----------|------|\r\n| Read（读文件） | LOW | 读取输入文件、模块库、样式预设，无写入操作 |\r\n| Write（写文件） | MEDIUM | 将输出 HTML 文件写入 `../.standardization/hug-html/data/output/`，仅限指定目录 |\r\n| Bash（运行脚本） | MEDIUM | 运行 `scripts/` 目录内的 Python 脚本，不执行系统命令或外部代码 |\r\n| 网络访问 | NONE | 不访问任何外部网络，不发送数据 |\r\n\r\n## 风险评级\r\n\r\n本技能风险等级：**LOW**\r\n\r\n**原因**：\r\n- 所有操作仅限于本地文件读写\r\n- 不访问系统敏感路径（如 `~/.ssh/`、`~/.aws/`）\r\n- 不向外部网络发送任何数据\r\n- 不执行用户 Shell 配置文件（`.bashrc` / `.zshrc`）\r\n\r\n## 敏感信息访问声明\r\n\r\n本技能：\r\n- **不会**访问系统敏感路径或凭证文件\r\n- **不会**向外部网络发送数据\r\n- **不会**执行用户 Shell 配置文件（`.bashrc` / `.zshrc`）\r\n\r\n---\r\n\r\n> 本文档遵循 R-15/R-16 权限说明规范，由 `skill-standardization v2.38.6` 生成。\n\nArchive v3.3.0: 24 files, 89511 bytes\n\nFiles: _meta.json (127b), references/antipatterns.md (3220b), references/architecture.md (2359b), references/call-chains.md (6196b), references/changelog.md (8754b), references/examples.md (2632b), references/faq.md (10802b), references/guide.md (6900b), references/module-library.md (7290b), references/permissions.md (1189b), references/style-presets.md (2865b), scripts/content_filler.py (11919b), scripts/gen_calendar_"},{"language":"text","snippet":"File v3.3.0:references/changelog.md\n\n## 3.0.4 (2026-06-02) -- skill-standardization 改造\r\n\r\n### Changed\r\n- R-10: SKILL.md frontmatter tags 和 description 与 _meta.json 同步一致\r\n- R-04: description 移除版本号（_meta.json 和 SKILL.md 均去除）\r\n- R-20: changelog.md 术语统一（移除→删除）\r\n- **R-17**: SKILL.md 缩减至 181 行，非标章节按 body.json 三层规则处理:\r\n   - 四层架构（细化）→ 渐进式: references/architecture.md\r\n   - 能力边界 → 重命名: 限制\r\n   - 错误处理说明 → 合并: 核心能力第14项\r\n   - 附录 → 合并: 核心能力 ### 渐进式文件索引\r\n\r\n---\r\n\r\n## 3.0.3 (2026-05-31)\r\n\r\n### 修复\r\n- **R-01/R-07**: frontmatter 补全 trigger 和 trigger_negative 字段\r\n- **R-04**: description 删除版本号\r\n- **R-06**: 补回缺失的 H1 标题\r\n- **R-10**: changelog 版本号去 v 前缀\r\n- **R-18/R-19**: SKILL.md 补充 antipatterns/faq 引用\r\n\r\n---\r\n\r\n## 3.0.2 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 3.0.1 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 3.0.0 (2026-05-30) — 组件式架构重构\r\n\r\n### 重大更新（MAJOR）\r\n- **架构重构**：从预置复合模块模板改为原子组件+声明式组合\r\n  - 删除 14 个固定复合模块，替换为 8 种原子组件（text/image/icon/qrcode/table/divider/spacer/group）\r\n  - 新增 3 级约束系统（fill/fit/clip），递归作用于骨架→模块→组件\r\n  - 新增声明式组合逻辑：方向(row/column)、比例(ratios)、对齐(align/cross_align)\r\n  - 新增  组件引擎， 支持新旧两种 Spec 格式\r\n\r\n### Changed\r\n- module_assembler.py 完全重写为组件引擎\r\n- grid_builder.py build_cell_html() 支持 components 字段\r\n- references/module-library.md 重写为组件系统文档\r\n- SKILL.md 四层架构、核心能力、快速开始全面更新\r\n\r\n---\r\n## 2.1.4 (2026-05-30)\r\n\r\n### 修复\r\n- audit --fix 自动修正\r\n\r\n---\r\n\r\n## 2.1.3 (2026-05-30) — R-12 合规完善\r\n\r\n### Changed\r\n- 所有脚本补充 DEFAULT_DATA_DIR_RAW + DATA_DIR R-12 定义\r\n- _meta.json 补充 data_dir 字段\r\n- 运行 fix_missing_data_dir 一键修复，R-12 审计通过\r\n\r\n\r\n# Changelog — hug-html\r\n\r\n\r\n\r\n## 2.1.2 (2026-05-30) — skill-standardization 改造 + R-12 脚本补全\r\n\r\n### Changed\r\n- 版本号 v2.1.1 → v2.1.2（SKILL.md + _meta.json + 脚本版本字符串三端统一）\r\n- SKILL.md frontmatter 补全 description 字段\r\n- SKILL.md 缩减至 ≤230 行（删除冗余空白行和 H1 标题）\r\n- 尾部版本声明更新为 2.1.2\r\n- 删除 references/faq-q4-fixed.md 遗留文件\r\n- template_generator.py / visual_editor.py / content_filler.py: 补充 DEFAULT_DATA_DIR_RAW + DATA_DIR R-12 定义\r\n- gen_calendar_spec.py: 补充 DEFAULT_DATA_DI"},{"language":"text","snippet":"File v3.3.0:references/faq.md\n\n# 常见问题解答（FAQ）\r\n\r\n本文档回答 hug-html 技能的常见问题。\r\n\r\n---\r\n\r\n## 基础问题\r\n\r\n### Q1：这个技能支持哪些 HTML 模板类型？\r\n\r\n**A**：支持 4 种类型：\r\n- `promo` — 宣传面板（渐变背景 + 大标题 + 按钮）\r\n- `product` — 产品介绍（左文右图两栏布局）\r\n- `tech` — 技术说明（代码样式块 + 参数表格）\r\n- `flow` — 流程图表（步骤卡片 + 编号）\r\n\r\n详见 `references/guide.md` 完整参数说明。也可以用 `--list-templates` 查看所有可用模板。\r\n\r\n---\r\n\r\n### Q2：生成的 HTML 文件保存在哪里？\r\n\r\n**A**：默认输出到："},{"language":"text","snippet":"File v3.3.0:references/permissions.md\n\n# 权限说明\n\n本文档说明 hug-html 技能的权限需求、各操作的权限权重及风险评级。\n\n## 权限权重说明\n\n| 操作 | 权限权重 | 说明 |\n|------|----------|------|\n| Read（读文件） | LOW | 读取输入文件、模块库、样式预设，无写入操作 |\n| Write（写文件） | MEDIUM | 将输出 HTML 文件写入 `../.standardization/hug-html/data/output/`，仅限指定目录 |\n| Bash（运行脚本） | MEDIUM | 运行 `scripts/` 目录内的 Python 脚本，不执行系统命令或外部代码 |\n| 网络访问 | NONE | 不访问任何外部网络，不发送数据 |\n\n## 风险评级\n\n本技能风险等级：**LOW**\n\n**原因**：\n- 所有操作仅限于本地文件读写\n- 不访问系统敏感路径（如 `~/.ssh/`、`~/.aws/`）\n- 不向外部网络发送任何数据\n- 不执行用户 Shell 配置文件（`.bashrc` / `.zshrc`）\n\n## 敏感信息访问声明\n\n本技能：\n- **不会**访问系统敏感路径或凭证文件\n- **不会**向外部网络发送数据\n- **不会**执行用户 Shell 配置文件（`.bashrc` / `.zshrc`）\n\n---\n\n> 本文档遵循 R-15/R-16 权限说明规范，由 `skill-standardization v2.38.6` 生成。\n\nFile v3.3.0:references/style-presets.md\n\n# style-presets.md — 样式预设系统\r\n\r\n`hug-html` 支持 5 种常见风格的样式预设，通过 `content_filler.py --preset` 应用。\r\n\r\n---\r\n\r\n## 预设列表\r\n\r\n### business — 商务风格\r\n\r\n| 属性 | 值 |\r\n|-------|-----|\r\n| 主色 | `#1a2a4a` |\r\n| 辅色 | `#4a5568` |\r\n| 背景 | `#f0f4f8` |\r\n| 字体 | Microsoft YaHei, sans-serif |\r\n| 圆角 | `8px` |\r\n| 适用 | 商务报告、正式文档、企业介绍 |\r\n\r\n### academic — 科研风格\r\n\r\n| 属性 | 值 |\r\n|-------|-----|\r\n| 主色 | `#333333` |\r\n| 辅色 | `#666666` |\r\n| 背景 | `#ffffff` |\r\n| 字体 | SimSun, serif |\r\n| 圆角 | `4px` |\r\n| 适用 | 科研论文、技术报告、学术海报 |\r\n\r\n### festive — 喜庆风格\r\n\r\n| 属性 | 值 |\r\n|-------|-----|\r\n| 主色 | `#c0392b` |\r\n| 辅色 | `#e74c3c` |\r\n| 背景 | 渐变 `#c0392b → #e74c3c` |\r\n| 字体 | SimSun, serif |\r\n| 圆角 | `12px` |\r\n| 适用 | 婚庆、节日、庆典、喜报 |\r\n\r\n### mourning — 丧事风格\r\n\r\n| 属性 | 值 |\r\n|-------|-----|\r\n| 主色 | `#333333` |\r\n| 辅色 | `#666666` |\r\n| 背景 | `#f5f5f5` |\r\n| 字体 | SimSun, serif |\r\n| 圆角 | `8px` |\r\n| 适用 | 讣告、悼念、正式讣悼场合 |\r\n\r\n### tech — 技术风格\r\n\r\n| 属性 | 值 |\r\n|-------|-----|\r\n| 主色 | `#2D3436` |\r\n| 辅色 | `#636E72` |\r\n| 背景 | `#f8f9fa` |\r\n| 字体 | Consolas, 'Courier New', monospace |\r\n| 圆角 | `4px` |\r\n| 适用 | 技术文档、代码说明、API 文档 |\r\n\r\n---\r\n\r\n## 应用方法\r\n\r\n### 通过命令行应用"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\r\ndisplayName: hug-html\r\nname: hug-html\r\ntags: ['html', 'grid', 'template', 'visual-editor', 'module-library', 'style-presets', 'layout', 'chinese-error-handling']\r\nversion: 3.3.1\r\nauthor: Ldxs\r\nlicense: MIT\r\ndescription: 8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation audit, user template save-as, Chinese error handling\r\nsensitive_access: false\r\ncritical_write: false\r\npermission_weight: LOW\r\ndata_dir: ../.standardization/hug-html/data/\r\nexternal_data_dir: true\r\ntrigger: 生成 HTML 模板/编辑 HTML/HTML 模块/网格布局/单元格合并/可视化编辑/输出自包含 HTML\r\ntrigger_negative: 仅询问概念/无文件生成需求/要求使用其他工具\r\nmeta_field_sync: true\r\ncreate_permissions_md: true\r\nlicense_compliance: true\r\n---\r\n# hug-html\r\n\r\n> → 详见核心能力的渐进式文件索引\r\n\r\n## 限制\r\n\r\n- **本技能的能力边界分为支持场景、不支持场景和边界情况三类。**\r\n- **生成推广卡片** — 应用推广、活动宣传、产品介绍的毛玻璃卡片。触发词：\"生成一个 APP 推广 HTML 卡片\"\r\n- **生成信息面板** — 带表格、参数、二维码的信息展示面板。触发词：\"做一个带二维码和参数描述的 HTML\"\r\n- **生成可视化编辑模板** — 带 Ctrl+E 可编辑的 HTML。触发词：\"生成一个可视化编辑的 HTML 模板\"\r\n- **生成日历/周历仪表板** — 假日管理、年份控制、工日统计的交互仪表板。触发词：\"生成一个周历交互 HTML\"\r\n- **生成双端对比卡片** — 左应用右元服务/双实体的对比展示。触发词：\"生成一个双端推广卡片\"\r\n- **内容填充** — 自动/手动填充 data-field 标记的文字和图片。触发词：\"给这个 HTML 模板填充示例内容\"\r\n- **方案模板固化** — 将当前设计保存为可复用的用户模板。触发词：\"把这个模板保存为 my-card\"\r\n- **自由创作 HTML** — AI 参考模块库直接编写自包含 HTML。触发词：\"帮我写一个毛玻璃风格的首页\"\r\n\r\n**不支持的场景：**\r\n- **复杂前端应用** — 不支持路由/状态管理/API 调用（替代：手写 React/Vue）\r\n- **多页面 HTML 站点** — 不处理页面间导航（替代：静态站点生成器）\r\n- **PDF / 图片输出** — 不直接生成图片或 PDF（替代：浏览器打印或截图）\r\n- **外部 CSS/JS 框架集成** — 强调零外部依赖（替代：手动引入 CDN）\r\n- **非网格布局的自由排版** — 基于 CSS Grid（替代：自由生成模式）\r\n- **后端交互** — 纯前端 HTML，无后端能力。影响：数据持久化需额外方案。替代：搭配 Flask/Node.js\r\n\r\n**边界情况：**\r\n- **网格越界** — row/col + rowspan/colspan 不能超过网格总行列数。影响：CSS Grid 异常渲染\r\n- **毛玻璃裁剪** — backdrop-filter 需要 overflow:hidden 容器\r\n- **JSON 模板路径** — --spec 支持绝对/相对路径和内置名，不存在有中文错误提示\r\n- **文件编码** — 必须 UTF-8，其他编码会导致乱码\r\n- **编辑模式兼容性** — Ctrl+E 需要 Chrome/Edge/Firefox，不支持 IE\r\n\r\n## 触发条件\r\n\r\n**正向触发：**\r\n- \"生成 HTML 模板\" / \"HTML template\" / \"hug html\"\r\n- \"编辑 HTML\" / \"可视化编辑 HTML\" / \"visual edit HTML\"\r\n- \"HTML 模块\" / \"HTML module library\"\r\n- \"网格布局\" / \"grid layout\" / \"N×M 网格\"\r\n- \"单元格合并\" / \"rowspan\" / \"colspan\"\r\n- 输出格式：自包含 HTML 文件（毛玻璃卡片风格）\r\n- \"我需要一个 APP 推广卡片，要有个二维码—可以用，支持\"\r\n- \"帮我做一个带表格和参数配置的 HTML 面板—支持，用 data-table + param-panel 模块\"\r\n- \"生成一个双端对比的推广页面—支持，用 header-dual + qr-dual\"\r\n- \"这个模板我想保存下来以后用—支持，用 --save-as 固化\"\r\n- \"给我生成的 HTML 加一个可视化编辑界面—支持，用 visual_editor.py\"\r\n\r\n**否定条件：**\r\n- 不触发：用户仅询问 HTML 语法概念，无文件生成需求\r\n- 不触发：用户明确请求其他特定技能\r\n\r\n## 核心能力\r\n\r\n> 📚 **渐进式加载**：本技能采用渐进式 MD 体系，`SKILL.md` 为入口（≤230行），详细内容拆分到 `references/*.md` 按需加载。\r\n\r\n| # | 能力 | 说明 |\r\n| --- |------| ------ |\r\n| 1 | **骨架结构** | N×M 网格、行列数、单元格合并（rowspan/colspan）、gap 间距 |\r\n| 2 | **骨架约束** | 3级约束（fill/fit/clip），递归传递到组件级别 |\r\n| 3 | **组件体系** | 8种原子组件（text/image/icon/qrcode/table/divider/spacer/group），自由组合 |\r\n| 4 | **组合逻辑** | 方向(row/column)、比例(ratios)、对齐(align)、8方向位置 |\r\n| 5 | **方案模板库** | 内置 7+ 预置{骨架+组件+样式}组合 + **用户可自定义固化** |\r\n| 6 | **样式预设** | 5 种内置风格：商务/科研/喜庆/丧事/技术，一键切换配色字体 |\r\n| 7 | **基础编辑** | 每个文字元素独立控制：字体家族(8种)/"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn75zfd51df61ajdyqtgvrs1hx84s4q6\",\n  \"slug\": \"hug-html\",\n  \"version\": \"3.3.1\",\n  \"publishedAt\": 1783594053622\n}"},{"path":"references/antipatterns.md","content":"# 反模式手册\r\n\r\n本文档列出 hug-html 技能的常见反模式及正确做法。\r\n\r\n---\r\n\r\n## 反模式列表\r\n\r\n### ❌ 错误：在 SKILL.md 中粘贴大段代码\r\n\r\n**问题**：SKILL.md 应保持 ≤230 行，大段代码会导致文件臃肿，违反 R-17 渐进式加载规范。\r\n\r\n**正确做法**：将代码移到 `scripts/` 目录，在 SKILL.md 中描述调用方式。\r\n\r\n```markdown\r\n❌ 错误示例：\r\n```python\r\ndef generate_template():\r\n    # ... 50行代码 ...\r\n```\r\n\r\n✅ 正确示例：\r\n调用 `scripts/template_generator.py --output <path> --type <promo|product|tech|flow>`\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：使用相对路径 `./scripts/grid_builder.py`\r\n\r\n**问题**：相对路径在不同工作目录下会解析错误，导致脚本找不到。\r\n\r\n**正确做法**：使用相对路径（如 `scripts/grid_builder.py`），skill-standardization 审计工具会自动拼接安装目录。\r\n\r\n```markdown\r\n❌ 错误：python \"C:/Users/.../scripts/template_generator.py\"\r\n✅ 正确：python scripts/template_generator.py --output ../.standardization/hug-html/data/output/result.html\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：在 SKILL.md 中写\"详见脚本注释\"\r\n\r\n**问题**：用户无法看到脚本注释，且脚本注释容易过时。\r\n\r\n**正确做法**：将详细说明写入 `references/guide.md`，SKILL.md 只写必要信息。\r\n\r\n---\r\n\r\n### ❌ 错误：产出物路径指向安装目录\r\n\r\n**问题**：`artifact_paths` 应指向数据目录（`../.standardization/hug-html/data/output/`），而非安装目录下的 `data/output/`。\r\n\r\n**正确做法**：\r\n\r\n在 `SKILL.md` frontmatter 中：\r\n```yaml\r\nartifact_paths: [\"../.standardization/hug-html/data/output/\"]\r\n```\r\n\r\n在脚本中：\r\n```python\r\nfrom pathlib import Path\r\noutput_dir = Path(__file__).parent.parent.parent / \".standardization\" / \"hug-html\" / \"data\" / \"output\"\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：模块名拼写错误\r\n\r\n**问题**：`SKILL.md` 或 `references/` 中引用的模块名与实际文件名不一致，导致用户调用失败。\r\n\r\n**正确做法**：每次提及脚本名时，用绝对路径验证文件是否存在。\r\n\r\n```\r\n✅ 正确：python \"C:/Users/sm001/.workbuddy/skills/hug-html/scripts/template_generator.py\" --help\r\n```\r\n\r\n---\r\n\r\n### ❌ 错误：术语不一致\r\n\r\n**问题**：同一概念混用多个术语（如\"配置\"/\"配置\"、\"填充内容\"/\"填内容\"），增加理解成本。\r\n\r\n**正确做法**：全文统一术语。\r\n\r\n| 概念 | 统一术语 | 错误术语 |\r\n|------|----------|----------|\r\n| configuration | 配置 | 配置、setting |\r\n| fill content | 填充内容 | 填内容、填入 |\r\n| module | 模块 | 组件、component |\r\n| preset | 预设 | 预置、preset |\r\n| update | 更新 | 更新、modify |\r\n\r\n---\r\n\r\n## 检查清单\r\n\r\n- [ ] SKILL.md ≤ 230 行？\r\n- [ ] 无大段代码（>10行）直接在 SKILL.md 中？\r\n- [ ] 所有路径均为相对路径？\r\n- [ ] 无\"详见脚本注释\"等推卸责任的描述？\r\n- [ ] `artifact_paths` 指向数据目录而非安装目录？\r\n- [ ] 所有脚本名拼写正确且文件存在？\r\n- [ ] 术语全文统一？\r\n\r\n---\r\n\r\n> 本文档遵循 R-18 反模式引用规范，由 `skill-standardization v2.38.6` 生成。"},{"path":"references/architecture.md","content":"# 四层架构（细化）\r\n\r\nhug-html 采用四层架构设计，从抽象到具体逐层约束。\r\n\r\n```\r\n骨架 (Skeleton)\r\n├── 骨架结构 — N×M 网格、行列数、单元格合并(rowspan/colspan)、gap 间距\r\n├── 骨架样式 — 底板背景/渐变/透明度、外阴影、外边框、圆角、内外边距\r\n└── 约束模式 — fill(完全贴合) / fit(等比缩放) / clip(裁剪遮挡)\r\n\r\n模块 (Module)  ← 组件组合 = {组件声明 + 约束 + 比例} 自由搭配\r\n├── 组件组合 — 8种原子组件自由搭配（text/image/icon/qrcode/table/divider/spacer/group）\r\n├── 组合逻辑 — 方向(row/column)、比例(ratios)、对齐(align/cross_align)\r\n└── 约束传递 — 骨架约束模块 → 模块约束组件（递归）\r\n\r\n组件 (Component)  ← 8种原子类型\r\n├── text     — 纯文本（title/body/caption 三种变体）\r\n├── image    — 图片（支持 fit/cover/fill 填充模式）\r\n├── icon     — 图标（FontAwesome / SVG 内联）\r\n├── qrcode   — 二维码（API 生成）\r\n├── table    — 数据表格（表头+行）\r\n├── divider  — 分割线\r\n├── spacer   — 空白占位\r\n└── group    — 组合容器（递归包含子组件）\r\n\r\n基础样式 (Base)\r\n└── CSS 原语 — 字体/颜色/渐变/圆角/间距/阴影/边框\r\n```\r\n\r\n**编辑粒度**（可视化编辑器内）：\r\n| 可更新 | 不可更新（需改 Grid Spec） |\r\n|--------|---------------------------|\r\n| ✓ 图片内容（点击输入 URL / 拖放文件替换） | ✗ 骨架结构（行列数、合并方式、gap） |\r\n| ✓ 基础样式（每个文字元素独立：字体家族/字重/字号/字色） | ✗ 模块结构（组件的 HTML 骨架） |\r\n| ✓ 模块样式（通过 cell style 覆盖背景色/内边距） | ✗ 骨架样式（底板色/外阴影等） |\r\n\r\n**大模型使用流程**（自由生成模式）：\r\n1. 理解用户需求 → 确定骨架结构：几行几列、哪些单元格需要合并\r\n2. 确定约束模式：fill/fit/clip → 决定骨架对模块、模块对组件的约束\r\n3. 描述需要的组件 → 从8种原子组件中自由组合，放入对应骨架位置\r\n4. 配置组合逻辑：方向、比例、对齐方式\r\n5. 生成 HTML → 可直接用 `module_assembler.py` 或自由生成自包含 HTML"},{"path":"references/call-chains.md","content":"# call-chains.md — hug-html 调用链定义\r\n\r\n本文件定义 `hug-html` 技能的调用链，供 `skill-sub` 读取和执行。\r\n\r\n---\r\n\r\n## 调用链 1：generate-html（完整生成流程）\r\n\r\n**描述**：从需求分析到输出最终 HTML 的完整流程\r\n\r\n**触发方式**：`/hug-html generate --type <type> --output <path>`\r\n\r\n**步骤**：\r\n\r\n| 步骤 | 动作 | 调用脚本 | 输出 |\r\n|------|-------|------|------|\r\n| 1 | 解析需求 | （AI 理解用户意图） | 确定 `type`, `preset`, `modules` |\r\n| 2 | 生成模板 | `template_generator.py --type <t> --output <o>` | `template.html` |\r\n| 3 | 填充内容（可选） | `content_filler.py --auto --template <t> --output <o>` | `filled.html` |\r\n| 4 | 应用样式预设（可选） | `content_filler.py --preset <p> --template <t> --output <o>` | `styled.html` |\r\n| 5 | 生成编辑界面（可选） | `visual_editor.py --template <t> --output <o>` | `editor.html` |\r\n| 6 | 组装模块（可选） | `module_assembler.py --modules <m> --output <o>` | `assembled.html` |\r\n| 7 | 输出最终文件 | （复制到 `data/output/final.html`） | `final.html` |\r\n\r\n**调用链 JSON**（`skill-sub` 格式）：\r\n\r\n```json\r\n{\r\n  \"name\": \"generate-html\",\r\n  \"description\": \"从需求到最终 HTML 的完整生成流程\",\r\n  \"steps\": [\r\n    {\"step\": 1, \"action\": \"parse-requirement\", \"tool\": \"AI\", \"output\": \"type,preset,modules\"},\r\n    {\"step\": 2, \"action\": \"generate-template\", \"script\": \"template_generator.py\", \"args\": \"--type {type} --output data/output/template.html\"},\r\n    {\"step\": 3, \"action\": \"fill-content\", \"script\": \"content_filler.py\", \"args\": \"--auto --template data/output/template.html --output data/output/filled.html\", \"optional\": true},\r\n    {\"step\": 4, \"action\": \"apply-preset\", \"script\": \"content_filler.py\", \"args\": \"--preset {preset} --template data/output/template.html --output data/output/styled.html\", \"optional\": true},\r\n    {\"step\": 5, \"action\": \"generate-editor\", \"script\": \"visual_editor.py\", \"args\": \"--template data/output/template.html --output data/output/editor.html\", \"optional\": true},\r\n    {\"step\": 6, \"action\": \"assemble-modules\", \"script\": \"module_assembler.py\", \"args\": \"--modules {modules} --output data/output/assembled.html\", \"optional\": true},\r\n    {\"step\": 7, \"action\": \"finalize\", \"tool\": \"AI\", \"output\": \"data/output/final.html\"}\r\n  ]\r\n}\r\n```\r\n\r\n---\r\n\r\n## 调用链 2：edit-html（编辑流程）\r\n\r\n**描述**：生成模板 → 生成编辑界面 → 用户编辑 → 导出最终 HTML\r\n\r\n**触发方式**：`/hug-html edit --template <path>`\r\n\r\n**步骤**：\r\n\r\n| 步骤 | 动作 | 调用脚本 | 输出 |\r\n|------|-------|------|------|\r\n| 1 | 检查模板是否存在 | （AI 验证） | 模板路径 |\r\n| 2 | 生成可视化编辑界面 | `visual_editor.py --template <t> --output <o>` | `editor.html` |\r\n| 3 | 提示用户在浏览器中编辑 | （AI 输出提示） | 编辑说明 |\r\n| 4 | 用户导出最终 HTML | （用户点击「生成最终 HTML」按钮） | `final.html` |\r\n| 5 | 提取编辑后内容（可选） | `content_filler.py --extract <html> --output <json>` | `content.json` |\r\n\r\n**调用链 JSON**：\r\n\r\n```json\r\n{\r\n  \"name\": \"edit-html\",\r\n  \"description\": \"生成可视化编辑界面并导出最终 HTML\",\r\n  \"steps\": [\r\n    {\"step\": 1, \"action\": \"validate-template\", \"tool\": \"AI\", \"output\": \"template-path\"},\r\n    {\"step\": 2, \"action\": \"generate-editor\", \"script\": \"visual_editor.py\", \"args\": \"--template {template} --output data/output/editor.html\"},\r\n    {\"step\": 3, \"action\": \"prompt-user\", \"tool\": \"AI\", \"output\": \"edit-instructions\"},\r\n    {\"step\": 4, \"a"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation... Skill: hug-html Owner: ldxs001 Summary: 8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation... Tags: chinese-error-handling:3.3.1, grid:3.3.1, html:3.3.1, latest:3.3.1, layout:3.3.1, module-library:3.3.1, style-presets:3.3.1, template:3.3.1, visual-editor:3.3.1 Version history: v3.3.1 | 2026-07-09T10:47:33.622Z |","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":925,"uniquenessScore":48,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T18:59:46.938Z","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-10T18:59:46.938Z","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-10T21:51:01.931Z","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"}]}}}