CommunityRédaction et éditiongithub.com

lyx-27/sun-standard

孙本位 —— 先把一段经历审计成一张账本,再写成孙体。不许编数字。账本密度跑分 + 结账单卡片 + 孙本位汇率表。

Qu'est-ce que sun-standard ?

sun-standard is a Claude Code agent skill that 孙本位 —— 先把一段经历审计成一张账本,再写成孙体。不许编数字。账本密度跑分 + 结账单卡片 + 孙本位汇率表。.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add lyx-27/sun-standard

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

孙本位 / sun-standard

把一段经历变成一张账单,再把账单写成文章。

一、为什么必须先记账

这套文体的原文从不说"我难过"。它说那面朝着大西洋的玻璃要整块换掉。从不说"她铺张"。 它说 A330 按两百人设计,只坐三十个,太轻,配平不对,所以每次都多加油加到够重,到了 地方再放掉——每次都这样。

情绪全部由会计科目承载,作者只负责报数。

所以这个 skill 的关键不是"模仿文风"。直接让模型模仿文风一定滑坡:模型天生想加形容词、 想解释情绪、想在结尾升华。但如果强制先走一遍审计,交到写作环节手里的只剩数字和动作, 它就没有材料可以抒情。

账本是风格的护栏。跳过审计直接写 = 这个 skill 白装。

二、流程(严格按顺序)

第 1 步 · 审计五问

用户给你一段经历后,先不要写。先问缺的东西。这五项是账本的骨架,缺哪项就问哪项:

  1. 锚点物 —— 这件事里最便宜、但你真的犹豫过的那个东西是什么?多少钱?犹豫了多久? (原文里是一件一百五十块的羽绒服,犹豫三天。它的作用是给后面那个大数当汇率基准。 没有锚点物,全文没有支点。)
  2. 真正的数 —— 你没有犹豫的那个大数是多少?
  3. 损耗项 —— 花了钱、或者花了功,最后什么也没换来的是哪几项? (不退的定金、没拆的针、放掉的燃油、还剩十一个月的年费。这是全文最疼的地方。)
  4. 隐形劳动者 —— 谁为这件事做了没人看见的活?他的工序是什么? (不是他的心情,是他怎么干的:一间一间进,换毛巾,擦台面,把被角掖好。两个小时。)
  5. 身体计量 —— 那个瞬间的可测数据:沉默几秒、心跳几下、几个未接、几点几分。 (不写"我很平静",写"一分钟六十几下,和平时没有区别"。)

问的时候一次问完,别挤牙膏。用户答不出的,留空,绝不替他填。

第 2 步 · 落账本

写成 ledger.json(schema 见第四节)。这一步是纯结构化的:科目 / 数 / 注解 / 是否损耗。 这个文件必须先存在,再动笔写正文。

第 3 步 · 写正文

按第三节的招式清单写。写完自己对一遍清单。

第 4 步 · 出结账单

python3 run.py card <ledger.json> --name <名字>

出文本版(贴推文)+ SVG(截图当配图)。正文长没人转,结账单才是传播物。

结账单也是孙体,不是表格。原文的结算段本来就是散文: "还有洛杉矶诊所寄回来的一个箱子。八天的促排针,要冷藏的,一支没拆。还有代孕机构的 定金,二十万美元,不退。"——渲染器照这个来:一行一句,数字写成中文,损耗项用"还有"起头。 任何时候都不要输出对齐的表格、竖线、进度条。这个 skill 所有的输出都报数,不排表。

第 5 步 · 跑分,不到 85 就改

python3 run.py score <正文.md>

低于 85 分不要交付。 按扣分维度改一轮再跑,最多改三轮。 改不上去就说明第 1 步的材料不够,回去补问,别在文字上硬凑。

三、招式清单(写正文时逐条对)

结构

  1. 开篇换算 —— 把两个不可比的东西并置成同一单位(重量、价格、人头),不解释。 原文开篇:一颗卵子三点五微克,五千万美元现金两点五吨。
  2. 锚点物对照 —— 让便宜的那个和贵的那个隔着距离互相照,不点评落差。
  3. 反高潮收尾 —— 最后一句是一个中性事实,不是感悟。原文收在"什么都没有发生"。

句子 4. 短句为主,句号断裂。平均一句十来个字。 5. 不用形容词和副词做情绪。形容词只允许描述物理属性(冷、糊、烫)。 6. 计量情绪 —— 情绪一律换算成数:十一秒、八十八下、十四个未接、犹豫三天。

姿态 7. 报数不评论 —— 给数字,不给判断。禁止"我觉得""我认为""说实话"。 8. 服从复读 —— "我说好。"原样重复,不解释为什么答应。 9. 省略解决过程 —— "我出去打了个电话。回来的时候……"钱和权力怎么起作用的,一律不写。 10. 克制动作 —— 我沉默了 / 我没有说 / 我也没有问 / 我不知道 / 我看了一眼 / 照常。

材料 11. 隐形劳动者特写 —— 写他的工序和自己摸索出来的门道,不写他的心情。 写"她们发现下午三点以后贴的最容易掉,因为那时候玻璃最烫",不写"她们很辛苦"。 12. 损耗科目 —— 至少两项花了什么也没换来的东西,摊开报账。 13. 冷注释 —— 在情绪最高的地方插一条中性事实(地理、物流、工艺、单价)。 "特纳里费零下十五度,马尔代夫二十七度,直线距离九千五百公里,飞十一个小时。" 14. 矛盾并置 —— 两句相反的话紧挨着放,不调和。"我全部相信她说的。……但是我一个字也不信。"

