用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/skills-registry --skill codemie-html-report命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | codemie-html-report |
| description | > Use when this capability is needed. |
You are building a standalone HTML page that visually matches the CodeMie (EPAM AI/Run) product UI. The design system is a dark-first, professional theme with Inter font, subtle borders, and semantic color tokens. Every page you produce should feel like a native screen of the CodeMie platform.
Do NOT read any CSS files. Do NOT inline any CSS yourself.
In the <style> block write exactly this one token as the only content:
/* __CODEMIE_CSS__ */
A post-processing script will replace this token with the full design system CSS after you write the file. All component classes are documented in Steps 3 and 4 — use them freely without reading the source files.
Backwards compatibility: This step applies only when this skill is invoked from the codemie-analytics skill as part of its report pipeline. If you are generating a standalone HTML page directly for a user request, skip this step entirely and embed any data inline as regular JS variables.
When invoked from codemie-analytics, all JS data arrays must use
/*__DATA:name__*/ placeholders instead of inline values. The analytics skill's
inject-data.js step replaces these after the HTML file is written.
<script>
/* Data is injected by inject-data.js after this file is written — do NOT hardcode arrays */
const LEADERBOARD = /*__DATA:leaderboard-top__*/;
const SUMMARIES = /*__DATA:summaries__*/;
const LLM_DATA = /*__DATA:llms-usage__*/;
</script>
Rules for analytics-pipeline placeholders:
.json extension.
/*__DATA:leaderboard-top__*/ is only replaced when leaderboard-top.json exists.
Wrong name → the placeholder is silently skipped by inject-data.js.CRITICAL: Every HTML file you produce must be a single self-contained file. Do NOT use <link> tags. Write the /* __CODEMIE_CSS__ */ placeholder in the <style> block — the inject-css.js script will inline the full design system CSS after you write the file.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PAGE TITLE</title>
<style>
/* __CODEMIE_CSS__ */
/* === Page-specific styles (use CSS variables, not hex colors) === */
</style>
</head>
<body>
<!-- content -->
</body>
</html>
For light theme, add class="light" to the <html> tag. Dark is the default.
The resulting file must open correctly when copied to any machine with no local dependencies other than internet access for fonts.
Choose the layout that fits the content:
Use a simple page with a container — no app shell needed:
<body class="p-6">
<div class="container">
<h1>Report Title</h1>
<p class="text-muted mb-4">Generated on 2024-03-15</p>
<!-- sections -->
</div>
</body>
Use the app-shell layout when simulating a full CodeMie screen:
<div class="app-shell">
<div class="app-navbar"><!-- 72px icon rail --></div>
<div class="app-sidebar"><!-- 308px sidebar --></div>
<div class="app-content">
<div class="app-header"><!-- 56px top bar --></div>
<main class="app-main"><!-- scrollable content --></main>
</div>
</div>
<body class="flex items-center justify-center min-h-screen">
<div class="max-w-md w-full p-6"><!-- centered card --></div>
</body>
Use the library classes. Here are the most common patterns for reports:
<div class="stat-grid">
<div class="stat-card">
<span class="stat-card-label">TOTAL USERS</span>
<span class="stat-card-value">10,761</span>
<span class="stat-card-desc">All registered accounts</span>
</div>
<!-- more stat-cards -->
</div>
<div class="table-wrapper">
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Status</th>
<th class="td-number">Score</th>
</tr>
</thead>
<tbody>
<tr>
<td>John Doe</td>
<td><span class="badge badge-success"><span class="badge-dot"></span>Active</span></td>
<td class="td-number">92.5</td>
</tr>
</tbody>
<div class="card mt-4">
<div class="card-header">
<div class="card-title">Section Title</div>
<button class="btn btn-secondary btn-sm">Action</button>
</div>
<div class="card-body">
<!-- content -->
</div>
</div>
<div class="tabs">
<div class="tabs-list">
<button class="tab-item active">Overview</button>
<button class="tab-item">Details</button>
<button class="tab-item">History</button>
</div>
<div class="tabs-panel">
<!-- active tab content -->
</div>
</div>
<dl class="dl-grid">
<dt>Project</dt> <dd>CodeMie Platform</dd>
<dt>Status</dt> <dd><span class="badge badge-success"><span class="badge-dot"></span>Active</span></dd>
<dt>Owner</dt> <dd>Jane Smith</dd>
<dt>Created</dt> <dd>2024-01-15</dd>
</dl>
<div class="alert alert-info">
This report was generated automatically. Data reflects the last 30 days.
</div>
<div class="pagination">
<span class="pagination-info">Showing 1-20 of 84</span>
<button class="page-btn disabled">«</button>
<button class="page-btn active">1</button>
<button class="page-btn">2</button>
<button class="page-btn">3</button>
<button class="page-btn">»</button>
</div>
These rules ensure visual consistency with the CodeMie product:
Always use CSS variables for colors — never hardcode hex values. This keeps the page compatible with both dark and light themes. Example: color: var(--color-text-primary) not color: #FFFFFF.
Use the provided component classes — the library already handles border-radius, padding, font-size, hover states. Don't re-invent card or button styles with inline CSS.
Use semantic HTML — <table> for data, <button> for actions, <nav> for navigation, <label> for form fields. Never use <div> where an interactive element belongs.
Font stack — Inter is the primary font (loaded via Google Fonts in tokens.css). JetBrains Mono for code. These are included automatically through the stylesheet import.
Spacing — Use utility classes (p-4, mt-2, gap-3, mb-4) or CSS variables (var(--space-4)) for custom spacing. The spacing scale is: 2px, 4px, 6px, 8px, 10px, 12px, 16px, 20px, 24px, 32px.
Border radius — Cards use --radius-xl (12px). Inputs/buttons use --radius-lg (8px). Badges use --radius-full. Small elements use --radius-sm (4px) or --radius-md (6px).
Typography — Body text is 14px (--text-sm). Small text is 12px (--text-xs). Headings: h1=32px, h2=24px, h3=16px, h4=14px. Always use the heading classes or elements.
Page background — The main page background is --color-bg-page (#1A1A1A dark / #F9F9F9 light). Cards sit on --color-bg-card (#151515 dark / #FFFFFF light). These are handled by the body style and .card class automatically.
Borders — Default border is --color-border-structural (#333436 dark / #E5E5E5 light). Use the .border utility class or border: 1px solid var(--color-border-structural).
Status colors — Use badge variants for status: badge-success (green), (red), (yellow/orange), (blue), (cyan), (purple), (gray).
The style guide does not include a charting library. If the report needs charts:
#2297F6#C084FC#259F4C#F9303C#F5A534#06B6D4var(--color-text-muted) for axis labels and grid lines.card for consistent framingbody.p-6 > .container
h1 (report title)
p.text-muted (subtitle / date)
.alert.alert-info (optional context banner)
.stat-grid (KPI summary cards)
.stat-card x N
.card.mt-4 (main data section)
.card-header > .card-title + action buttons
.card-body
.table-wrapper > table.table
.pagination
.card.mt-4 (another section)
.card-header > .card-title
.card-body
.tabs > .tabs-list + .tabs-panel
.card.mt-4 (details section)
.card-body > dl.dl-grid
This pattern matches the analytics dashboard layout in the live CodeMie product and works for most reporting use cases.
After writing the HTML file, run this command to replace the placeholder with the full design system bundle and make the report self-contained:
node ${CLAUDE_PLUGIN_ROOT}/skills/codemie-html-report/scripts/inject-css.js <path-to-the-html-file-you-just-wrote>
For example:
node ${CLAUDE_PLUGIN_ROOT}/skills/codemie-html-report/scripts/inject-css.js reports/leaderboard-2026-Q1.html
Expected output: ✓ CSS injected into reports/leaderboard-2026-Q1.html
This step applies only when invoked from the codemie-analytics skill. Standalone HTML generation embeds data inline and must skip this step.
After the HTML file is written, run inject-data.js to replace every /*__DATA:name__*/
placeholder with the matching JSON file from the temp directory:
node ${CLAUDE_PLUGIN_ROOT}/skills/codemie-html-report/scripts/inject-data.js \
<path-to-html> <temp-dir>
For example:
node ${CLAUDE_PLUGIN_ROOT}/skills/codemie-html-report/scripts/inject-data.js \
reports/2026-05-07-leaderboard/leaderboard.html \
reports/2026-05-07-leaderboard/temp/
Placeholder names must exactly match the JSON filenames (without .json):
/*__DATA:leaderboard-top__*/ is replaced from leaderboard-top.json/*__DATA:summaries__*/ is replaced from summaries.jsonA wrong name means the placeholder is silently skipped. If no placeholders are matched at all, the script exits with an error.
Expected output:
✓ injected leaderboard-top
✓ injected summaries
✓ 2 data block(s) injected into reports/2026-05-07-leaderboard/leaderboard.html
Do not run inject-data.js before the HTML file exists. Run inject-css.js after inject-data.js.
Backwards compatibility: This step applies only when this skill is invoked from the codemie-analytics skill. Standalone HTML generation has no temp directory and must skip this step.
After the CSS is injected and the report is complete, always ask the user:
The report is ready at
<path>. Thetemp/directory (<OUT>) contains the raw API response files used to build it (~N files). Would you like to delete it?
If the user says yes, delete the temp directory:
rm -rf "<OUT>"
# e.g. rm -rf "reports/2026-05-07-executive-spending/temp"
Confirm deletion:
✓ Temp files deleted → reports/2026-05-07-executive-spending/temp
If the user says no (or does not respond), leave the directory intact and note its location so they can inspect or re-use the raw data later.
Source: codemie-ai/codemie-code — distributed by TomeVault.
badge-errorbadge-warningbadge-in-progressbadge-pendingbadge-advancedbadge-not-started