← 返回 Skills 市场
kaisersong

Report Creator

作者 Kaiser · GitHub ↗ · v1.21.0 · MIT-0
cross-platform ✓ 安全检测通过
618
总下载
1
收藏
2
当前安装
31
版本数
在 OpenClaw 中安装
/install kai-report-creator
功能描述
Use when the user wants to CREATE or GENERATE a report, business summary, data dashboard, or research doc — 报告/数据看板/商业报告/研究文档/KPI仪表盘. Handles Chinese and Eng...
使用说明 (SKILL.md)

kai-report-creator

Generate single-file HTML reports from source notes or .report.md IR. Keep this file as a thin router: load only the references needed for the current path, and move detailed contracts into references/, scripts, tests, or templates.

Core Principles

  1. Zero Dependencies — generated reports are self-contained HTML, with CDN or bundled assets only when needed.
  2. User Provides Data, AI Provides Structure — never fabricate facts or numbers; use [数据待填写] / [INSERT VALUE] when data is missing.
  3. Plan Before Generate — complex reports should become .report.md IR first, then HTML.
  4. Progressive Disclosure for AI — output keeps report-summary, section annotations, and component data machine-readable.
  5. Thin Routing Over Prompt GrowthSKILL.md routes work and names hard gates; detailed rules live in references.
  6. Contracts and Gates Beat Prompt Soup — prefer IR, guard validation, shell tests, and post-render review over adding more prose to this hot path.

Command Routing

When invoked as /report [flags] [content], parse flags first:

Flag Action
--plan "topic" Write .report.md IR only. Stop after saving it.
--generate [file] Render one .report.md IR to HTML. With no file given, extract exactly one valid IR block from context.
--review [file] Refine an existing HTML report with references/review-checklist.md.
--themes Write the themes preview HTML.
--from \x3Cfile> If the file starts with frontmatter, treat as IR; otherwise create IR, then render.
--theme \x3Cname> Override the theme. Built-ins: corporate-blue, minimal, dark-tech, dark-board, data-story, newspaper, regular-lumen.
--template \x3Cfile> Use a custom HTML template. See references/toc-and-template.md.
--output \x3Cfile> Save to this path instead of the default.
--bundle Inline CDN assets where supported.
--export-image [mode] After HTML generation, run scripts/export-image.py; mode is im, mobile, desktop, or all.
no flags + text Create IR internally, then render HTML.
no flags + IR in context Treat as --generate from context.

Default output filename: report-\x3CYYYY-MM-DD>-\x3Cslug>.html. Slug: lowercase ASCII, non-alphanumeric to hyphens, collapse hyphens, trim, max 30 chars.

Reference Loading

Load references by route; do not read every reference by default.