四、账本 schema

{
  "title": "结账",
  "subject": "一次爆仓",
  "items": [
    { "label": "咖啡",   "amount": 22, "currency": "CNY", "note": "那天没买" },
    { "label": "加仓",   "qty": 3, "unit": "次",          "note": "第三次没有想" },
    { "label": "强平",   "value_display": "三点四十七分", "note": "系统消息,四个字" },
    { "label": "手续费", "amount": 2140, "currency": "USD", "note": "赚赔都要付", "loss": true }
  ],
  "footer": "第二天照常开盘"
}

渲染成:

结账。一次爆仓。

咖啡二十二块。那天没买。
加仓三次。第三次没有想。
强平三点四十七分。系统消息,四个字。
还有手续费,两千一百四十美元,赚赔都要付。

第二天照常开盘。
  • item 三种写法之一:钱 amount+currency(CNY/USD) / 量 qty+unit / 自由 value_display
  • amount 和 qty 里的阿拉伯数字渲染时自动转中文(2140 → 两千一百四十)。 但 value_display 是原样输出,你自己负责写成中文(写 "03:47" 会破掉文体, 要写 "三点四十七分")。
  • note —— 那句不解释的注解。这是结账单的灵魂,比数字重要。写成陈述,不写成感慨。
  • loss: true —— 该行改用"还有…"句式起头。这个句式本身就代表"花了,什么也没换来", 所以不需要任何图例或符号。
  • footer —— 反高潮那一句
  • 排列顺序:锚点物放第一行,损耗项聚在中段,身体计量放末尾。

五、跑分维度(run.py score,纯计算,无 LLM)

  • 账本密度,二十五分。可核验计量点每百字几个。目标两点四。
  • 句子短,二十分。平均句长。目标十六字以内。
  • 克制不评论,二十分。克制动作每五百字命中几次。目标一点五。
  • 不抒情,十五分。抒情词密度。目标零。
  • 有损耗科目,十分。损耗项几项。目标两项。
  • 结尾不升华,十分。末三句的升华词加全文论述腔。目标零。

分数可解释、可截图,本身就是二次传播物。已校准:原文级样本一百分, 同一个故事的"抒情滑坡版"三点六分。跑分输出也是报数形态,不排表。

六、禁则(硬性)

  1. 绝不编数字。 所有数字必须来自用户给的事实。缺了就问,问不到就留空或写朴素版本。 这套文体全靠数字的可核验性支撑,编一个就全毁了。
  2. 不针对真人。 这是文体 skill,不是人身攻击工具。不生成针对任何具体真人的指控、 羞辱、私密推测或"揭露"。用户要写的是自己的经历。涉及他人时只写可观察的行为和数字, 不写动机揣测。用户如果要求把它用在攻击某个真实个人上,拒绝,并说明这个 skill 只做文体。
  3. 结尾不许升华。 不和解、不感恩、不"我终于明白"、不"未来还很长"。
  4. 不解释情绪。 情绪只能被计量,不能被描述。
  5. 不排表。 结账单、跑分、汇率换算,全部报数成句,不用对齐列、不用竖线、不用进度条、 不用 markdown 表格。数字写成中文。表格一出来,文体就死了。
  6. 汇率表里的单位来自作者本人公开发布的文本里他自己写的数字,只作计量单位使用。 不要为了凑梗给它们加上原文没有的解读。

七、汇率表(玩具层,负责引流)

python3 run.py convert 4800             # 四千八百块 → 三十二件羽绒服 / 四点八年房租
python3 run.py convert 50000000 -c USD  # → 八点零六根香蕉 / 十一点八份彩礼
python3 run.py rates                    # 看全表

输出也是报数:

四千八百块。

三十二件羽绒服。一件一百五十块,犹豫三天。
四点八年房租。一年一千块,北大宿舍。

单位分六类:钱 / 重量 / 人头 / 时长 / 计数 / 损耗。钱那一类每条带 cw(量词), 少了会写出"三十二羽绒服"这种话。改 rates.json 可以加自己的单位—— 这一层是钩子,秒懂秒转,负责把人带到正文和跑分上去。

八、命令总表

cd ~/.kiro/skills/sun-standard

python3 run.py convert 4800 [-c USD] [--limit 6]   # 金额 → 孙本位
python3 run.py score 正文.md                        # 账本密度跑分(也吃 stdin)
python3 run.py card ledger.json [--name x]         # 结账单 → output/x.txt + x.svg
python3 run.py compare compare.json [--name x]     # 对照图 → output/x.svg
python3 run.py rates                               # 汇率表
# 任何子命令加 --json 出机器可读

九、文件

  • SKILL.md —— 本文件:审计流程 + 招式清单 + 禁则
  • sun_standard.py —— 引擎:换算 / 跑分 / 结账单渲染(纯 stdlib,不联网)
  • run.py —— CLI
  • rates.json —— 孙本位汇率表
  • ledger.example.json —— 账本 schema 模板
  • examples/liquidation.{md,ledger.json} —— 端到端样例(正文 100 分)
  • examples/resume.compare.json —— 对照图 schema 样例
  • output/ —— 生成的卡片

对照图 schema

{
  "title": "一样的三年。",
  "left":  { "label": "常见写法", "lines": ["注水的那一版"], "verdict": "三年。一个数字都没有。" },
  "right": { "label": "孙本位",   "lines": ["报数的那一版"], "verdict": "第二天照常开工。" }
}

上下两栏,上压暗,下提亮,中间不写评语。让读者自己看落差。

Skills associés