repo·evals
· 2026-07-09 ·main@cf4b810 (2026-07-01 push, package v1.0.0)

guizang-social-card · 归藏社交卡片技能

op7418/guizang-social-card-skill

02

03
WeChat 21:9 main cover
WeChat 1:1 share card
HTML
2026-07-09 · run-static-and-live-rendermanifest
🏭

85 / 100Production-ready

📝
🗺
01Signal scanning信号发现02Content acquisition内容获取03Content understanding内容理解04Topic curation选题决策05Content production内容生产06Creative assembly创意组装07Distribution & feedback分发反馈08Learning学习
📍
📍
🧬

🛑
0–29
⚠️
30–49
🛠
50–79
🏭
80–100
85
🏭· 85 / 100
85/100

+40+30+12+300
  • 12 claims passed, no critical failures
  • license exists; install path recorded in deployment.install_methods
  • release_pipeline=1, recently_active=True
  • multilingual_readme=true
  • evidence_completeness=portable

#1👤
#2🎯
#3🧭
#4

Finished content已成稿内容Pick platform选择平台and format和规格Turn story把内容into pages拆成页面Choose style选择风格and theme和主题Fill a fixed填入固定HTML layoutHTML 版式Render exact-size渲染精确尺寸PNG filesPNGLayout check版式检查passes?通过?Cover pair封面对or carousel或组图

npx skills add https://github.com/op7418/guizang-social-card-skill --skill guizang-social-card-skillany agent with a skills dir (Claude Code / Codex / Cursor)moderate
git clone into ~/.claude/skills/guizang-social-card-skill (then npm install + npx playwright install chromium)any (Node 18+, Playwright, Chromium ~150MB)moderate
  • 🌐
Playwright + Chromium
确定性 HTML→PNG 渲染引擎 + validate-social-deck.mjs 版式校验;需下载约 150MB 浏览器二进制
开源免费;需要下载匹配的 Chromium build。首次评测曾卡在下载,后续同日补装成功并跑通 render/validate。
Google Fonts (Inter / Noto Serif&Sans SC / Playfair / IBM Plex Mono)
精确排版字体;离线时回退系统字体,几何布局仍成立
装饰层依赖,非必需
免费图库 Unsplash / Pexels / Flickr CC / Wallhaven
用户无图时的兜底取图(用户图优先);落本地 + 写 SOURCES.md
版权未核实,SKILL 要求向用户披露后由用户判断
Mapbox / OSM static tiles + unpkg (lucide icons)
地图组件(旅行路线)与图标;仅对应版式用到
可选组件

12 / 14