Route Always load Conditional load
--plan references/spec-loading-matrix.md, references/design-quality.md references/regular-report-content-rules.md for periodic reports
--generate references/html-shell-template.md + every references/html-shell/*.md, references/theme-css.md, references/review-checklist.md references/rendering-rules.md then only the references/rendering/*.md files required by the IR; references/anti-patterns.md for visual anchors; references/diagram-decision-rules.md for diagrams; references/regular-report-content-rules.md for periodic reports
--review references/review-checklist.md references/review-report-template.md if a structured change summary is requested
custom theme/template references/theme-css.md, references/toc-and-template.md custom theme reference.md or theme.css

Load references/spec-loading-matrix.md before --plan and --generate as a silent classifier. It covers optional archetypes: brief, research, comparison, update.

Always load references/anti-patterns.md before --generate. Load references/diagram-decision-rules.md whenever a diagram or diagram-like structure is being considered.

IR Quick Contract

.report.md has three parts:

  1. YAML frontmatter between --- delimiters.
  2. Markdown prose with ## / ### headings.
  3. Component fences: :::tag [param=value] ... :::.

Minimal frontmatter:

---
title: Report Title
theme: corporate-blue                  # Optional. Default: corporate-blue
date: YYYY-MM-DD
lang: zh
report_class: mixed
archetype: research                    # Optional lightweight archetype hint for silent classification.
audience: "Busy decision-maker"
decision_goal: "Decide next move"
must_include:
  - Source truth that must survive compression
must_avoid:
  - Decorative placeholder chart
charts: cdn
toc: true
animations: true
abstract: "One-sentence summary"
poster_title: "Optional stronger poster headline"
poster_subtitle: "Optional poster subtitle"
poster_note: "Optional short closing sentence"
template: ./my-template.html
theme_overrides:
  primary_color: "#E63946"
custom_blocks:
  my-tag: |
    \x3Cdiv class="my-class">{{content}}\x3C/div>
---

For trivial reports, omit optional fields. For high-stakes or complex reports, keep report_class, audience, decision_goal, must_include, and must_avoid so review/evals can detect drift.

Poster summary mode is opt-in. Do not infer poster_title or poster_subtitle from punctuation in title.

IR validity terms: invalid_syntax, invalid_semantics, contract_conflict, auto_downgrade_target.

Canonical component routing lives in references/rendering-rules.md; component details live in references/rendering/*.md. Compatibility anchors that must remain discoverable here:

  • :::kpi canonical body uses items:.
  • Timeline Allowed Date tokens: YYYY-MM-DD, YYYY-MM, YYYY, Q[1-4] YYYY, Day N, Week N, Month N.
  • Use ECharts for ALL charts.
  • Badges are optional visual enhancements, not a first-class IR tag.

Language, Theme, And Class

Auto-detect lang unless frontmatter sets it: use zh when CJK is material or appears in the title/topic; otherwise use en. Apply language to placeholders, TOC labels, date display, and shell labels.

If no theme is provided, pick by intent, first match wins:

Signal Theme
weekly/daily/monthly/work progress/周报/日报/月报/本周/下周 regular-lumen
sales/revenue/KPI/quarterly/business/销售/营收/业绩/季报 corporate-blue
research/survey/whitepaper/internal/研究/调研/白皮书 minimal
tech/architecture/API/system/performance/工程/架构 dark-tech
news/industry/trend/新闻/行业/趋势 newspaper
annual/story/growth/retrospective/年度/增长/复盘 data-story
board/dashboard/status/看板 dark-board
generic project progress/项目进展/项目状态 corporate-blue

Classify content by numeric density: narrative \x3C 5%, mixed 5-20%, data > 20%; short topics default to mixed.

--plan Flow

  1. Detect language and suggest theme.
  2. Classify report_class; optionally add archetype only when the report clearly matches brief, research, comparison, or update.
  3. For regular-lumen or periodic keywords, load references/regular-report-content-rules.md.
  4. Generate .report.md with complete frontmatter, 3-5 useful sections, source-faithful structure, and placeholders only where data is missing.
  5. Use real visual anchors only. In narrative and mixed, never use placeholder-only KPI/chart blocks; prefer callout, timeline, diagram, table, or prose scan anchors.
  6. Keep KPI values short: \x3C=8 Chinese chars or \x3C=3 English words. Explanations belong in prose, callouts, or tables.
  7. Use theme_overrides only for a small content-tone color hint; do not create a new design system in the IR.
  8. Save as report-\x3Cslug>.report.md.
  9. Tell the user the IR path, placeholder fields, suggested theme, and render command.
  10. Stop. Do not generate HTML in --plan mode.

Narrative rhythm reminders: lead-block, section-quote, and action-grid are optional prose upgrades. claim -> explanation -> scan anchor is a cadence, not a quota. These are optional prose upgrades, not default required blocks. If uncertain, keep normal paragraphs and add one clearer scan anchor instead of forcing a cadence block. Do not add more than one of lead-block / section-quote / action-grid by default inside the same section unless the source material clearly warrants it.

--generate Flow

  1. Read IR input only. With no file given, extract exactly one valid IR block from context. Treat this as IR from context, not chat history. If zero or multiple are present, stop and ask for an explicit file or single IR block. Never render the surrounding conversation.
  2. Load reference files minimally but reliably; load only the references that materially help the current render path. Standard HTML shell generation always loads the shell entry plus all references/html-shell/*.md; component rules load by IR inventory via references/rendering-rules.md.
  3. Parse frontmatter and resolve lang, theme, report_class: mixed default, archetype, date display, chart mode, TOC, animation, template, and theme overrides.
  4. Run guard validation before rendering:
    • Use scripts/guard_validate.py with IR text from file or extracted context.
    • If fatal metadata is missing, stop and report the error.
    • If a block is invalid, apply its auto_downgrade_target (kpi -> callout, chart -> table, timeline -> list, diagram -> callout) and mention the downgrade.
  5. Render components using references/rendering-rules.md, references/design-quality.md, and the path-specific references/rendering/*.md files selected from the IR.
  6. Build the standard shell from references/html-shell-template.md plus all references/html-shell/*.md; follow Shell metadata, version/theme metadata, export completeness, and the duplicate-date guard.
  7. Compute and embed \x3Cmeta name="ir-hash" content="sha256:[ir-hash]"> from the exact IR text, not the file path.
  8. Assemble CSS through references/theme-css.md: theme before-marker, shared CSS, theme post-shared override, TOC/shell CSS, frontmatter overrides.
  9. Run pre-write validation and fix all violations:
    • no raw ::: in HTML
    • valid ir-hash
    • no generic/template h2 headings
    • short .kpi-value and short report-summary KPI values
    • .number body numerals use tabular lining numerals
    • badges clarify status/category/entity, never quota-fill
    • timeline dates are real time markers
    • no U+FE0F
    • no text-align: justify, black-background flood, body letter-spacing > 0.05em, or mobile-hidden critical controls
  10. Run L2 shell checks. Required: data-template="kai-report-creator", data-version, data-theme, id="toc-toggle-btn", id="toc-sidebar", id="card-mode-btn", id="sc-overlay", id="export-btn", id="export-menu", id="export-print", id="export-png-desktop", id="export-png-mobile", id="export-im-share", id="report-summary", plus the JS bindings for print/desktop/mobile/IM export. If any export item or binding is missing, rebuild the whole export block from references/html-shell/export.md.
  11. Run the silent final review pass from references/review-checklist.md, then write the HTML and report the path.

When the report is explicitly comparing named vendors, models, or tools, set data-report-mode="comparison" on the outer report container and use .badge--entity-a/.badge--entity-b/.badge--entity-c only for entity identity.

--review Flow

When the user runs /report --review [file]:

  1. Read the HTML file.
  2. Load references/review-checklist.md.
  3. Apply hard rules automatically.
  4. Apply AI-advised rules only when confidence is high and factual accuracy is preserved.
  5. This is one-pass automatic refinement; no confirmation window.
  6. Use references/review-report-template.md when the user wants a structured summary.
  7. Write back unless the user asked for diagnosis only.
  8. Tell the user what changed and what was intentionally left untouched.

--themes And --export-image

For --themes, read the theme preview template and write report-themes-preview.html verbatim.

For --export-image, after HTML generation run:

python \x3Cskill-dir>/scripts/export-image.py \x3Coutput.html> --mode \x3Cmode>

If Playwright is unavailable, print install instructions and skip image export without failing HTML generation.

Shell And Template Boundary

Generate complete self-contained HTML. The shell entry contract lives in references/html-shell-template.md; full shell structure, inline JS, export behavior, summary card, edit mode, TOC, print rules, and footer/watermark degradation rules live in references/html-shell/*.md.

All scripts are inline in the shell template. Never load nonexistent files such as templates/scripts/*.js.

For custom templates and TOC slug rules, use references/toc-and-template.md.

Final Output

Always end with the file path and a one-sentence summary. If a validation, guard, or export step could not run, say exactly which step was skipped and why.

安全使用建议
This skill appears to be what it claims: a report/HTML renderer with themes, IR format, and helper scripts. It does not request secrets or unrelated permissions. Before installing or allowing the skill to run code, do the following: (1) inspect SKILL.md for hidden/odd characters (the scanner flagged unicode control characters); (2) review scripts/export-image.py and other scripts you may let the agent execute to ensure they don't perform unexpected network access or filesystem operations; (3) if you will allow image export, be aware it may require installing Playwright (a local dependency) — follow the README instructions and prefer running that locally rather than granting the agent permission to install packages; (4) prefer installing from the upstream GitHub repo URL shown in README and verify the repo owner; (5) if you do not trust executing repository scripts, use the skill in a mode that only generates HTML (no export-image) or run the repo code in a sandboxed environment. If you want, I can list files that call external network resources or open the top helper scripts (export-image.py, guard_validate.py) and summarize what they do.
功能分析
Type: OpenClaw Skill Name: kai-report-creator Version: 1.21.0 The kai-report-creator skill is a sophisticated tool for generating polished, single-file HTML reports. It includes robust mechanisms for ensuring output quality, such as a Python-based validation guard (guard_validate.py) and a detailed review checklist. The skill utilizes Playwright (export-image.py) for rendering reports to images and fetches content from URLs as a core feature. Analysis of the Python scripts, templates, and the SKILL.md instructions reveals no evidence of malicious intent, data exfiltration, or unauthorized execution. The 'Hard Rules' and 'Critical' sections within the documentation are strictly focused on preventing 'AI slop' and maintaining visual/structural integrity of the generated reports.
能力标签
cryptocan-make-purchasesrequires-sensitive-credentials
能力评估
Purpose & Capability
Name/description (report generation, themes, IR → HTML, export) match the repository contents: many templates, example reports, IR format docs, rendering scripts, and tests. The included scripts (export-image.py, guard/validation, evals, templates) are reasonable for a report renderer.
Instruction Scope
SKILL.md limits actions to reading IR files, templates, and running local helper scripts (e.g., scripts/export-image.py for image export). Those behaviours align with generating and exporting reports. Note: the skill instructs running Python scripts from the skill directory — which is expected for this kind of skill but means an agent that executes the skill could run arbitrary code present in the repo; review those scripts if you will allow code execution.
Install Mechanism
No automated install spec is present; README suggests git clone or clawhub install. No remote binary downloads, no obscure URLs in install instructions. This is low-risk compared to installers that fetch and execute remote archives.
Credentials
The skill declares no required environment variables, no credentials, and no config paths. That is proportional to the stated function (generate HTML reports from user-provided data/files).
Persistence & Privilege
always:false and user-invocable:true. The skill does not request permanent elevated presence. It does include scripts that write output files (HTML/images) which is expected for a renderer.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install kai-report-creator
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /kai-report-creator 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.21.0
Late-context isolation and release hardening: single-IR context extraction, late-context eval runner, stronger release verification, deterministic shell metadata, and repo docs sync.
v1.18.0
Fix theme routing for work reports: priority-ordered keyword matching now correctly routes weekly/daily/monthly reports to regular-lumen and generic work progress reports to corporate-blue fallback instead of dark-tech/dark-board.
v1.16.1
Tighten poster summary guardrails, tune title width/size to avoid broken wraps, add explicit poster_note support, and add release verification plus regression tests for summary-card and narrative-rhythm guardrails.
v1.15.0
IR contract hardening, eval workflow, and 125 passing Windows tests.
v1.14.2
Enforce full export menu completeness in the standard generate flow.
v1.14.1
Print/PDF export fix: preserve report background and keep animated KPI/data blocks visible in PDF output.
v1.13.0
fix: remove XML-like <file> tag from SKILL.md description to fix Claude Desktop install
v1.9.0
Added report review system with one-pass automatic refinement, silent final review during generate, review checklist/template, doc-sync checks, and reviewed demo assets.
v1.8.3
kai-report-creator v1.8.3 - Added new sample templates, example reports, and enhanced theme documentation. - Expanded built-in and custom theme support with updated theme and template files. - Improved IR/component rendering references and business/tech sample outputs. - General refinements to documentation and command usage instructions. - Test and script files updated to support new examples and image export scenarios.
v1.8.2
Restrained color system, warm premium business theme, and synced docs.
v1.8.1
Fix export background fallback for PNG/mobile/IM capture and add transparent-background regression coverage.
v1.8.0
feat: custom theme support — add themes/<name>/reference.md for AI-derived styles or themes/<name>/theme.css for direct CSS variables; sample theme _example-warm-editorial included
v1.7.0
feat: content-aware component selection — narrative reports no longer get forced KPI/chart placeholders; numeric density classification routes visual anchors to callout/timeline/diagram for text-heavy content
v1.6.0
feat: sankey chart component — node labels show name+value with rich text styling, edge labels show flow values inline, --plan mode auto-selects sankey for branching flow data
v1.5.2
kai-report-creator v1.5.2 - Documentation updates and clarifications in README, SKILL.md, and related docs - Improved consistency across English and Chinese documentation - No functional or command changes; this is a documentation-focused update
v1.5.1
kai-report-creator 1.5.1 - Added new reference: references/design-quality.md for improved report design and consistency. - Updated documentation in README.md, README.zh-CN.md, and SKILL.md for clearer usage, flags, and theme guidelines. - Enhanced theme and rendering guidelines in references/html-shell-template.md and references/rendering-rules.md. - Made minor CSS improvements in templates/themes/shared.css. - Improved clarity of supported features, flags, and report format in all documentation.
v1.4.1
Summary card redesign: editorial two-column layout, export fix
v1.4.0
Summary card overlay: every report now has a ⊞ Summary button next to the title. Click to open an editorial-style card with title, abstract, KPIs, and section chips. Close via ✕, Escape, or backdrop click.
v1.3.0
GSAP-inspired zero-dependency animation upgrade: KPI card spring-bounce stagger, timeline slide-in stagger, power3.out easing curves. No new libraries.
v1.2.3
fix: :::list 等 IR 指令泄漏到最终 HTML 的 bug,新增渲染前验证规则
元数据
Slug kai-report-creator
版本 1.21.0
许可证 MIT-0
累计安装 2
当前安装数 2
历史版本数 31
常见问题

Report Creator 是什么?

Use when the user wants to CREATE or GENERATE a report, business summary, data dashboard, or research doc — 报告/数据看板/商业报告/研究文档/KPI仪表盘. Handles Chinese and Eng... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 618 次。

如何安装 Report Creator?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install kai-report-creator」即可一键安装,无需额外配置。

Report Creator 是免费的吗?

是的,Report Creator 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Report Creator 支持哪些平台?

Report Creator 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Report Creator?

由 Kaiser(@kaisersong)开发并维护,当前版本 v1.21.0。

💬 留言讨论