From f994f18438725a2a63841d447d20f425a1219f02 Mon Sep 17 00:00:00 2001 From: Beast Date: Mon, 22 Jun 2026 01:38:27 +0800 Subject: [PATCH] chore: snapshot inspiration-article skill (Mode A/B writing framework, 2026-06-21 baseline) --- templates/inspiration-article-skill.md | 293 +++++++++++++++++++++++++ 1 file changed, 293 insertions(+) create mode 100644 templates/inspiration-article-skill.md diff --git a/templates/inspiration-article-skill.md b/templates/inspiration-article-skill.md new file mode 100644 index 0000000..114fb81 --- /dev/null +++ b/templates/inspiration-article-skill.md @@ -0,0 +1,293 @@ +--- +name: inspiration-article +description: > + This skill should be used when the user generates an insight during conversation + and wants it preserved as a structured Markdown article in the inspiration-collector + repository. The skill covers writing style (the "穿行" tone: first-person grounded + narrative, shocked/fatalistic, "不是…是…" constructions, tables for data), file + naming conventions, the base64-based push workflow to Gitea, and INDEX.md maintenance. + Trigger phrases include "写成一篇文章", "推送到灵感收集器", "固化到 git", "生成文章", + "整理成 md", or any request to preserve a philosophical or reflective insight as a + numbered article. +agent_created: true +--- + +# Inspiration Article Workflow + +## When to Use + +The user often generates profound insights during conversation — about geography, reading, +time, self-identity, philosophy. This skill captures the workflow for transforming those +conversational responses into structured, numbered Markdown articles stored in the +`fxy/inspiration-collector` Gitea repository. + +## Article Sources (Dual Pipeline — 2026-06-19) + +Inspiration articles enter the pipeline through two distinct gates: + +``` +Gate A: 灵感 → Memos → 日报分析 → 灵感文章 + Signal: User is "hit by something" — a landscape, a conversation, a sudden realization. + Source: Memos database, daily digest analysis. + +Gate B: 阅读摘录 → 对话讨论 → 灵感文章 + Signal: User shares a book highlight and it sparks extended analysis. + Source: WeRead highlights/notes, brought into conversation, discussed to depth. +``` + +**Both gates feed the same output system** — numbered article series, INDEX.md classification, Gitea archiving. The dual pipeline means article production is no longer limited by "what hit me today" — reading provides a continuous second feed. + +When a reading highlight sparks a substantial exchange (as opposed to a quick Q&A), recognize it as Gate B material and offer to preserve it as an article. + +### Frontmatter: Source Book Tag (Gate B required) + +Articles from Gate B (reading) MUST carry `source_book` in frontmatter: + +```yaml +source_book: 《反脆弱》 +``` + +Articles from Gate A (inspiration/travel/reflection) do not use this field. This distinction enables per-book indexing — after finishing a book, all articles triggered by it can be compiled into a dedicated index at `ai-insights/book-index/《书名》/`. + +### Book Completion Deliverables + +When the user finishes a book: +1. **Highlight card compilation** — all highlights from that book, organized by chapter +2. **Article index** — numbered list + summaries of all inspiration articles tagged with `source_book: 《书名》` + +Storage: `fxy/inspiration-collector` → `ai-insights/book-index/《书名》/` + + + +## Writing Style + +There are **two valid modes**, corresponding to two different types of insight. +Both are good. Choose the mode that fits the material. + +--- + +### Mode A: 「穿行」— First-Person Grounded Narrative + +**Reference article:** `08_穿行——高铁八小时与地理决定论.md` + +**When to use:** Personal experiences, real-time reflections, the user is living +through something and thinking about it as it happens. The insight is arriving in +the moment, not being recollected from a distance. + +**Voice: first person, present in the scene.** +"I" is the protagonist — "我选了高铁,八小时", "我忽然想到", "我看见了一条河". +This is not detachment; this is someone in the middle of an experience. + +Occasionally shifts to rhetorical "你" for universal observations — "你往左看它在, +往右看它还在", "你不会觉得封闭" — but dominant voice is first person. + +**Rhythm: short sentences, short paragraphs.** +One idea per breath. No filler: + +> 然后我看见了一条河。 +> +> 那不是关中的河。 + +**The "不是…是…" construction is the signature.** +Negate the conventional assumption, then offer the real reason: + +> 不是因为省钱,也不是怕坐飞机。是我在这五周结束之后,需要一趟完整的穿越。 +> 那不是开放心态,是开放地形。 + +**Concrete first, abstraction follows.** +The river comes before geography. The train window before philosophy. Start with +an object, a scene, a sensation — the idea emerges from it. + +**Closing loops back to the opening image.** +"火车在过三门峡了。窗外的塬开始出现了。河重新落了下去。" + +**Structure (Mode A):** +1. Opening scene — where, when, what was seen +2. The strike — the instant of being hit +3. Unfolding — analysis + context + history, **tables** embedded in narrative +4. The "所以" moment — conclusion drawn back to the concrete +5. Personal resonance — weave to other things in the user's life +6. Closing image — return to opening, now carrying the weight of discovery + +--- + +### Mode B: 「原来不是所有的地方都有关」— 克制但有穿透力的哲学散文 + +**Reference article:** `11_原来不是所有的地方都有关.md` + +**When to use:** When a personal experience triggers a broader philosophical insight. +The material spans multiple domains — geography, history, personal identity, worldview +transformation. The article is not just recounting what happened; it's drawing out the +*meaning* of what happened, connecting it to universal patterns. + +**Core aesthetic: 克制但有穿透力。** 纯抒情极少,多多少少都要带思考。情感不靠 +感叹号释放,靠结构层叠积累。写到最深处,不是呐喊,是一句平静的判断——"它不需要 +你认识它。它只需要你路过它。然后门就开了。" + +**Voice: third-person framing with universal "你".** +The article refers to the user as "冯先生" or "这个人" in the framing, then shifts to +"你" for universal truths. This creates distance from the rawness of the moment while +maintaining intimacy with the insight: + +> "从关中出发的人,看到颍河的第一个反应是'河怎么可以和地面齐平'。颍河边长大的人 +> 看到渭河,反应大概是'河怎么可以在那么深的沟底下'。都是对的。都是被自己脚下的地 +> 教会了什么是'正常'。" + +Not "我被击中了!" — that's Mode A. Instead: "撞破这个'正常'的契机,不是知识,不是 +阅读,不是任何人的劝说。是同一趟火车,同一个位置,同一条没有标识的普通河流。" + +**Structure: numbered sections with clear thematic arcs.** +Each section uses the format `## N:标题` — a numbered header followed by a +descriptive title. Never bare numbers (`## 一`). The title distills the section's +thesis into a short phrase: + +> ## 一:无人审视的维度 +> ## 二:摄像机的位置 +> ## 三:"我"的力量与陷阱 + +Six numbered sections is the canonical form. Each section carries a distinct weight: +1. **那条河** — the scene, the strike, the physical moment +2. **颍河** — what it actually was (tables for 上古/颍川/衣冠南渡/苏东坡) +3. **宝鸡渭北的冯** — the personal identity twist: "这不是寻根。这是补充。" +4. **原来不是所有的地方都有关** — the philosophical core: breaking geographic determinism +5. **完整的弧线** — retrospective: the sequence of events that led here +6. **四关正在重新合上** — the closing: transformed, carrying the river inside + +**Tone: essay-like, symphonic.** +Not raw shock (Mode A). Not visceral second-person confrontation (10_颍河). This is +measured, philosophical, building layer upon layer until the final chord. The emotional +weight comes from *accumulation*, not from a single strike. + +**The "这不是…这是…" construction applied to worldview.** +The signature move here is not "this isn't saving money, this is choosing experience" +(Mode A). It's deeper: + +> "这不是寻根。根在渭北,没动过。这是补充。是天生的缺失,在被一条完全不知道身份 +> 的河,在完全不知情的情况下,一瞬间填上了。" + +> "关中给了闭合。颍河给了一次打开。" + +**The closing transcends.** +Not "I went back and saw the river again" (Mode A loop). But a philosophical coda: + +> "它不需要你认识它。它只需要你路过它。然后门就开了。" +> "四关之中的那个宇宙正在重新合上。但这一次,合上之后的世界,不一样了。" + + +--- + +### Tables (Both Modes) + +Use Markdown tables for structured facts embedded in narrative: + +``` +| 事件 | 位置 | 说明 | +|:---|:---|:---| +| 大禹建夏朝 | 禹州 | 中国第一个世袭制朝代 | +``` + +Tables are evidence inside the story, not separate from it. + +### What to Avoid (Both Modes) + +- **Encyclopedia openings** — never "颍河,古称颍水,淮河最大支流" as the first sentence +- Academic dryness ("由此可见"、"综上所述") +- Filler transitions ("接下来我们来看...") +- Evaluative language ("这篇文章写得很好") +- Flat listing of facts without narrative context +- Mixing modes mid-article — pick one and stay in it + +## Frontmatter (Every Article) + +Every article MUST include a complete YAML frontmatter block: + +```yaml +--- +number: 18 +date: 2026-06-19 11:46 +title: 标题 +topics: + - 个人数字体系 + - 自我认知与成长 +tags: + - 反脆弱 + - 塔勒布 + - 系统设计 +字数: 2864 +预计阅读时间: 8分钟 +--- +``` + +Fields: +- **number**: sequential article number (NOT per-day, NOT per-date — global incrementing counter). This is the same number used in the filename (`NN_Title.md`). +- **date**: `YYYY-MM-DD HH:MM` Beijing time +- **title**: article title (same as `#` heading) +- **topics**: array of INDEX.md theme categories. Use existing themes, don't invent new ones on the fly. +- **tags**: array of keywords. Lower-level than topics — specific concepts, authors, techniques. Example: 反脆弱, 塔勒布, 系统设计, 写作方法论 +- **字数**: Chinese character count (approximate, exclude frontmatter) +- **预计阅读时间**: calculated as 字数 ÷ 400 words/min, rounded to nearest minute + +All fields are required. No article ships without complete metadata. + +## File Workflow + +### Naming + +Articles live in the inspiration-collector repo under: +``` +ai-insights/daily/YYYY-MM-DD/NN_Title.md +``` + +Where `NN` is a sequential zero-padded number within the day (00, 01, 02...). + +### Pushing to Gitea + +All pushes use the base64-based transfer pattern to avoid SSH heredoc escaping issues: + +```bash +# 1. Write article locally +Write: C:\Users\32779\WorkBuddy\Claw\.workbuddy\outputs\NN_Title.md + +# 2. Base64 encode and push +B64=$(base64 -w0 "C:/Users/32779/WorkBuddy/Claw/.workbuddy/outputs/NN_Title.md") +ssh ubuntu@43.163.225.30 "echo '$B64' | base64 -d > /home/ubuntu/inspiration-collector/ai-insights/daily/YYYY-MM-DD/NN_Title.md" + +# 3. Commit and push +cd /home/ubuntu/inspiration-collector +git add ... +git commit -m "daily: YYYY-MM-DD NN_Title" +git push +``` + +### INDEX.md Update + +After each article, update `INDEX.md`: +1. Read the existing INDEX.md +2. Add the article under ALL applicable themes (it may belong to multiple) +3. Format: `- [NN_Title](path) — YYYY-MM-DD · one-line-summary` +4. Update the "最后更新" timestamp +5. Commit and push + +Follow `INDEX_RULES.md` for classification: +- Read article full text before classifying (at least 2000 chars) +- When unsure, leave blank rather than force a category +- Cross-theme articles get multiple entries +- New themes only when >=3 articles point in the same direction + +### Daily Log Update + +After pushing, append a brief entry to the workspace daily log: +``` +C:\Users\32779\WorkBuddy\Claw\.workbuddy\memory\YYYY-MM-DD.md +``` + +## Quick Reference + +| Resource | Location | +|:---|:---| +| Inspiration repo | `fxy/inspiration-collector` on Gitea | +| Articles directory | `ai-insights/daily/YYYY-MM-DD/` | +| Index file | `INDEX.md` (repo root) | +| Index rules | `INDEX_RULES.md` (repo root) | +| SSH key | `C:/Users/32779/Desktop/ssh_new.pem` | +| Server | `ubuntu@43.163.225.30` |