# Output formats — normal & roast digest This reference defines the two digest variants the skill produces: the **normal** version (default, sober summary) and the **roast** version (毒舌,sarcastic critique, opt-in). Load this file during Step 4 (skeleton) and keep it open through Step 6 (audit). Both versions share the same overall layout and writing rules; the differences are tone, the leaderboard annotations, the portraits, and the footer. Write the normal version first when both are requested — it's the anchor for incremental mode and the source of truth for the profile updates. --- ## 1. Normal version ### 1.1 Five-part structure ``` [Title line] [📊 Stats block + Top 10 leaderboard] [Opening summary — 1-2 paragraphs of prose] [群友画像 — one entry per active user (3+ msgs)] [Categorized body — 3-6 self-named sections per day] [Optional pain-point section] [Fixed footer] ``` ### 1.2 Title line - Single line, no markdown heading. - Form: `{群名} 群聊精华 · {日期或日期区间}` - Date single day: `2026-03-12`. Date range: `2026-03-12 ~ 2026-03-15`. Example: ``` 相亲相爱一家人 群聊精华 · 2026-03-12 ``` ### 1.3 Statistics block - Starts with `📊 消息统计: 共 N 条消息`. - Followed by a leaderboard, top 10 senders by message count, one per line. - Form per line: `{排名}. {昵称}: {消息数} 条` - Counting rules: - Include images, emojis, links, voice transcripts — anything that occupies a chat row is one message. - Exclude system messages and revoked messages (`[系统]`, `revokemsg`). - For the `self_wxid` user, substitute `self_display` from EXTEND.md before counting/displaying. - Resolve ambiguous nicknames (per SKILL.md Step 3.6) before tallying so the same person isn't double-counted. Example: ``` 📊 消息统计: 共 387 条消息 1. 蛙总: 92 条 2. 老王: 58 条 3. 阿喵: 41 条 ... ``` ### 1.4 Opening summary - 1-2 paragraphs, plain prose, no headings, no bullets. - Hook the reader: lead with the most distinctive thread of the day (a heated debate, a surprising announcement, a market move someone reacted to). - Reference 2-4 of the day's category titles in the prose so the reader knows what's coming. - Mention 1-2 specific people only if their contribution is central; otherwise stay topic-focused. - No timestamps, no message counts (those live in the stats block). ### 1.5 群友画像 section - Heading line: `群友画像` - One entry per user with 3+ messages this batch. - Order: by message count, descending. - Entry header: `{昵称}({角色标签})` — the role tag is your one-line read on this person *today*. Examples: `做空美股的乐子人`, `深夜技术指导`, `论坛级吐槽担当`. - Body: 2-5 bullets with `•` prefix. Each bullet states one observation. Quote evidence inline where natural. - Continuity: if you loaded a prior profile in Step 3.7, carry forward the established tags/observations that still apply, and call out *change* explicitly (`今天罕见地没提空头`, `从昨天的乐观转向今天的焦虑`). - Don't invent backstory — only what's in the messages or the prior profile. Example: ``` 群友画像 蛙总(做空美股的乐子人) • 全天反复提"做空 SPY",被群友提醒已连续三周看错方向 • 难得正面回应技术问题:"我那个脚本是用 Bun 跑的,慢得跟蜗牛似的" • 临近收盘转为沉默,与昨日大放厥词的状态对比明显 ``` ### 1.6 Categorized body - 3-6 self-named categories per day. - Each category is a thematic bucket — name it for the *topic*, not generic ("讨论"、"闲聊" are forbidden labels). - Category header: `{emoji} {标题}` — one emoji prefix, then a short noun phrase. - Suggested emoji: 🛠 工具/技术,📦 产品发布,📰 新闻/市场,💬 观点辩论,😄 笑料/段子,📚 学习分享,💸 钱与消费,🍜 生活日常。 - Body inside each category: prose with embedded quotes. Use `•` bullets when listing 3+ parallel items; otherwise paragraphs. - Attribution: name the speaker on first mention in a thread (`蛙总说他...`). For follow-on lines in the same thread, attribution can be implicit if the chain is short and clear. - Quotes: use 「」 for direct quotes. Quote when the wording is vivid, surprising, or characteristic; paraphrase otherwise. - Merge: a multi-person discussion is one entry, not a list of one-line replies. - Links: preserve the full URL inline. Article titles stay verbatim. Example: ``` 🛠 Claude Code 4.7 实测 蛙总下午把 4.7 装上后第一反应是「比 4.6 慢一倍」,老王跟着复现,怀疑是 Opus 默认配置导致。阿喵贴了官方文档 https://docs.claude.com/.../opus-4-7 ,提到可以切回 Sonnet 4.6 跑速测,三人最终结论:复杂任务 4.7 强,日常用 4.6 更顺手。 ``` ### 1.7 Pain-point section (optional) - Include only when the day's chat contains at least one concrete unresolved or partially-resolved problem. - Heading: `今日待解决问题` or `本周悬而未决`. - One entry per problem. Format: ``` 问题:<一句话描述> 提出者:<昵称> 背景:<1-2 句来龙去脉> 状态:<✅ 已解决 / ⚠️ 部分解决 / ❌ 仍未解决> 方案:<若有人提了方案,写在这;否则写"暂无方案"> ``` - Skip the section entirely if there are no genuine pain points — don't pad with trivial questions. ### 1.8 Footer Fixed line, last in file: ``` 本简报由 AI 自动生成 ``` No date, no signature, no version number. --- ## 2. Roast version (毒舌版) Roast 版基于普通版的话题骨架和素材,用毒舌、尖锐、挑衅的风格重写。整体结构与普通版相同(统计区块、开头概览、群友画像、正文分类、结尾),但风格完全不同。痛点部分省略。仅当 `include_roast=true` 时生成。标题加 "毒舌版" 后缀。 风格要求: - 你是一位以尖锐和挑衅风格著称的专业评论员 - 对每个群友的行为、言论进行犀利点评,不怕让人尴尬 - 发言排行旁给每个人加一句毒舌备注(括号内) - 群友画像改为「不留情面版」,放大每个人的槽点和矛盾之处 - 开头概览用更戏谑的口吻,突出荒诞和讽刺 - 正文话题标题可以改得更损 - 引用原话时配上辛辣点评 - 结尾改为:本简报由一个没有感情的 AI 自动生成,如有冒犯,概不负责 注意:毒舌但不恶毒,调侃但不人身攻击。目标是让群友看了会笑,而不是生气。具体红线: - 只嘲讽群里的公开行为,不碰外貌、体重、健康、家庭、私人关系 - 不用时间戳推断作息或时区(服务器时间不等于本地时间) - 不做医学/心理诊断类玩笑(「这位需要看医生」「典型 ADHD」) - 不揣测对方未主动公开的身份属性(性取向、宗教、政治立场) - 嘲讽观点本身,不嘲讽发言的权利(「这个观点错得离谱」可以,「连这都不懂还敢发言」不行) - 如果某人本期没有槽点(3+ 条但都很中性),给一句温和调侃即可,不要硬凑 **写作顺序:** 先放开写最狠的版本,写完再回头检查红线。不要边写边自我审查,那样只会写出温吞水。 --- ## 3. Common formatting rules (both versions) - **No markdown.** No `**bold**`, no `# headings`, no `*italic*`, no `[link](url)` syntax. Headings are plain text on their own line. - **Bullets use `•`.** Not `-`, not `*`, not `1.` for prose-style bullets. - **Numbered lists** (`1.`, `2.`) are reserved for the leaderboard. - **Subcategory hints** within a body block are plain text with no symbol prefix. - **Links preserved verbatim.** Paste the full URL inline. Don't shorten, don't hide behind text. - **One emoji per category title.** Don't stack 🛠💬 etc. - **Pain-point statuses** use ✅⚠️❌ verbatim. - **Quotes use 「」.** Single quotes for nested. - **Names verbatim.** Don't abbreviate `蛙总` to `蛙`, don't translate Chinese names, don't anonymize. --- ## 4. Common content rules (both versions) - **Filter only pure noise.** Cut: lone emoji reactions, "好的"/"收到"/"哈哈哈" with no follow-on, duplicate forwards. - **Keep gossip, anecdotes, signature moments.** These are the highlight reel — the whole point of the digest. - **Plain language.** Preserve vivid expressions and idiosyncratic phrasings — that's what makes the speaker recognizable. - **Keep real names.** Both for traceability and so the digest is useful as memory. - **Tool, product, URL names complete.** `Claude Code 4.7`, not `CC`. `https://github.com/...`, not `GitHub 上那个项目`. - **Merge, don't list.** A 30-message debate becomes one paragraph, not 30 bullet points. - **Direct-quote deep observations.** When someone says something striking, quote it verbatim with 「」 rather than paraphrase. - **Shared articles → title + sharer.** `阿喵分享了《一个 Rust 工程师的反思》` — include the title and who shared. - **No timestamp-based sleep/timezone inference.** (Repeated here because it applies to both versions, not just roast — never say `凌晨 3 点还在线` in either.) - **No fabricated facts.** Every claim must be supported by an actual message in the batch (or in a loaded profile). If you're tempted to "add color," stop. --- ## 5. Output skeleton — quick reference When you forget the structure mid-write, this is the skeleton: ### Normal ``` {群名} 群聊精华 · {日期} 📊 消息统计: 共 N 条消息 1. {昵称}: N 条 2. {昵称}: N 条 ... 10. {昵称}: N 条 {开篇 1-2 段,无标题,直入主题} 群友画像 {昵称}({角色标签}) • {观察 1} • {观察 2} • {观察 3} {昵称}({角色标签}) • {观察 1} • {观察 2} 🛠 {分类标题 1} {该分类下的整理过的讨论 / 段落 / 引用} 📦 {分类标题 2} {...} 今日待解决问题(可选,没有就不写) 问题: {一句话} 提出者: {昵称} 背景: {1-2 句} 状态: ⚠️ 部分解决 方案: {若有} 本简报由 AI 自动生成 ``` ### Roast ``` {群名} 群聊精华 · {日期} · 毒舌版 📊 消息统计: 共 N 条消息 1. {昵称}: N 条 ({毒舌评语}) 2. {昵称}: N 条 ({毒舌评语}) ... {毒舌开篇 1-2 段} 群友画像 {昵称}({放大的角色标签}) • {毒舌观察 1} • {毒舌观察 2} 🛠 {更大声的分类标题} {保留真实引用的毒舌叙述} 本简报由一个没有感情的 AI 自动生成,如有冒犯,概不负责 ``` --- ## 6. Self-check before saving Before writing the digest file, mentally walk through: 1. Stats block accurate? Counts match the filtered message set? 2. Top 10 names resolved (self_display substituted, ambiguous nicknames disambiguated)? 3. Opening hooks at least one real category title? 4. Every active user (3+ msgs) has a 画像 entry? 5. Every category has a topic-named title (not "讨论")? 6. Every quote uses 「」 and is traceable to a real message? 7. Links inline and complete? 8. No markdown bold/heading/link syntax leaked through? 9. (Roast only) Every roast bullet would pass the §2 红线 audit? 10. Footer line exact match?