chore: snapshot inspiration-article skill (Mode A/B writing framework, 2026-06-21 baseline)
This commit is contained in:
293
templates/inspiration-article-skill.md
Normal file
293
templates/inspiration-article-skill.md
Normal file
@ -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` |
|
||||||
Reference in New Issue
Block a user