Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added py.typed
Empty file.
241 changes: 241 additions & 0 deletions skill-check-report-20260724-221916.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,241 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Skill Checker Report</title>
<style>
:root {
color-scheme: light;
--bg: #f5efe4;
--panel: #fffdf8;
--ink: #1f1a14;
--muted: #6e6458;
--border: #d6c9b7;
--accent: #1f6f78;
--accent-soft: #d7ece8;
--success: #217346;
--success-soft: #dcf4e4;
--danger: #a13232;
--danger-soft: #f8dddd;
--pill-neutral-bg: #efe6d8;
--pill-neutral-text: #5f5347;
--warn: #8c5f12;
--warn-soft: #fdecc8;
--shadow: 0 18px 40px rgba(31, 26, 20, 0.08);
}
* { box-sizing: border-box; }
body {
margin: 0;
font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
background:
radial-gradient(circle at top left, rgba(31, 111, 120, 0.18), transparent 28%),
linear-gradient(180deg, #fcf8ef 0%, var(--bg) 100%);
color: var(--ink);
}
.shell {
max-width: 1080px;
margin: 0 auto;
padding: 40px 20px 72px;
}
.hero, .panel {
background: var(--panel);
border: 1px solid var(--border);
border-radius: 24px;
box-shadow: var(--shadow);
}
.hero {
padding: 28px;
margin-bottom: 24px;
position: relative;
}
.lang-switch {
position: absolute;
top: 18px;
right: 18px;
display: inline-flex;
border: 1px solid var(--border);
border-radius: 999px;
background: #fff8ec;
overflow: hidden;
}
.lang-switch button {
border: 0;
background: transparent;
padding: 6px 12px;
font-size: 12px;
font-weight: 700;
cursor: pointer;
color: var(--muted);
}
.lang-switch button.active {
background: var(--accent);
color: #ffffff;
}
.lang {
display: none;
}
html[data-lang="en"] .lang-en {
display: inline;
}
html[data-lang="zh"] .lang-zh {
display: inline;
}
h1 {
margin: 0 0 8px;
font-size: 32px;
line-height: 1.15;
}
.hero p {
margin: 0;
color: var(--muted);
font-size: 16px;
}
.status-row {
display: flex;
gap: 12px;
flex-wrap: wrap;
margin-top: 18px;
}
.status-pill {
display: inline-flex;
align-items: center;
gap: 8px;
border-radius: 999px;
padding: 10px 14px;
font-weight: 700;
background: var(--pill-neutral-bg);
color: var(--pill-neutral-text);
}
.status-pill.pass {
background: var(--success-soft);
color: var(--success);
}
.status-pill.fail {
background: var(--danger-soft);
color: var(--danger);
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 24px;
}
.panel {
padding: 24px;
}
.panel h2 {
margin: 0 0 16px;
font-size: 20px;
}
ul {
margin: 0;
padding-left: 18px;
}
li + li {
margin-top: 10px;
}
.finding {
border: 1px solid var(--border);
border-radius: 18px;
padding: 18px;
background: #fffaf1;
}
.finding + .finding {
margin-top: 16px;
}
.finding-head {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 10px;
flex-wrap: wrap;
}
.badge {
display: inline-block;
border-radius: 999px;
padding: 4px 10px;
font-size: 12px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.badge.severe {
background: var(--danger-soft);
color: var(--danger);
}
.badge.warning {
background: var(--warn-soft);
color: var(--warn);
}
code {
background: #f3ebe0;
padding: 2px 6px;
border-radius: 6px;
font-family: "Cascadia Code", "Consolas", monospace;
}
.empty {
color: var(--muted);
margin: 0;
}
</style>
</head>
<body>
<main class="shell">
<section class="hero">
<div class="lang-switch" aria-label="Language switch">
<button id="btn-en" class="active" type="button">EN</button>
<button id="btn-zh" type="button">中文</button>
</div>
<h1><span class="lang lang-en">Skill Checker Report</span><span class="lang lang-zh">Skill Checker 报告</span></h1>
<p>
<span class="lang lang-en">Static specification and semantic checks for a target `SKILL.md` based on Agent Skills specification.</span>
<span class="lang lang-zh">根据 Agent Skills specification 对目标 `SKILL.md` 进行静态规范与语义质量检查。</span>
</p>
<div class="status-row">
<div class="status-pill pass">
<span class="lang lang-en">Pass</span>
<span class="lang lang-zh">通过</span>
</div>
<div class="status-pill">
<span class="lang lang-en">Severe 1</span>
<span class="lang lang-zh">严重问题 1</span>
</div>
<div class="status-pill">
<span class="lang lang-en">Warnings 2</span>
<span class="lang lang-zh">一般问题 2</span>
</div>
</div>
</section>
<section class="grid">
<section class="panel">
<h2><span class="lang lang-en">Summary</span><span class="lang lang-zh">摘要</span></h2>
<ul><li><strong><span class='lang lang-en'>Target Path:</span><span class='lang lang-zh'>目标路径:</span></strong> <span class='lang lang-en'>SKILL.md</span><span class='lang lang-zh'>SKILL.md</span></li><li><strong><span class='lang lang-en'>Resolved From:</span><span class='lang lang-zh'>解析来源:</span></strong> <span class='lang lang-en'>File</span><span class='lang lang-zh'>文件</span></li><li><strong><span class='lang lang-en'>Checked File:</span><span class='lang lang-zh'>检查文件:</span></strong> <span class='lang lang-en'>/tmp/audit-final-check/herpeakgem/SKILL.md</span><span class='lang lang-zh'>/tmp/audit-final-check/herpeakgem/SKILL.md</span></li><li><strong><span class='lang lang-en'>Checked At:</span><span class='lang lang-zh'>检查时间:</span></strong> <span class='lang lang-en'>2026-07-24T22:19:16+08:00</span><span class='lang lang-zh'>2026-07-24T22:19:16+08:00</span></li><li><strong><span class='lang lang-en'>Final Result:</span><span class='lang lang-zh'>最终结论:</span></strong> <span class='lang lang-en'>Pass</span><span class='lang lang-zh'>通过</span></li><li><strong><span class='lang lang-en'>Severe Findings:</span><span class='lang lang-zh'>严重问题:</span></strong> <span class='lang lang-en'>1</span><span class='lang lang-zh'>1</span></li><li><strong><span class='lang lang-en'>Warnings:</span><span class='lang lang-zh'>一般问题:</span></strong> <span class='lang lang-en'>2</span><span class='lang lang-zh'>2</span></li></ul>
</section>
<section class="panel">
<h2><span class="lang lang-en">Fix Priority</span><span class="lang lang-zh">修复优先级</span></h2>
<ul>
<li><span class="lang lang-en">Fix all severe findings before warnings.</span><span class="lang lang-zh">先处理所有严重问题,再处理一般问题。</span></li>
<li><span class="lang lang-en">The audit fails when severe findings reach 2 or more.</span><span class="lang lang-zh">若严重问题达到 2 个及以上,本次检查结论为不通过。</span></li>
<li><span class="lang lang-en">Prioritize `name`, `description`, frontmatter structure, and executable body guidance.</span><span class="lang lang-zh">重点关注 `name`、`description`、frontmatter 结构和正文可执行性。</span></li>
</ul>
</section>
</section>
<section class="panel" style="margin-top: 24px;">
<h2><span class="lang lang-en">Findings</span><span class="lang lang-zh">发现的问题</span></h2>
<article class='finding'><div class='finding-head'><span class='badge severe'><span class='lang lang-en'>severe</span><span class='lang lang-zh'>严重</span></span><code>semantics.description-trigger-context</code></div><h3><span class='lang lang-en'>`description` does not clearly state when this skill should be used.</span><span class='lang lang-zh'>`description` 没有清晰说明何时使用这个 skill。</span></h3><p><strong><span class='lang lang-en'>Evidence:</span><span class='lang lang-zh'>证据:</span></strong> 他山之石智能教育平台 — 多 Agent 协作教学、知识库管理、Web 服务</p><p><strong><span class='lang lang-en'>Suggestion:</span><span class='lang lang-zh'>建议:</span></strong> <span class='lang lang-en'>Add trigger wording such as `Use when ...`.</span><span class='lang lang-zh'>在描述中加入触发语句,例如 `Use when ...` 或中文的 `当需要...时使用`。</span></p></article><article class='finding'><div class='finding-head'><span class='badge warning'><span class='lang lang-en'>warning</span><span class='lang lang-zh'>一般</span></span><code>semantics.recommended-description_en</code></div><h3><span class='lang lang-en'>Recommended field `description_en` is missing or empty.</span><span class='lang lang-zh'>推荐字段 `description_en` 缺失或为空。</span></h3><p><strong><span class='lang lang-en'>Evidence:</span><span class='lang lang-zh'>证据:</span></strong> None</p><p><strong><span class='lang lang-en'>Suggestion:</span><span class='lang lang-zh'>建议:</span></strong> <span class='lang lang-en'>Add `description_en` to provide an English description for bilingual readability.</span><span class='lang lang-zh'>补充 `description_en`,用于提供双语描述,提升跨语言可读性。</span></p></article><article class='finding'><div class='finding-head'><span class='badge warning'><span class='lang lang-en'>warning</span><span class='lang lang-zh'>一般</span></span><code>semantics.recommended-description_zh</code></div><h3><span class='lang lang-en'>Recommended field `description_zh` is missing or empty.</span><span class='lang lang-zh'>推荐字段 `description_zh` 缺失或为空。</span></h3><p><strong><span class='lang lang-en'>Evidence:</span><span class='lang lang-zh'>证据:</span></strong> None</p><p><strong><span class='lang lang-en'>Suggestion:</span><span class='lang lang-zh'>建议:</span></strong> <span class='lang lang-en'>Add `description_zh` to provide a Chinese description for bilingual readability.</span><span class='lang lang-zh'>补充 `description_zh`,用于提供双语描述,提升跨语言可读性。</span></p></article>
</section>
</main>
<script>
function setLang(lang) {
document.documentElement.setAttribute("data-lang", lang);
const en = document.getElementById("btn-en");
const zh = document.getElementById("btn-zh");
en.classList.toggle("active", lang === "en");
zh.classList.toggle("active", lang === "zh");
}
document.getElementById("btn-en").addEventListener("click", function () { setLang("en"); });
document.getElementById("btn-zh").addEventListener("click", function () { setLang("zh"); });
setLang("en");
</script>
</body>
</html>
Loading