Turn "saved items" into "viewpoints." This is the PKM loop 收→整理→点→写→发 from input to output, thelifeline link (point)—specifically curing "saving a ton, with nothing settling in your head, and the我的看法paragraph always left empty."
Client-readable description
What this skill can do
Refine articles saved in your Obsidian vault into your own viewpoints. Read the original text → ask one Socratic question at a time → you answer aloud → the AI organizes your answer into a "My View" paragraph (the content is yours; the AI only helps put it into words, and never thinks or writes for you), then gives you a receipt when done. Topic aggregation is also supported: distill the viewpoints of multiple articles under one MOC into a review
| What the client wants | What the skill will do | What the client can see |
|---|---|---|
| Complete the work covered by this skill | Read the user request, necessary context, and this skill's main workflow, and execute the minimal reliable steps | The client will see Obsidian/vault file changes, terminal logs, generated artifact paths, and the final receipt. |
| Missing dependencies, permissions, configuration, or keys | Stop actions that require external state, and clearly state what is missing | Install commands, application addresses, configuration paths, or questions requiring client confirmation |
| Execution complete | Summarize successes, skips, failures, file changes, and verification results | A completion receipt that can be copied into a ticket/log |
How the client uses it
- State the goal in natural language and provide the necessary inputs: files, URLs, repos, workspaces, proposals, vaults, or platform account status.
- The Agent first determines whether this skill applies, then checks dependencies, configuration, permissions, and risky actions.
- For actions that can be dry-run or previewed, provide a preview first; when deletion, overwriting, sending, publishing, or writing remote state is involved, ask the client for confirmation first.
- After execution, verify the real output; do not substitute "looks successful" for evidence.
- The final reply must give the client a visible summary: what was done, a log summary, file changes, issues, and next steps.
Dependencies and installation
Install this skill (single skill):
npx skills add soia-team/soia-open-skills -g -a '*' -s soia-pkm-distill-article-opinion -y
Configuration conventions:
~/.config/soia-skills/soia-open-skills/soia-pkm/soia-pkm-distill-article-opinion/config.yml
SOIA_PKM_DISTILL_ARTICLE_OPINION_CONFIG_FILE=<custom-config-path>
- If this skill does not need private configuration, you can skip creating
config.yml。 - If an API key, cookie, session, provider home, or local path is needed, it can only go into a private
config.yml, the process environment, or the provider's own login state; it must not be written into the repository, vault body, or logs. - Strong dependencies, optional dependencies, and third-party skill relationships must be based on this
SKILL.md's subsequent "dependencies / prerequisites / resources / boundaries" description; if it is not clearly written, add the description first or ask the client, and do not guess. - Third-party skills may only declare dependencies and installation methods; do not directly modify third-party skill files.
Logs and completion receipt
Every execution must let the client see the process and results. Minimum receipt format:
完成:<一句话说明本次完成了什么>。
日志摘要:
- started: <检查到的输入/配置/依赖,不打印秘密值>
- processed: <数量或范围>
- created/updated: <数量或路径>
- skipped/failed: <数量和原因>
文件变化:
- <绝对路径或“未改动文件”>
验证:
- <运行过的检查、命令或人工核对点>
问题与下一步:
- <缺 key / 缺依赖 / 需要客户确认 / 建议下一条命令;没有则写“无”>
Core principles (non-negotiable)
The content belongs to the user; AI only helps them ask it out and put it into words—it never thinks or writes for them.
- AI's responsibility: understand the original text, ask good questions, and organize the user's spoken answers into smooth first-person text.
- What AI does not do: fabricate opinions, speak on the user's behalf, or add judgments the user never made.
- If the user does not answer → do not write. Better to leave it blank than to make things up.
Mode A: Single-article distillation (default)
Triggers: "add my views to this article" "how do I see this article" "distill this article"
Process:
- Locate the article. When the user says "this article" = the article involved in the current conversation; otherwise use the filename / title under
<vault-articles-dir>/to find it with Glob/Grep. - Read the original text(read
## 原文/ body paragraphs). - Align on the skeleton: restate the article's core argument in 1–2 sentences so the user can confirm you understood it (and give them a starting point for thinking).
- Ask only one question at a time(go through the "three angles" below one by one, and only ask the next after getting an answer): target this article's specific arguments, useplain language, and givea one-sentence example answerto lower the barrier.
- ⚠️ Practical lessons (must be followed):Never throw out 3 questions plus a table at once—it will directly overwhelm the user, and they will not know where to start answering. One at a time, with examples, is what lets the user actually answer.
- Stop and wait for the user to answer. It is fine if the user is colloquial, answers only one or two sentences, or says "no thoughts" and skips.
- After all three angles are asked (or the user indicates enough),organize into text: organize the user's answers into a smooth first-person "My Views." Preserve their opinions, judgments, and tone; only polish and structure,do not add filler。
- Write in: Edit the article's
## 我的看法section. Empty section / placeholder comment → fill directly; existing content → do not overwrite, ask "append or replace." - Give a receipt(see §A receipt must be given to the user after execution).
Three-angle questioning method (ask one at a time)
| Angle | What to ask | Purpose |
|---|---|---|
| ① Stance | Do youbuy intothe author's core argument? Does it get to the essence, or is it overstated for traffic? | Force out a clear attitude |
| ② Experience test | Which pointmatches your experience/observations? Which one is exaggerated/inaccurate? | Test with personal experience |
| ③ Meaning to you | This articlechanged what judgment of yours, or made you want to do what? | Move from "read it" to "how should I use it" |
Mode B: Topic aggregation
Triggers: "distill topic X into a viewpoint" "how do I see Agent development as a whole"
- Read
_MOC/<分类>/<主题>.mdto get the article list. - Read each article's
## 我的看法(already-distilled single-article views). - mostly empty → Hint: "Of the N articles on this topic, only M have distilled opinions. It's recommended to run Mode A on a few first." Let them choose which articles to distill first.
- Once you have material, synthesize it intoan overall judgment(your core view + each article as supporting evidence).
- Save
<vault-drafts-dir>/YYYY-MM-DD-<主题>-观点综述.md,tags:[草稿]。 - This draft is the input for
soia-pkm-compose-article-draft.
Write boundaries
- Only touch
## 我的看法(Mode A) ornewly createdraft (Mode B). Never touch## 原文/## 摘要/ frontmatter。 - Contentmust come from user answers, the AI does not fabricate.
## 我的看法is normally left empty for the user; distill isa user-initiated requestfor help writing it down, and what is written down is still the user's own words.
After execution, you must give the user a receipt
Writing is not the endpoint. After writing, be sure to output the result to the user; do not finish silently:
- Where it was written: which article's
## 我的看法(give filename / path). - Opinion summary: restate the newly written view in 1–2 sentences so the user can confirm at a glance.
- Invite fine-tuning: hint "This is your view; tell me which sentence you want changed."
The same applies to topic aggregation mode: tell where the draft was saved and what the core argument is.
Position in the closed loop
clip-*(收) → organize(整理) → ★distill(点:收藏→观点) → compose(写) → publish(发)
- Upstream:
soia-pkm-clip-*archives the articles in. - Downstream:
soia-pkm-compose-article-draftwrites the opinions produced by distill into finished text. - MethodologyReference
huashu-weread-advisor's alchemy (reading line's highlights → note distillation)—distill is its counterpart in thearticle line. Only borrow the method, do not modify its files (third-party skill).
Third-party skill relationships
| Third-party skill | relationship to soia-pkm-distill-article-opinion relationship with |
|---|---|
huashu-weread-advisor (alchaincyf/huashu-weread) |
Method reference: borrow alchemy's questioning and distillation approach, but this skill does not call it or require it to be installed |
weread-skills (Tencent/WeChatReading) |
Non-dependency: this skill processes vault articles and does not directly read the WeChat Reading API |
book-to-skill |
Non-dependency |
find-skills |
Non-dependency |