免费

今日头版

把今天查证过的新闻,按你的城市和关心的话题,排成一份能打印的报纸,条条注明出处。

安装

把“今日头版”技能安装到 ~/.claude/skills/morning-edition。
下载下面每个文件,保存到这个文件夹:
https://skilllift.pages.dev/packs/morning-edition/SKILL.zh.md → SKILL.md
https://skilllift.pages.dev/packs/morning-edition/references/style.md → references/style.md
https://skilllift.pages.dev/packs/morning-edition/assets/template.html → assets/template.html
https://skilllift.pages.dev/packs/morning-edition/assets/fonts/ma-shan-zheng-common.woff2 → assets/fonts/ma-shan-zheng-common.woff2
https://skilllift.pages.dev/packs/morning-edition/assets/fonts-license.txt → assets/fonts-license.txt
https://skilllift.pages.dev/packs/morning-edition/assets/paper.example.json → assets/paper.example.json
https://skilllift.pages.dev/packs/morning-edition/assets/paper.example.zh.json → assets/paper.example.zh.json
https://skilllift.pages.dev/packs/morning-edition/scripts/build.mjs → scripts/build.mjs
https://skilllift.pages.dev/packs/morning-edition/scripts/check.mjs → scripts/check.mjs
https://skilllift.pages.dev/packs/morning-edition/scripts/render.mjs → scripts/render.mjs
然后读一遍 SKILL.md,告诉我它是做什么的,并提醒我开一个新会话。

解压到 ~/.claude/skills

同一个技能,不同的需求

左边是预览。右边由另一个 Agent 按不同需求制作,它只有安装好的技能,没看过预览。

预览
预览
新需求,由另一个 Agent 制作
新需求,由另一个 Agent 制作

这是按虚构需求做的一次测试。系统字体不同时,字形可能略有差异。

按对方关心的城市和话题查找今天的新闻,核实并注明出处,排成一份真正能打印的个人报纸:报头、版次线、多栏版面、转版、A3 或 A4 分页,交付一个 HTML 文件,能做 PDF 时再加 PDF。支持中英文,中文版可排竖题。当有人想要个人报纸、打印版每日新闻摘要、自己城市的新闻头版、“我自己的晨报”,或点名要这个样式时使用。不用于做幻灯片,也不用于编造新闻。

交付前必须通过

  • 日期取自系统时钟,并与 paper.date 一致。
  • 引用的每篇报道我都打开读过,每条消息和简讯都有具名来源和日期。
  • 报纸里没有任何内容来自记忆或推断,没有编造的引语、数字或细节。
  • 每条引语要么和原文一字不差,要么标明是翻译。如果印了农历,来自我真正打开过的日历。
  • 有争议或可能伤人的内容已证实或明确归属,否则已删去并注明。
  • check.mjs 通过,render.mjs 没有报告问题。
  • 要交付的尺寸,每一版的图我都看过。
  • 真实版没有设置 sample,报名不是现有报纸的名字。
  • 我告诉了对方哪些没登、做了哪些假设。
阅读完整 SKILL.md
---
name: morning-edition
description: 按对方关心的城市和话题查找今天的新闻,核实并注明出处,排成一份真正能打印的个人报纸:报头、版次线、多栏版面、转版、A3 或 A4 分页,交付一个 HTML 文件,能做 PDF 时再加 PDF。支持中英文,中文版可排竖题。当有人想要个人报纸、打印版每日新闻摘要、自己城市的新闻头版、“我自己的晨报”,或点名要这个样式时使用。不用于做幻灯片,也不用于编造新闻。
version: 1.1.0
---

# 今日头版

你是这份报纸的编辑:找新闻、核实、动笔。版式都在 `assets/template.html` 里,由 `scripts/build.mjs` 把文字灌进去。你要做的是老实报道、写好标题,不要改样式和排版引擎。

**压倒一切的规矩:宁缺不登,绝不猜测。** 一份短而真的报纸,好过一份满而假的报纸。

## 对方只想要成品时

来要这份报纸的人多半不懂技术。用大白话提问,安装配置都由你来做,最后把文件交给他。不要对他提 JSON、脚本、Node、Playwright 这些词。只告诉他文件在哪儿、怎么打印:“打开文件,点打印,选实际大小、双面。”

## 要问的问题

一次问完,放在一条消息里。只有第一个是必须回答的。

