diff --git a/.previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/skill-overview.html b/.previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/skill-overview.html
index 2c826046..1ad73a78 100644
--- a/.previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/skill-overview.html
+++ b/.previews/yao-meta-skill-v2-report-demo/geo-content-brief-skill/reports/skill-overview.html
@@ -350,19 +350,26 @@
}
.metrics-report {
display: grid;
- gap: 20px;
+ gap: 22px;
+ }
+ .metrics-flow {
+ display: grid;
+ gap: 22px;
}
.metrics-primary {
display: grid;
- grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
- gap: 20px;
- align-items: stretch;
+ grid-template-columns: minmax(420px, 1fr) minmax(360px, 0.88fr);
+ gap: 22px;
+ align-items: start;
}
.metrics-primary .chart-figure {
- min-height: 100%;
+ min-height: 0;
display: grid;
align-content: center;
}
+ .metrics-primary .chart-figure svg {
+ max-height: 520px;
+ }
.metrics-note {
display: grid;
align-content: start;
@@ -416,9 +423,12 @@
font-size: 12px;
}
.metric-grid {
- grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
margin-top: 2px;
}
+ .metric-detail-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ align-items: stretch;
+ }
.list, .compact-list, .step-list {
margin: 0;
padding-left: 1.15em;
@@ -446,7 +456,7 @@
}
.metric-card {
display: grid;
- grid-template-columns: 92px minmax(0, 1fr);
+ grid-template-columns: minmax(96px, 118px) minmax(0, 1fr);
gap: 18px;
align-content: start;
min-height: 0;
@@ -474,6 +484,11 @@
}
.metric-card-body .compact-list {
gap: 7px;
+ max-width: 62ch;
+ }
+ .metric-card-body .compact-list li {
+ overflow-wrap: break-word;
+ word-break: normal;
}
.chart-figure {
margin: 0;
@@ -658,14 +673,16 @@
-
-
评分雷达展示结构完整度、触发边界、证据、维护和迁移的相对强弱。
-
- 成熟度条Maturity Bar
- - 稳定Stable完整度92SKILL.md 已存在,是 Skill 的入口。SKILL.md 已存在,是 Skill 的入口。
- 稳定Stable触发清晰100frontmatter description 已存在,具备基础路由面。frontmatter description 已存在,具备基础路由面。
- 关注Watch证据充分60已生成 12 / 20 类报告证据。已生成 12 / 20 类报告证据。
- 稳定Stable可维护性85SKILL.md 约 864 个词/字。SKILL.md 约 864 个词/字。
- 稳定Stable可迁移性100agents/interface.yaml 已存在。agents/interface.yaml 已存在。
- 可用Usable上下文成本78入口约 864 个词/字,references 约 565 个词/字。入口约 864 个词/字,references 约 565 个词/字。
-
+
+
+
评分雷达展示结构完整度、触发边界、证据、维护和迁移的相对强弱。
+
+ 成熟度条Maturity Bar
+ - 稳定Stable完整度92SKILL.md 已存在,是 Skill 的入口。SKILL.md 已存在,是 Skill 的入口。
- 稳定Stable触发清晰100frontmatter description 已存在,具备基础路由面。frontmatter description 已存在,具备基础路由面。
- 关注Watch证据充分60已生成 12 / 20 类报告证据。已生成 12 / 20 类报告证据。
- 稳定Stable可维护性85SKILL.md 约 864 个词/字。SKILL.md 约 864 个词/字。
- 稳定Stable可迁移性100agents/interface.yaml 已存在。agents/interface.yaml 已存在。
- 可用Usable上下文成本78入口约 864 个词/字,references 约 565 个词/字。入口约 864 个词/字,references 约 565 个词/字。
+
+
+
完整度92
- SKILL.md 已存在,是 Skill 的入口。SKILL.md 已存在,是 Skill 的入口。
- README.md 已存在,便于人工阅读。README.md 已存在,便于人工阅读。
- agents/interface.yaml 已存在,便于跨平台适配。agents/interface.yaml 已存在,便于跨平台适配。
触发清晰100
- frontmatter description 已存在,具备基础路由面。frontmatter description 已存在,具备基础路由面。
- description 有足够长度说明任务边界。description 有足够长度说明任务边界。
- description 已包含使用场景或排除边界信号。description 已包含使用场景或排除边界信号。
证据充分60
- 已生成 12 / 20 类报告证据。已生成 12 / 20 类报告证据。
- skill-ir.json 已存在。skill-ir.json 已存在。
- compiled_targets.json 已存在。compiled_targets.json 已存在。
可维护性85
- SKILL.md 约 864 个词/字。SKILL.md 约 864 个词/字。
- 入口文件保持克制,可维护性较好。入口文件保持克制,可维护性较好。
- references/ 已承载扩展指导。references/ 已承载扩展指导。
可迁移性100
- agents/interface.yaml 已存在。agents/interface.yaml 已存在。
- manifest.json 已存在。manifest.json 已存在。
- 目标平台或 adapter target 已声明。目标平台或 adapter target 已声明。
上下文成本78
- 入口约 864 个词/字,references 约 565 个词/字。入口约 864 个词/字,references 约 565 个词/字。
- 分数越高代表上下文成本越低。分数越高代表上下文成本越低。
- 上下文成本处于可控区间。上下文成本处于可控区间。
-
完整度92
- SKILL.md 已存在,是 Skill 的入口。SKILL.md 已存在,是 Skill 的入口。
- README.md 已存在,便于人工阅读。README.md 已存在,便于人工阅读。
- agents/interface.yaml 已存在,便于跨平台适配。agents/interface.yaml 已存在,便于跨平台适配。
触发清晰100
- frontmatter description 已存在,具备基础路由面。frontmatter description 已存在,具备基础路由面。
- description 有足够长度说明任务边界。description 有足够长度说明任务边界。
- description 已包含使用场景或排除边界信号。description 已包含使用场景或排除边界信号。
证据充分60
- 已生成 12 / 20 类报告证据。已生成 12 / 20 类报告证据。
- skill-ir.json 已存在。skill-ir.json 已存在。
- compiled_targets.json 已存在。compiled_targets.json 已存在。
可维护性85
- SKILL.md 约 864 个词/字。SKILL.md 约 864 个词/字。
- 入口文件保持克制,可维护性较好。入口文件保持克制,可维护性较好。
- references/ 已承载扩展指导。references/ 已承载扩展指导。
可迁移性100
- agents/interface.yaml 已存在。agents/interface.yaml 已存在。
- manifest.json 已存在。manifest.json 已存在。
- 目标平台或 adapter target 已声明。目标平台或 adapter target 已声明。
上下文成本78
- 入口约 864 个词/字,references 约 565 个词/字。入口约 864 个词/字,references 约 565 个词/字。
- 分数越高代表上下文成本越低。分数越高代表上下文成本越低。
- 上下文成本处于可控区间。上下文成本处于可控区间。
diff --git a/reports/skill-overview.html b/reports/skill-overview.html
index cd546d14..666051a6 100644
--- a/reports/skill-overview.html
+++ b/reports/skill-overview.html
@@ -350,19 +350,26 @@
}
.metrics-report {
display: grid;
- gap: 20px;
+ gap: 22px;
+ }
+ .metrics-flow {
+ display: grid;
+ gap: 22px;
}
.metrics-primary {
display: grid;
- grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
- gap: 20px;
- align-items: stretch;
+ grid-template-columns: minmax(420px, 1fr) minmax(360px, 0.88fr);
+ gap: 22px;
+ align-items: start;
}
.metrics-primary .chart-figure {
- min-height: 100%;
+ min-height: 0;
display: grid;
align-content: center;
}
+ .metrics-primary .chart-figure svg {
+ max-height: 520px;
+ }
.metrics-note {
display: grid;
align-content: start;
@@ -416,9 +423,12 @@
font-size: 12px;
}
.metric-grid {
- grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
margin-top: 2px;
}
+ .metric-detail-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ align-items: stretch;
+ }
.list, .compact-list, .step-list {
margin: 0;
padding-left: 1.15em;
@@ -446,7 +456,7 @@
}
.metric-card {
display: grid;
- grid-template-columns: 92px minmax(0, 1fr);
+ grid-template-columns: minmax(96px, 118px) minmax(0, 1fr);
gap: 18px;
align-content: start;
min-height: 0;
@@ -474,6 +484,11 @@
}
.metric-card-body .compact-list {
gap: 7px;
+ max-width: 62ch;
+ }
+ .metric-card-body .compact-list li {
+ overflow-wrap: break-word;
+ word-break: normal;
}
.chart-figure {
margin: 0;
@@ -658,14 +673,16 @@
-
-
评分雷达展示结构完整度、触发边界、证据、维护和迁移的相对强弱。
-
- 成熟度条Maturity Bar
- - 稳定Stable完整度100SKILL.md 已存在,是 Skill 的入口。SKILL.md 已存在,是 Skill 的入口。
- 稳定Stable触发清晰100frontmatter description 已存在,具备基础路由面。frontmatter description 已存在,具备基础路由面。
- 稳定Stable证据充分100已生成 20 / 20 类报告证据。已生成 20 / 20 类报告证据。
- 稳定Stable可维护性100SKILL.md 约 356 个词/字。SKILL.md 约 356 个词/字。
- 稳定Stable可迁移性100agents/interface.yaml 已存在。agents/interface.yaml 已存在。
- 关注Watch上下文成本42入口约 356 个词/字,references 约 15566 个词/字。入口约 356 个词/字,references 约 15566 个词/字。
-
+
+
+
评分雷达展示结构完整度、触发边界、证据、维护和迁移的相对强弱。
+
+ 成熟度条Maturity Bar
+ - 稳定Stable完整度100SKILL.md 已存在,是 Skill 的入口。SKILL.md 已存在,是 Skill 的入口。
- 稳定Stable触发清晰100frontmatter description 已存在,具备基础路由面。frontmatter description 已存在,具备基础路由面。
- 稳定Stable证据充分100已生成 20 / 20 类报告证据。已生成 20 / 20 类报告证据。
- 稳定Stable可维护性100SKILL.md 约 356 个词/字。SKILL.md 约 356 个词/字。
- 稳定Stable可迁移性100agents/interface.yaml 已存在。agents/interface.yaml 已存在。
- 关注Watch上下文成本42入口约 356 个词/字,references 约 15566 个词/字。入口约 356 个词/字,references 约 15566 个词/字。
+
+
+
完整度100
- SKILL.md 已存在,是 Skill 的入口。SKILL.md 已存在,是 Skill 的入口。
- README.md 已存在,便于人工阅读。README.md 已存在,便于人工阅读。
- agents/interface.yaml 已存在,便于跨平台适配。agents/interface.yaml 已存在,便于跨平台适配。
触发清晰100
- frontmatter description 已存在,具备基础路由面。frontmatter description 已存在,具备基础路由面。
- description 有足够长度说明任务边界。description 有足够长度说明任务边界。
- description 已包含使用场景或排除边界信号。description 已包含使用场景或排除边界信号。
证据充分100
- 已生成 20 / 20 类报告证据。已生成 20 / 20 类报告证据。
- skill-ir.json 已存在。skill-ir.json 已存在。
- compiled_targets.json 已存在。compiled_targets.json 已存在。
可维护性100
- SKILL.md 约 356 个词/字。SKILL.md 约 356 个词/字。
- 入口文件保持克制,可维护性较好。入口文件保持克制,可维护性较好。
- references/ 已承载扩展指导。references/ 已承载扩展指导。
可迁移性100
- agents/interface.yaml 已存在。agents/interface.yaml 已存在。
- manifest.json 已存在。manifest.json 已存在。
- 目标平台或 adapter target 已声明。目标平台或 adapter target 已声明。
上下文成本42
- 入口约 356 个词/字,references 约 15566 个词/字。入口约 356 个词/字,references 约 15566 个词/字。
- 分数越高代表上下文成本越低。分数越高代表上下文成本越低。
- 上下文成本偏高,建议压缩入口或拆分 references。上下文成本偏高,建议压缩入口或拆分 references。
-
完整度100
- SKILL.md 已存在,是 Skill 的入口。SKILL.md 已存在,是 Skill 的入口。
- README.md 已存在,便于人工阅读。README.md 已存在,便于人工阅读。
- agents/interface.yaml 已存在,便于跨平台适配。agents/interface.yaml 已存在,便于跨平台适配。
触发清晰100
- frontmatter description 已存在,具备基础路由面。frontmatter description 已存在,具备基础路由面。
- description 有足够长度说明任务边界。description 有足够长度说明任务边界。
- description 已包含使用场景或排除边界信号。description 已包含使用场景或排除边界信号。
证据充分100
- 已生成 20 / 20 类报告证据。已生成 20 / 20 类报告证据。
- skill-ir.json 已存在。skill-ir.json 已存在。
- compiled_targets.json 已存在。compiled_targets.json 已存在。
可维护性100
- SKILL.md 约 356 个词/字。SKILL.md 约 356 个词/字。
- 入口文件保持克制,可维护性较好。入口文件保持克制,可维护性较好。
- references/ 已承载扩展指导。references/ 已承载扩展指导。
可迁移性100
- agents/interface.yaml 已存在。agents/interface.yaml 已存在。
- manifest.json 已存在。manifest.json 已存在。
- 目标平台或 adapter target 已声明。目标平台或 adapter target 已声明。
上下文成本42
- 入口约 356 个词/字,references 约 15566 个词/字。入口约 356 个词/字,references 约 15566 个词/字。
- 分数越高代表上下文成本越低。分数越高代表上下文成本越低。
- 上下文成本偏高,建议压缩入口或拆分 references。上下文成本偏高,建议压缩入口或拆分 references。
diff --git a/scripts/render_skill_overview.py b/scripts/render_skill_overview.py
index 8ad1fbf5..d2bd162c 100644
--- a/scripts/render_skill_overview.py
+++ b/scripts/render_skill_overview.py
@@ -415,14 +415,16 @@ def render_html(summary: dict) -> str:
-
- {charts["radar"]}
-
- {bi_span("成熟度条", "Maturity Bar")}
- {render_metric_summary(scorecard)}
-
+
+
+ {charts["radar"]}
+
+ {bi_span("成熟度条", "Maturity Bar")}
+ {render_metric_summary(scorecard)}
+
+
+
{render_metric_cards(scorecard)}
-
{render_metric_cards(scorecard)}
diff --git a/scripts/skill_report_layout.py b/scripts/skill_report_layout.py
index f9fb09fa..c0c30bee 100644
--- a/scripts/skill_report_layout.py
+++ b/scripts/skill_report_layout.py
@@ -379,19 +379,26 @@ def skill_overview_css() -> str:
}
.metrics-report {
display: grid;
- gap: 20px;
+ gap: 22px;
+ }
+ .metrics-flow {
+ display: grid;
+ gap: 22px;
}
.metrics-primary {
display: grid;
- grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
- gap: 20px;
- align-items: stretch;
+ grid-template-columns: minmax(420px, 1fr) minmax(360px, 0.88fr);
+ gap: 22px;
+ align-items: start;
}
.metrics-primary .chart-figure {
- min-height: 100%;
+ min-height: 0;
display: grid;
align-content: center;
}
+ .metrics-primary .chart-figure svg {
+ max-height: 520px;
+ }
.metrics-note {
display: grid;
align-content: start;
@@ -445,9 +452,12 @@ def skill_overview_css() -> str:
font-size: 12px;
}
.metric-grid {
- grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
margin-top: 2px;
}
+ .metric-detail-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ align-items: stretch;
+ }
.list, .compact-list, .step-list {
margin: 0;
padding-left: 1.15em;
@@ -475,7 +485,7 @@ def skill_overview_css() -> str:
}
.metric-card {
display: grid;
- grid-template-columns: 92px minmax(0, 1fr);
+ grid-template-columns: minmax(96px, 118px) minmax(0, 1fr);
gap: 18px;
align-content: start;
min-height: 0;
@@ -503,6 +513,11 @@ def skill_overview_css() -> str:
}
.metric-card-body .compact-list {
gap: 7px;
+ max-width: 62ch;
+ }
+ .metric-card-body .compact-list li {
+ overflow-wrap: break-word;
+ word-break: normal;
}
.chart-figure {
margin: 0;
diff --git a/tests/verify_skill_overview.py b/tests/verify_skill_overview.py
index b51c8c5d..51a6e981 100644
--- a/tests/verify_skill_overview.py
+++ b/tests/verify_skill_overview.py
@@ -48,7 +48,10 @@ def main() -> None:
assert "background: #ffffff" in css_contract, css_contract[:1600]
assert ".section-body" in css_contract, css_contract[:7000]
assert ".metrics-primary" in css_contract, css_contract[:7000]
- assert "repeat(auto-fit, minmax(320px, 1fr))" in css_contract, css_contract[:9000]
+ assert ".metrics-flow" in css_contract, css_contract[:9000]
+ assert ".metric-detail-grid" in css_contract, css_contract[:9000]
+ assert "repeat(2, minmax(0, 1fr))" in css_contract, css_contract[:9000]
+ assert "repeat(auto-fit, minmax(320px, 1fr))" not in css_contract, css_contract[:9000]
assert "overflow-wrap: break-word" in css_contract, css_contract[:9000]
assert "@media (max-width: 980px)" in css_contract, css_contract[-2200:]
@@ -179,8 +182,11 @@ def main() -> None:
assert 'class="progress-bar"' in report_html, report_html[:2400]
assert 'aria-current' in report_html, report_html[-3000:]
assert 'class="section-body metrics-report"' in report_html, report_html[:9000]
+ assert 'class="metrics-flow"' in report_html, report_html[:9000]
assert 'class="metrics-primary"' in report_html, report_html[:9000]
assert 'class="metrics-stack"' not in report_html, report_html[:9000]
+ assert 'class="metric-grid metric-detail-grid"' in report_html, report_html[:12000]
+ assert report_html.index('class="metrics-primary"') < report_html.index('class="metric-grid metric-detail-grid"'), report_html[:12000]
assert "class='metric-summary-list'" in report_html, report_html[:9000]
assert "class='metric-card-head'" in report_html, report_html[:12000]
assert 'data-set-lang="zh-CN"' in report_html, report_html[:2600]