用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ccwq/infocard-pub --skill infocard-metadata-provenance命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Use before infocard .docs authoring to select a registered theme from content-aware candidates. Owns the only content-to-theme association, capability filtering, bounded reproducible variation, and theme-decision.json.
Use when one URL or a complete user brief should become one published infocard through the .docs promotion workflow.
Light-batch publish 2–3 cards in parallel without worktree.
正在显示 SKILL.md
| name | infocard-metadata-provenance |
| description | 信息卡元数据规范管理员。负责 meta.yaml 字段标准、来源追溯、描述语言一致性,防止 desc 字段出现英文、字段名错误、date 缺失等元数据腐化问题。 |
| version | 1.0.0 |
| author | Hermes Agent |
| license | MIT |
| metadata | {"hermes":{"tags":["infocard","metadata","provenance","quality","desc","anti-pattern"],"related_skills":["infocard-style-man-skill","infocard-pub-publisher","any2card"]}} |
infocard-metadata-provenance 是信息卡元数据规范管理员,负责:
The matching docs/**/*.meta.yaml sidecar is authoritative input; _index.yaml and homepage payloads are derived index artifacts. Generation/publish workflows own slug, path, category, title, date, updated, tags, and desc. Index rebuild scripts validate/read sidecars and must not be treated as a repair layer.
For this repository, date and updated are card release/issuance timestamps in Asia/Shanghai with seconds unless the user explicitly requests archival source-time preservation. Keep upstream publication time separately as source evidence. If a timestamp is wrong, inspect the sidecar and the publish timestamp gate before debugging the index. See references/source-time-and-release-time.md and references/date-source-provenance.md.
⚠️
date必须带时分秒(2026-07-04): 用TZ=Asia/Shanghai date "+%Y-%m-%d %H:%M:%S"取实际值。裸日期YYYY-MM-DD会被rebuild_index.py解释为上海 00:00 → UTC 08:00 →fmt_dateUTC→SH 显示12:00:00。批量修复脚本见infocard-pub-publisher/scripts/fix-bare-dates.py。
| 字段 | 类型 | 说明 |
|---|---|---|
slug | string | URL slug,通常为 YYYYMMDD-title-slug |
path | string | HTML 文件相对路径,如 docs/20260612-foo.html |
category | string | 分类,如 open-source、person、ai-agent ← 必填,缺失则 build 硬失败 |
title | string | 卡片标题 |
date | string | 发布日期,格式 YYYY-MM-DD HH:MM:SS(精确到秒) |
updated | string | 更新时间,格式同 date ← 必填,且必须与 date 等值 |
tags | list | 标签列表 ← 必填,缺失则 build 硬失败 |
desc | string | 中文描述摘要(必填,见下方语言规则) |
style | string | 主题名,如 darkblue、redswiss、hardblue ← 建议填写 |
发布审计在公网验收完成后写入已有卡片的 .meta.yaml,在顶层与 note 同级。仅追加不覆盖,已有 release_audit 时只更新 published_commit 和追加 added_sections。
release_audit:
schema: 1 # 固定值,协议版本
published_commit: "bb14473" # 内容 commit SHA(不是 audit commit)
pages_url: "https://ccwq.github.io/infocard-pub/docs/20260723-unknowns-ai-guideline.html"
verified_at: "2026-07-23T17:00:00" # ISO 8601
visual_status: "VISUAL_PENDING" # PASS | VISUAL_PENDING
added_sections: "07快捷键速查表,08场景化配置方式" # 逗号分隔;新建卡留空
content_delta: "+201 lines (shortcuts/config/keymap/plugins)" # 简短变更说明
注意:
published_commit是内容 commit SHA(第一次 push 的 commit),不是 audit commit SHA。visual_status: VISUAL_PENDING是截图工具异常时记录,不等于"视觉失败"。
当用户约束中明确指定 taxonomy 字段时(如 taxonomy v2.0: tech_stack / topics / primary_content_type 必填),所有命名字段均为阻塞性必填:
taxonomy:
tech_stack:
- Python
- Claude Code
topics:
- academic research
- llm pipeline
primary_content_type: open-source toolkit
教训(2026-07-13): Academic Research Skills 卡首次写 meta.yaml 时完全遗漏 taxonomy 字段,build 通过但卡片语义不完整。下次遇到用户明确要求 taxonomy 结构时,必须在第一版 meta.yaml 中写入全部命名字段,不得后补。
| 字段 | 类型 | 说明 |
|---|---|
| source | string | 来源 URL |
| author | string | 作者/来源平台 |
| highlights | list | 亮点列表(用户约束明确要求时填写) |
| taxonomy | object | 见上方条件必填规则 |
desc vs description必须用 desc,禁止用 description 或其他名称。
# ✅ 正确
desc: 这是一段中文描述摘要
# ❌ 错误
description: This is English description
description: 这是一段描述摘要
症状:若 meta.yaml 写 description,build 后 _index.yaml 存 description;但首页渲染 JS 读取 desc,两边字段名不一致 → 首页列表中该卡描述为空。
防止:meta.yaml 一律写 desc,build 脚本有 normalize 兜底(description → desc),但源文件仍应统一。
desc 必须为中文所有 meta.yaml 的 desc 字段必须使用简体中文,不得使用纯英文或混合语言。
# ✅ 正确:中文描述摘要
desc: 把 Claude Code、Codex CLI、OpenCode 装进图形界面——文件树、Git 面板、用量统计全透明
# ❌ 错误:纯英文
desc: A curated awesome list of public autoresearch use cases
# ❌ 错误:前半中后半英
desc: Awesome Autoresearch 公开使用案例精选列表 — A curated awesome list of public autoresearch use cases
允许的情况:
Claude Code、Codex、draw.ionpm install --save-dev检测方法(发布前必做):
python3 - <<'PY'
import yaml, pathlib, re
docs = pathlib.Path('docs')
for m in docs.glob('*.meta.yaml'):
data = yaml.safe_load(m.read_text())
desc = data.get('desc','') or data.get('description','') or ''
if not desc: continue
# Check: desc must start with Chinese char
chinese_start = bool(re.search(r'^[\u4e00-\u9fff]', desc))
if not chinese_start:
print(f'NON-CHINESE START: {m.name}: {desc[:60]}')
PY
历史教训(2026-06-12):5 张卡的 desc 全为英文(awesome-autoresearch、drawio-skill、openskynet、plannotator、trinity),已在 commit 1590b3d 中统一翻译为中文。
date 必须精确到秒# ✅ 正确
date: 2026-06-12 20:20:00
updated: 2026-06-12 20:20:00
# ❌ 错误:只到日期
date: 2026-06-12
症状:若只写日期,首页显示粒度不足,排序精度下降。
规范:所有卡必须使用 YYYY-MM-DD HH:MM:SS 格式(24 小时制,东八区时间)。
source 和 author来源明确的卡应同时填写:
source: https://github.com/user/repo
author: github-username
若来源是 Wikipedia / 公开文档:
source: https://zh.wikipedia.org/wiki/...
author: Wikipedia
无外部来源时可不填 source。
description 而非 desc → 首页描述为空YYYY-MM-DD → 排序精度不足date 字段 → build 脚本报错或回退到 mtimeslug: foo 但 path: docs/bar.html → 索引错乱可信度、备注 等)时,若缩进少 1 空格,YAML 解析报 expected <block end>, but found '<block mapping start>'触发场景:在 meta.yaml 的 list(如 sources:、data_accuracy_notes:)下,用中文作为子键名。
错误写法:
sources:
- title: "GitHub 官方仓库"
url: https://github.com/opendatalab/MinerU
可信度: 高 # ← 少 1 空格!视觉对齐但 YAML 解析失败
备注: "Stars 66.9k"
正确写法:
sources:
- title: "GitHub 官方仓库"
url: https://github.com/opendatalab/MinerU
可信度: 高 # ← 4 空格,与 url/title 对齐
备注: "Stars 66.9k"
根因:中文字符视觉宽度与等宽 ASCII 不同,写入时容易"看起来对齐"但实际少 1 空格。
验证命令:
python3 -c "import yaml; yaml.safe_load(open('meta.yaml')); print('YAML OK')"
防呆建议:
credibility / note)"可信度":(YAML 解析器对引号键更严格,会拒绝缩进错误)每次发布 meta.yaml 前必须确认:
desc 而非 descriptiondesc 首字符是中文([\u4e00-\u9fff])desc 无前半中后半英的混合结构date 精确到秒(YYYY-MM-DD HH:MM:SS)slug 与文件名一致path 指向真实存在的 HTML 文件references/check_desc_required.py 扫描缺失摘要的 sidecar本技能不负责:
infocard-style-man-skill)infocard-pub-publisher)any2card)desc 而非 descriptiondesc 首字符为中文desc 无混合语言结构date 精确到秒path 指向真实文件