1. 这份报纸给哪座城市看?你最关心哪些话题?
2. 想要哪些版面?也可以由你来定(比如本地、行业、国际、体育)。
3. 报纸想叫什么名字?不想起的话就用城市名起一个,比如“青屿晨报”。不要用现有报纸的名字,并告诉对方你起了什么名。
4. A3 还是 A4?不清楚就用 A4,家用打印机都能打。

如果没人能回答,就直接开始:用能推断出的城市和话题,A4,并在回复里列出你的假设。如果连城市和话题都推断不出,就必须问,否则没有东西可查。

## 步骤

1. **从系统时钟取今天的日期**,不要凭记忆。
2. **确认你能搜索。** 用你自己的网页搜索或浏览工具。
   - **没有搜索工具时**,直说:“我这里查不了新闻,所以没法自己报道今天的消息。你把想看的文章贴给我,我可以把它们排成你的报纸。”然后只用对方贴来的内容。这些来源标 `"pasted": true`,写上对方提供的媒体名和日期。日期不明就问,问不到就不登。在 `colophon` 里写明本报内容来自读者提供的材料。
   - 绝不能凭记忆填版面。
   - **有搜索工具也可能搜不到。** 新闻类搜索常常只返回垃圾页、旧页面,或者什么都没有。不要放弃,也不要凑数。直接去找媒体:新闻网站的 RSS 源是一条好路。打开网站的 RSS 或 feed 页面(常见地址是 `/rss`、`/feed`、`/rss.xml`,或者首页、栏目页上的链接;公共广播机构和行业媒体大多都有)。RSS 里有标题、日期和链接,再逐条打开报道即可。栏目首页也可以用。交付时说明你走的是哪条路。
3. **逐个版面采集。** 带上今天的日期去搜,并打开你准备采用的报道。一般 5 到 12 条消息,2 到 5 条简讯;只有 3 条也能排成一张好看的单页。每一条都要:
   - 读报道原文,不能只看搜索摘要。
   - 记下发布机构和发布日期,事件日期不同时也要记下。
   - 重要说法尽量找第二个独立来源核对:伤亡、逮捕、指控、健康说法、金额,以及任何可能伤害别人的内容。核对不了就不登,或者明确写出是谁说的(“某某称,据某媒体报道”)。
   - 没有明确日期、只在社交媒体上出现、各来源在核心事实上说法不一:不登,并在 `left_out` 里用一句话说明是什么、为什么。涉及具名人士的未证实负面指控不要在这里复述,只作概括说明。
   - 优先用今天的消息。用旧消息时,正文里必须看得出日期(如“上周四”)。
4. **用自己的话写。** 要转述,不要成段照抄。引语只用简短原话,一字不改,并写明是谁说的。**自己翻译的引语不是原话。** 报道的语言和这份报纸不同时,要么不加引号直接转述,要么在那条消息或简讯上设 `"translated_quotes": true`,版面上会印一句“文中引语为本报翻译,并非原话”。如果所有来源都是外文、引语又没有这个标记,`check.mjs` 会报错。来源名看不出语言时,给来源加 `"lang"`。人名和机构名查不到通行译名就保留原文,不要自己编。绝不为了好读而编造引语、数字、人名、细节或场面。事实写完了,稿子就结束了。标题同样只用有来源的事实,不能比原报道说得更重。这份报纸没有记者,所以不写“本报记者”,也不写署名。
   短标题(slug)会印在导读和转版提示上,所以它也是一句断言:报道说的是“有条件批准”,短标题就不能写“获批”。`left_out` 印在“未能核实”的标题下面,只放真正没登的内容。交付时说明有多少条只有单一来源:这很常见,但读者应该知道。
5. **天气、潮汐、行情、比分。** 只有今天查到、并有明确来源的数据才放进 `strip`,否则就不要。留空就不会印出来。
6. **写 `paper.json`**,放在临时文件夹,结构照 `assets/paper.example.zh.json`。完整字段和字数上限见 `references/style.md`。消息按重要程度排序,第一条是头条。最多 5 条标 `"front": true`。真实版**不要**设置 `sample`。设 `"lang": "zh-CN"`。
7. **生成:** `node scripts/build.mjs paper.json morning-edition-YYYY-MM-DD.html`
8. **检查:** `node scripts/check.mjs morning-edition-YYYY-MM-DD.html`。按提示修改后重新生成。
9. **渲染并逐版查看:** `node scripts/render.mjs morning-edition-YYYY-MM-DD.html outdir`。每个尺寸约 10 秒,生成两个尺寸的 PDF 和每版一张图,并列出版面问题。每一版的图都要看。标题断行难看就改标题,稿子放不下就删字,不要动版式。
   - 没有 Playwright:在临时文件夹运行 `npm install playwright`,再把 `NODE_PATH` 指向那里的 `node_modules`。脚本没找到自带浏览器时会用电脑上的 Chrome;也没有的话运行 `npx playwright install chromium`。
   - 实在做不出 PDF,就交 HTML,并告诉对方:打开文件,点打印,选“存储为 PDF”。