· 14
11 1 2
  1. 🧾
    claim-001 critical

    实测:node scripts/check-skill-docs.mjs → 27/27 检查全 PASS,"27 skill doc checks passed.",EXIT_CODE=0。
  2. 📐
    claim-002 critical

    实测:grep M01-M16 → 16 个、S01-S12 → 12 个(共 28)distinct recipe ID;
  3. 🎯
    claim-008 critical

    源码确认:两模板画板为写死像素(.poster.xhs/.square/.wide 固定 w/h),排版全走 CSS Grid + var() tokens,无 Math.random / 无图像模型调用;
  4. 🖼
    claim-009 critical

    追加实测(2026-07-09 同日):Chromium 精确版本补装后,实际渲染出公众号 21:9(2100×900)+ 1:1 (1080×1080)封面对 PNG(sample_wechat-21x9.png / sample_wechat-1x1.png),逐张肉眼验收: Swiss 排版...
  5. 🔗
    claim-003 high

    文件树核对:16 个 references/*.md(platform-specs…qa-checklist)、template-editorial-card.html + template-swiss-card.html、validate-social-deck.mjs、scripts/(che...
  6. 🧱
    claim-004 high

    读取确认:swiss 943 行 / editorial 838 行,各 1 个内联 <style>;
  7. 📏
    claim-005 high

    通读 547 行源码:R1 overflow / R2 footer collision / R3 swiss bold / R4 min font / R5 4-band density / R6 h-xl cap / R7 figure margin / R8 visual bounds /...
  8. claim-010 high

    追加实测(2026-07-09 同日):`npx playwright install chromium` 补装 chromium_headless_shell-1223 成功后,对样本 deck 实跑 validate-social-deck.mjs。
  9. 🎣
    claim-011 high

    静态证据强:description 列全 小红书/Rednote/social card/封面/Live Photo/Swiss/magazine 等触发词 + 明确「不适用」(PPT / 长视频 / 纯修图);
  10. 🛑
    claim-012 high

    静态确认:SKILL「Do not use this skill for…」+「Outside scope — push back honestly」+ Non-Negotiables (不 fake data / 不裁掉人脸关键 UI / 不发明装饰)+ check-skill-docs 断言的...
  11. ⚖️
    claim-006 medium

    LICENSE 34524 bytes,首部 "GNU AFFERO GENERAL PUBLIC LICENSE";
  12. 🎬
    claim-007 medium

    check-skill-docs.mjs 已断言 live-photo-production.md 的 Information Budget / Triple Collage / Material-First / Long Video Intake / four-grid / visible-co...
  13. 📱
    claim-013 medium

    未实测。
  14. 🌐
    claim-014 medium

    未实测。

input_contract
output_contract
determinism
idempotence
no_skill_callouts
failure_mode_clarity

workflow_correctness
declared_call_graph
stop_conditions
handoff_points
atom_evidence
error_propagation
partial_failure_handling

  • evidence_completeness='portable' → capped at 'reusable'

archetype: hybrid-skillcore_layer_tested? Trueevidence: portablerecommended: reusablefinal: reusable
ceiling 1 · evidence_completeness='portable' → capped at 'reusable'

claim-001check-skill-docs.mjs 确定性 doc-integrity 校验criticalsupport-validation● passed
claim-00228 版式 + 10 主题的设计系统真实且已 wirecriticalsupport-design-system● passed
claim-003SKILL.md 引用完整性highsupport-skill-integrity● passed
claim-004两套种子模板自包含单文件highsupport-templates● passed
claim-005validate-social-deck.mjs 是真实 9 规则版式校验器highsupport-validation● passed
claim-006真实 AGPL-3.0 + 双授权(package.json 误标 ISC)mediumsupport-license● passed
claim-007Live Photo 管线文档 + 脚本齐备mediumsupport-livephoto● passed
claim-008确定性 by construction(固定像素 CSS,无图像模型)criticalcore-determinism● passed
claim-009核心 molecule 承诺:文章 → 可用封面对 / 组图 PNGcriticalcore● passed
claim-010版式关卡对真实渲染放行highcore-validation● passed
claim-011触发 / 能力圈精度设计highcore-triggering◐ partial
claim-012诚实自限(圈外主动说清)highcore-scope● passed
claim-013Live Photo → 有效 .pvt(真机)mediumcore-livephoto○ untested
claim-014网络取图 + 文字压图主体避让mediumcore-imagery○ untested

16

run-static-and-live-render

2026-07-09
2 / 2
  • claim-009 · passed
  • claim-010 · passed

run-static-and-render-attempt

2026-07-09
10 / 14
  • claim-001 · passed
  • claim-002 · passed
  • claim-003 · passed
  • claim-004 · passed
  • claim-005 · passed
  • claim-006 · passed
  • claim-007 · passed
  • claim-008 · passed
  • claim-011 · passed_with_concerns
  • claim-012 · passed

run-static-and-live-render

2026-07-09
2 / 2
  • claim-009 · passed
  • claim-010 · passed

run-static-and-render-attempt

2026-07-09
10 / 14
  • claim-001 · passed
  • claim-002 · passed
  • claim-003 · passed
  • claim-004 · passed
  • claim-005 · passed
  • claim-006 · passed
  • claim-007 · passed
  • claim-008 · passed
  • claim-011 · passed_with_concerns
  • claim-012 · passed
# Final Verdict

## Repo

- **Name**: op7418/guizang-social-card-skill
- **Version tested**: main@cf4b810 (2026-07-01 push, package v1.0.0)
- **Date**: 2026-07-09 (initial eval) + same-day follow-up run (live render)
- **Archetype**: hybrid-skill
- **Layer**: molecule
- **Score**: 85 /100  (from `verdict_calculator.py`, not judgement — updated same day after live render)
- **Category**: 🏭 Production-ready / 可用于生产
- **Tier**: 🏭 Team-ready / 团队就绪 (≥80)

## Plain English

- 采用即得 (if adopted): 从一篇文章一句话渲出成品级社交图组——小红书 3:4 组图与公众号 21:9+1:1 封面对,28 版式 × 10 主题,产物是确定性的 HTML→PNG(固定像素 CSS,不是图像模型),版式底线由一个 9 规则 DOM 校验器 + 一个零依赖文档校验器兜住。**本次同日追加实测:真的渲出了 21:9+1:1 封面对 PNG 并肉眼验收,无明显缺陷;版式校验器真跑通,且第一轮就真的抓到一个样本里的实际缺陷(标题超行)。**
- 何时后悔 (regret when): 指望它把封面渲得「有品味」(脚本只保证不溢出/可读/够密;本次肉眼验收的是「工整、无缺陷」,不是审美主观判断的替代,且只验了 1 个主题 × 1 篇文章);或没预料到它硬依赖 Node + Playwright + 可下载的 Chromium(~260MB,隔离环境第一次尝试超时,第二次补装成功);或在这个 AGPL-3.0 copyleft 仓库上改代码再分发 / 做对外 SaaS(会触发开源义务或需付费商业授权);或指望这次验收覆盖了真机发布到公众号编辑器的效果(未测,只验证到"产出正确的静态 PNG")。

## Why This Score

核心承诺是「文章 → 符合调性、可直接发布的封面对 / 组图 PNG」。初次评估把**确定性支撑层**打穿了(文档校验器 27/27、28×10 设计系统核实、双模板自包含),但核心渲染层因隔离环境缺 Chromium 精确版本未能验证,77 分被 core_layer_tested=false 压在 usable(🛠 可使用)。

**同日追加实测翻转了这一点**:`npx playwright install chromium` 补装 `chromium_headless_shell-1223` 成功后,对同一份样本封面对**真的**跑了 `validate-social-deck.mjs`——第一轮报 1 clean/0 fail/1 WARN(R6:21:9 标题渲成 2 行,超单行上限),这不是空跑,是校验器真的抓到了我样本里的一个真实缺陷;改窄标题后第二轮 2 clean/0 fail/0 warn。随后用 Playwright 独立截图两块 poster,产出真实 PNG,肉眼逐张验收:Swiss 排版工整、IKB 蓝仅出现在 2 处(分类标签+分隔线,未越界)、中文渲染清晰无乱码、"越大越轻"字重规则视觉成立、留白节奏舒适——**没有发现明显缺陷**。claim-009(核心 on-brand 承诺)与 claim-010(版式关卡对真实渲染放行)双双由 untested 转 passed,`core_layer_tested` 由 false 改 true,`evidence_completeness` 由 partial 升级 portable。分数 77 → **85**(🏭 production / team)。

### Top 3 score drivers(更新)

- +30(封顶): 静态 claim —— 4 个 critical 全部通过(含追加实测的 claim-009 核心承诺 + claim-010 版式关卡),12/14 claim 通过、0 失败,仅 2 个非核心分支(Live Photo、网络取图)仍未测。
- +12 : 维护证据 —— eval 纪律 +5(两个真实校验器,均已实测跑通)、近 90 天活跃 +5、双语 README +2。(release_pipeline +0:无 git tag / release / CI。)
- +3 : 生态 —— 4808★ 落 [1000,5000) 档给 +3(离 5000→+6 就差一点);molecule 无 layer 加成;真实 AGPL-3.0 → 0 罚分。

### Core outcome(更新)
可观测有效(支撑层 + 核心层):`check-skill-docs.mjs` 27/27 exit 0;28 版式 + 10 主题真实且 wire 进自包含模板;`validate-social-deck.mjs` 真实运行、真的抓到并验证修复了一个缺陷;AGPL-3.0 为真;**真实渲出的 21:9+1:1 封面对 PNG 经肉眼验收无明显缺陷**。
仍未观测:Live Photo→.pvt、网络取图封面、多主题/多文章批量一致性、真机发布到公众号编辑器的落地效果。

### Scenario breadth(更新)
支撑层:doc 校验器 1 次全通过;28 版式 / 10 主题 / 2 模板全量静态核实。核心层:**1 个主题(IKB)× 1 篇样本文章 × 2 块板(21:9+1:1)已渲染 + 版式校验 + 肉眼验收**——核心层广度从 0 提升到「单样本已验证」,但仍未做多主题/多文章的批量覆盖。evidence_completeness = portable(不是 full)。

### Repeatability
支撑层可复现:doc 校验器确定性(同输入同结论、退出码稳定);grep 计数可重放。核心层「by construction」的确定性**本次得到部分经验验证**:两轮跑校验器(改标题前后)行为符合预期、退出码稳定;仍未做同输入的双渲染逐位比对;字体走 CDN 是唯一潜在像素变量。

### Failure transparency
高。版式校验器对每条 R1-R9 FAIL 给出像素级 message + 分级修正建议,任一 FAIL 退出 1;本次亲历:R6 WARN 消息清楚指出"哪个元素、超了几行、上限是多少、怎么修",据此直接改对了标题。doc 校验器逐项 PASS/FAIL 打印并在失败时退 1。

## What Would Move The Score Up

1. (抬到 full / recommendable)多主题(Editorial × 4 剩余 + Swiss 其余强调色)+ 多篇不同题材文章批量渲染 + 校验,验证一致性而非单样本。
2. 补测 Live Photo→.pvt(claim-013)与网络取图封面(claim-014)两条未测分支。
3. 真机发布到公众号编辑器一次,验证粘贴/上传路径与本地 PNG 是否一致(本次只验证到本地渲染正确)。
4. 向上游提 PR 修正 package.json 的 ISC→AGPL 误标。

## Remaining Risks

Ranked.

| Risk | Severity | Impact | Mitigation |
|---|---|---|---|
| AGPL-3.0 copyleft + 双授权 | High | 改代码再分发 / 做对外 SaaS 触发开源义务,否则需付费商业授权(10-30 万 / 3 万) | Park 仅内部做封面自用(不触发);若要产品化,先谈商业授权 |
| 硬依赖 Node + Playwright + Chromium(~260MB) | Medium | 无浏览器时整条渲染管线不可用;首次安装可能因网络限流失败(本次即遇到过一次) | 部署前预置 chromium;离线环境不可用需提前告知 Vera |
| 审美覆盖面窄(本次只验 1 主题×1 文章) | Medium | 其余 9 套主题、不同题材文章的效果未知 | 正式采用前多主题/多文章批量抽验 |
| 未验证真机发布路径 | Medium | 本地 PNG 正确 ≠ 公众号编辑器粘贴/上传后效果一致 | Vera 首次使用时做一次真机发布验证 |
| 仓库年轻、单作者、无 CI/tag | Low-Med | 长期维护 / 回归风险 | 观察 issue 响应;锁定 commit cf4b810 自用 |
| package.json license 误标 ISC | Low | 授权歧义 | 以 LICENSE(AGPL-3.0)为准;上游提 PR 修正 |

## Verdict

采用,归 **Vera(视觉/配图 Manager)** 作 **封面/社交卡片主线(primary)**:公众号 21:9+1:1 封面对 + 小红书组图,渲出的 PNG/URL 交给 gzh-design 的封面槽(park-content-v1 05_production 主 / 06_assembly 支撑)。与 ponyo(小红书钩子标题公式)是**互补不同子赛道、非备胎**——ponyo 打磨钩子那行字,guizang 渲整张封面。**限定内部使用**以让 AGPL copyleft 保持休眠。**已完成从 🛠 可使用到 🏭 生产线的关键验证**(版式校验器真跑通 + 真实 PNG 肉眼验收无缺陷);下一步最小动作是多主题/多文章批量抽验 + 一次真机发布验证,把证据从 portable 推向 full。

## Related Artifacts

- Claim map: `claims/claim-map.yaml`
- Plan: `plans/2026-07-09-eval-plan.md`
- Runs:
  - `runs/2026-07-09/run-static-and-render-attempt/run-summary.yaml`(初次评估,浏览器受阻)
  - `runs/2026-07-09/run-static-and-live-render/run-summary.yaml`(同日追加:Chromium 补装成功、真跑校验器、真实渲染 + 肉眼验收)+ artifacts/(sample deck HTML + 两张真实 PNG)
- Verdict calculator input: `verdicts/2026-07-09-verdict-input.yaml`(同日更新:core_layer_tested→true, evidence_completeness→portable)
- Rendered HTML dossier: `verdicts/2026-07-09-verdict.html` (calculator) + vault `dossier.html` (render_verdict_html.py)