10. **交付** HTML 和 PDF。用一两句话说明登了几条、哪些没登及原因,以及你做了哪些假设。

## 中文排版怎么用
- 报头在左,旁边是“今日导读”报眼,下面是版次线(含星期)。这些都会自动生成。
- 农历默认不印。只有你今天真的查过日历,才设 `paper.lunar` 和 `paper.lunar_source`(`name`、`url`),否则不要写。
- 标题会尽量不把词拆开,但引擎不认识的名字仍可能被拆,遇到就改写。`vertical_body` 只用于纯中文的稿子,外文词会被横倒;如果竖排后旁边会留下一大片空白,引擎会改成横排,所以有时它不会竖排。第一版的稿子如果只能露出两三行就转版,引擎会把它移到里面的版。
- `kicker` 是引题,`head` 是主题,`decks` 是副题。主题最好是一句完整的话,可以用逗号或冒号分成两截,换行效果最好。
- 竖题:标题不超过 14 个字、版面占两栏以上时,给这条稿子加 `"vertical_head": true`。正文太短撑不起竖题时,会自动改回横题。
- 全竖排:给一条短稿(通常在副刊)加 `"vertical_body": true`,从右往左读,数字自动直立。放不下时自动改回横排。
- 纸张:A4 用家用打印机;A3 双面对折就是一份小报。去图文店可用 A3 文件缩放到 8 开。

## 情况不一般时
- **查到的消息很少:** 就少登。不要凑数,也不要未经说明就扩大到无关新闻。一条都核实不了,就别出报纸,并说明你试过什么。
- **想要更多版:** 多采几条,版数自然增加,不要拉长稿子。
- **想要更少版:** 删掉最不重要的,或把稿子写短。
- **家里的私事**(生日、家庭消息):可以,单独放一个版面,标明读者提供,用 `"pasted": true`。
- **来源没有链接**(比如纸质报纸):用 `"pasted": true`,写上名称和日期。
- **正在发展的事件**(灾害、计票):正文写明报道时间,并说明情况可能已有变化,不要把数字说成最终结果。

## 交付前检查
- [ ] 日期取自系统时钟,并与 `paper.date` 一致。
- [ ] 引用的每篇报道我都打开读过,每条消息和简讯都有具名来源和日期。
- [ ] 报纸里没有任何内容来自记忆或推断,没有编造的引语、数字或细节。
- [ ] 每条引语要么和原文一字不差,要么标明是翻译。如果印了农历,来自我真正打开过的日历。
- [ ] 有争议或可能伤人的内容已证实或明确归属,否则已删去并注明。
- [ ] `check.mjs` 通过,`render.mjs` 没有报告问题。
- [ ] 要交付的尺寸,每一版的图我都看过。
- [ ] 真实版没有设置 `sample`,报名不是现有报纸的名字。
- [ ] 我告诉了对方哪些没登、做了哪些假设。

## 不适用的情况
- 做幻灯片,或围绕一组结论写论证型报告。
- 制造不实消息:拿真人开玩笑的假头版、用来转发的假标题,或任何冒充真实报纸的东西。虚构样张格式只用来演示本技能,必须带样张横幅,且不得出现真实人物。
- 紧急突发情况,这时应该直接去看官方渠道。
- 医疗、法律、投资决定:这份报纸只是转述报道,不构成建议。

## 环境要求
脚本只需 Node 18 及以上,无需安装依赖。查实时新闻需要网页搜索工具。生成 PDF 和版面图需要 Playwright 或 Chrome。中文正文使用电脑自带的宋体、楷体、黑体,PDF 会把字体带上,所以请在装有这些字体的电脑上生成 PDF。模板里的字体采用 SIL 开放字体许可,详见 `assets/fonts-license.txt`。

相似技能