关于 concept-synthesis
concept-synthesis 是供 Agent 使用的 Markdown 技能,可将概念页面集合整理为知识图谱式的思想地图。它涵盖去重、分级、聚类和可逆整理,并设有明确的质量检查。
主要功能
- 01去重并合并概念页面
- 02为概念评分并分级
- 03生成聚类概念地图
- 04按标准保留、合并或删除
- 05通过反向链接保留合并记录
适用场景
- 01整合摄取流程产生的重复想法
- 02按重复频率和重要性整理概念
- 03筛查低价值概念页面
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ garrytan/ gbrain --skill concept-synthesis安装后在 Claude Code 中输入/concept-synthesis确认已加载。
附带文件routing-eval.jsonl
详细介绍
concept-synthesis — 从原始存根到知识地图
约定: 回链执行与引文忠实度要求,参见 conventions/quality.md。
约定: 请参见 _brain-filing-rules.md——输出文件按主题归属规则存放于
concepts/下。
解决什么问题
许多摄取流水线(signal-detector、idea-ingest、voice-note-ingest)会为提到的每个想法创建一个概念页面。数月之后,这会产生:
- 数千个存根页面,其中很多是重复或近似重复的
- 时间线条目重复引用同一来源,分散在多个概念页面中
- 没有综合分析——只有“用户在某日提到了 X”
- 没有层级划分——所有内容扁平排列
- 没有聚类——相关想法之间没有链接
本技能将这些原始素材转化为经过整理的知识地图。
架构
Phase 1: Dedup + merge (deterministic)
N stubs → ~N/4 canonical concepts
├── Jaccard dedup (word-overlap on titles + first-paragraph)
├── Substring dedup ("founder mode" vs "founder mode vs manager mode")
├── Semantic dedup (LLM: "are these the same idea?")
└── Merge timelines + aliases from duplicates into the canonical page
Phase 2: Score + tier (deterministic + heuristic)
Each canonical concept → scored and tiered
├── Frequency: distinct sources referencing this concept
├── Timespan: first mention → last mention in days
├── Breadth: distinct months it appears in
├── Engagement: avg engagement on concept-bearing sources (if available)
└── Tier: T1 Canon | T2 Developing | T3 Speculative | T4 Riff
Phase 3: Synthesize (LLM, T1+T2 only)
T1 + T2 concepts → rich synthesis
├── Evolution narrative: how the idea sharpened over time
├── Best articulation: highest-engagement or most precise quote
├── Related concepts: cross-links to other concepts
├── Context: what was happening when this idea emerged / evolved
└── Counter-positions: what this idea argues against
Phase 4: Cluster + map (LLM)
All tiered concepts → intellectual clusters
├── Group related concepts into domains (auto-named via LLM)
├── Generate cluster summary pages
├── Build a master concepts/README.md with the full map
└── Identify idea genealogies (concept A → evolved into concept B)
Phase 5: Curation cull (rubric + reversible merge)
Each concept → hard verdict: ELITE | KEEP | MERGE/REWRITE | DELETE
├── 6-axis rubric (substance 2x, packaging 1x) + minimum substance gate
├── Grounding labels (VERIFIED / OPINION / NEEDS_SOURCE / UNSAFE)
├── Cluster budgets + reputational-risk gate
├── Merge-with-backlinks into cluster canonicals (fully reversible)
└── merge_count / independent_sources → emergent tier promotion
调用方式
本技能是 Markdown 格式的 Agent 指令。Agent 使用 gbrain 现有操作加上大模型处理步骤:
# 1. List all concept pages
gbrain query "type:concept" --limit 10000 --json
# 2. Phase 1 dedup — agent applies Jaccard + substring locally,
# then LLM passes to identify semantic duplicates.
# 3. Phase 2 tier — agent scores each canonical concept based on
# frequency / timespan / breadth and writes tier into frontmatter.
# 4. Phase 3 synthesis — for each T1/T2, agent reads the timeline
# + associated source pages and writes a synthesis section
# onto the concept page via put_page.
# 5. Phase 4 clustering — agent reads the tiered concept list
# and writes concepts/README.md with the full intellectual map.
输出:概念页面格式(综合之后)
T1 Canon——完整综合
---
title: "concept name"
type: concept
tier: 1
tier_label: "Canon"
mention_count: 18
distinct_months: 8
first_mention: "YYYY-MM-DD"
last_mention: "YYYY-MM-DD"
composite_score: 78.4
aliases: ["alternate phrasing 1", "alternate phrasing 2"]
related: ["sibling-concept-1", "sibling-concept-2"]
---
# concept name
**Tier 1 — Canon** | 18 mentions across 8 months
## Synthesis
[2-4 paragraph narrative tracing how the idea evolved, what it means in
the user's worldview, why it matters. Third-person analytical voice.]
## Best Articulation
> "Verbatim quote from a source — the most precise or highest-engagement
> expression of this idea." — [Date](source-url)
## Evolution
| Period | Expression | Signal |
|--------|-----------|--------|
| YYYY-MM | "First articulation" | First use — aspiration frame |
| YYYY-MM | "Sharpening" | Anti-pattern emerges |
| YYYY-MM | "Peak form" | Cleanest expression |
## Related Concepts
- [sibling concept](sibling-concept.md) — relationship description
- [sibling concept](sibling-concept.md) — relationship description
## Timeline
[Full timeline with deduped entries, quotes, source links]
T3 / T4——仅存根(无大模型综合)
---
title: "concept name"
type: concept
tier: 4
tier_label: "Riff"
mention_count: 1
---
# concept name
**Tier 4 — Riff** | 1 mention
> "Quote from the source" — [Date](URL)
输出:位于 concepts/README.md 的聚类地图
# Intellectual Universe
## Canon (T1) — N concepts
The permanent intellectual fingerprint. Ideas that recur across years.
### [Cluster Name]
- [concept-slug](concept-slug.md) — one-line characterization
- ...
### [Other Cluster]
- ...
## Developing (T2) — N concepts
Sharpening. Might become canon.
## Speculative (T3) — N concepts
Testing in public.
## Stats
- Total concepts: N
- T1 Canon: N
- T2 Developing: N
- T3 Speculative: N
- T4 Riff: N
- Earliest source: YYYY-MM-DD
- Latest source: YYYY-MM-DD
第 5 阶段:策展筛选——保留/删除/合并准则
第 1–4 阶段只向上合并,从不删除任何内容。数月之后,语料库中充斥着空洞的存根,稀释了真正能够持续增值的概念。第 5 阶段即筛选:对每个概念给出明确判定,可按周期或按需运行,且每一个破坏性步骤都可以撤销。
约定: 参见 conventions/test-before-bulk.md——先筛选 3–5 个聚类,阅读实际输出,然后才运行完整流程。
核心问题
如果用户两年后毫无准备地调出这个概念,它会让某个想法变得更锐利,还是会催生新的东西?还是说,用户会把它当作填充内容直接略过?
被略过 = 删除。
六个维度(每项 1–5 分)
三个实质维度权重为 2 倍,三个包装与契合维度权重为 1 倍。实质决定概念本身的价值,包装则为其赢得展示空间。
实质(2 倍权重):
| 维度 | 1 | 3 | 5 |
|---|---|---|---|
| 洞见与张力——承载真实的智识负荷:一种机制、一个非显而易见的因果联系、一种反转、一种隐藏的代价 | 陈词滥调(“创业很难”) | 熟悉的观点,但有具体角度 | 一个可复用的命名机制 |
| 原创性与惊奇——新颖的框架,颠覆预期,而非任何人都能写出的老生常谈 | 心灵鸡汤(“纪律胜过动力”) | 已知观点,经由用户的视角呈现 | 一个感觉像是新创、便于迁移的框架 |
| 具体性与完整性——自成一体的主张、机制或区分,包含具体细节,而不是需要缺失上下文才能理解的片段 | 含糊或被截断 | 完整但泛泛 | 具体、有证据支撑、完全独立成立 |
包装与契合(1 倍权重):
| 维度 | 1 | 3 | 5 |
|---|---|---|---|
| 语言张力与机智——语言中的力量:一个尖锐的转折、一次凝练的压缩、一句有力的话 | 平淡 / 教科书式 | 清晰 | 值得引用,有冲击力 |
| 代表性——听起来像用户本人,或与用户已记录的世界观相连 | 任何人都可能写出 | 与用户的视角相符 | 明显带有用户的个人印记 |
| 有力且清晰——可直接使用的弹药(文章论点、演讲金句、会议框架),同时能传达用户究竟是怎样的人 | 无用的琐碎知识 | 稍加加工即可使用 | 可直接投入使用,并让用户更被人理解 |
评分 → 结论
加权分 = (Insight + Originality + Specificity) × 2 + (Voltage + Representative + Powerful) × 1。满分 = 45;以百分比表示。
| 加权百分比 | 结论 | 同时必须满足的门槛 |
|---|---|---|
| ≥85% | ELITE:保留并标记为可复用 | 任一维度不低于 3;至少 2 个 5 分,且其中至少一个在 SUBSTANCE 维度 |
| 75-84% | KEEP | (Insight ≥4 或 Originality ≥4) 且 Specificity ≥3 且 (Representative ≥3 或 Powerful ≥4) |
| 55-74% | MERGE/REWRITE 或弱保留 | 想法不错但正文有缺陷 → 并入所属聚类的标准条目,或改写为可独立成立的内容。仅当来源罕见或填补覆盖空白时才原样保留。否则 DELETE。 |
| <55% | DELETE | — |
最低实质门槛(优先于百分比): 若 Insight < 3 或 Originality < 3,则该概念永远不能为 KEEP 或 ELITE。文风无法弥补空洞的想法。
MERGE/REWRITE 是一个真正的第三种结论,而非回避。许多短条目里藏着有价值的想法,只是正文太弱——应将其并入聚类标准条目,或改写为可独立成立的内容。当 Insight ≥ 3,但 Specificity 或 Voltage 拉低了总分时,使用该结论。
硬性 DELETE 触发条件(满足任一即删除,无论得分如何)
- 俗语式废话 — 虽然正确,但说的东西连贺卡都不如;陈词滥调,没有机制。
- 残片 — 依赖无法获得的上下文;不能自成一体(除非来源罕见,即便如此也仅限于可理解且有用的情况)。
- 提取错误 — 转录乱码、话说到一半被截断、语义不连贯,或把分块标题误当作概念。
- 偏离使命的琐碎信息 — 准确,但与用户正在构建、相信或可能用到的任何东西都无关。
- 聚类内重复 — 未通过下面的操作性重复测试。
- 无依据的事实性断言 — 以事实形式陈述的事实性、历史性或因果性断言,且错误或无来源。修饰或删除。
依据标签(仅适用于事实类概念)— 贴标签,而非一味扣分
任何事实性、历史性、科学性或因果性断言都需要进行真实性检查,并添加 grounding: 前言标签:
- VERIFIED — 准确且有来源 → 可保留并投入使用。
- OPINION — 明确表述为用户自己的观点或论点 → 可保留。
- NEEDS_SOURCE — 合理但未注明来源、却以事实形式陈述 → 仅当改写为主张或观点时才保留。
- UNSAFE — 错误,或语气尖锐但不实 → DELETE 或修饰。
不要存储自信的错误陈述——一旦投入使用,它们会让用户更不被理解,而非更被理解。引用遵循 conventions/quality.md。
声誉风险门槛
一个概念如果语气尖锐,但可能让用户显得残酷、轻视他人或持有其并不认同的立场,就是负债而非弹药。即便在语气强度(voltage)上得分很高,也应标记为改写或删除。Powerful 指的是使用时不会招致反噬。
聚类预算("规模化后的陈词滥调"问题)
当许多概念来自同一来源或共享同一想法时,应评估整个集合,而非孤立地逐条评估。每个语义聚类的默认预算为:
- 1 个标准概念(对机制最精准的表述)— 必备。
- 再加 1-2 个,且仅当每个都增加了独特的机制、具体示例、不同的情感基调、新的受众,或来自用户的独特措辞。
- 超过 3 个,仅当与某个活跃项目相关。
聚类中的其余内容应为 MERGE(优先选择,参见下文)或 DELETE。同一主题下四十条高度相似的短条目 → 一个机制性标准概念,或许加上一句出色的话。其余的并入标准概念。
操作性重复测试
不要凭感觉判断"重叠百分比"。将候选概念与其聚类中最佳的现有概念进行比较,并提问:它是否增加了新的机制、示例、情感基调、受众,或用户特定的措辞? 如果没有 → MERGE(并入其中,保留其中的信号)或 DELETE。如果有 → 它所增加的内容,正是保留它的理由。
硬性保留覆盖(可挽救低分内容,但有下限)
每条覆盖规则仅在概念可理解且可能有用时适用:
- 独特语态:捕捉只有用户本人才会说出的内容。语态优先于文字润色,但不能凌驾于连贯性之上。
- 对进行中的项目负有关键作用:直接支撑某个已知论点或正在进行的工作。
- 稀有出处:真实的引述或时刻,无法重新生成(如一次会议、用户自己的笔记),且包含可追溯的含义。仅有“关于 AI 的那个观点很棒”这类无实质内容的表述不符合条件。
合并并保留反向链接(可逆,不销毁任何内容)
对于冗余簇,清理策略是反转的:不删除尾部内容,而是将其合并到规范主页面中,并由合并台账充当显著性指标。一个概念被独立重新推导 N 次,并非冗余,而是语料库在 N 种不同语境中标记出“此事重要”。删除重复项会丢失这一信号;合并则会保留它。
每次合并都会为规范页面增加三个 frontmatter 字段和一个正文章节:
merge_count(整数):被吸收页面的原始数量,包括来自同一来源的重复提取。independent_sources(整数):该簇所涉及的不同来源数量。这是真正的显著性指标——当某一来源被反复重新提取时,原始 merge_count 会虚高;independent_sources 可以修正这一问题。backlinks(由{source, angle, date}组成的列表):每个被吸收页面的来源及其带来的具体角度。所有视角均得以保留,只是不再作为独立的顶层页面存在。## Facets(正文):顶部为规范机制说明,之后每个被吸收页面对应一行简短的“如见于 {source}:{angle}”。该概念因此变为多角度视图,而非冗余内容。
合并质量门槛(拒绝不完整的合并): 只有在满足以下两点时才会写入合并:(a) ## Facets 章节中,每个被吸收页面对应一行(包含来源和具体角度);(b) 每条 backlinks 条目都包含来源、角度和日期。若 Facets 为空或存在悬空条目,则拒绝该合并,并将该簇标记为待人工审核。不允许半成品合并。
区分性防护是硬性否决,而非建议。 只有当 LLM 评审明确确认两个概念陈述的是相同机制时,看似重复的两个概念才会被合并。默认不合并;评审必须主动证明合并的必要性,其是/否判断及理由需按簇记录日志。不同的机制、示例或语体应归入各自独立的规范页面。相似度只是提出建议,最终由判断决定。
寻找合并候选项——采用定性区间,而非数值截断。 不要硬编码相似度阈值:gbrain search 返回的是混合(RRF 融合)得分,而非原始余弦相似度,任何固定数值都会随语料库和搜索模式的变化而失效。应采用定性方式:以每个概念的标题和第一段进行搜索;当两个概念在结果列表顶部互相出现,且与其余结果之间存在明显的得分差距时,将其视为合并候选。共享词汇但机制不同的概念通常位于列表中段——这正是区分性防护发挥作用的区间。在批量处理前,应根据自身语料库的分布进行校准。
合并机制(渐进式,完全可逆)
# 0. Inventory the stratum being culled
gbrain query "type:concept" --limit 10000 --json
# 1. Probe for merge candidates (mutual top-of-list hits)
gbrain search "concept title + first paragraph" --limit 10
# 2. Archive the absorbed page verbatim under _merged/ BEFORE touching it
# (add merged_into: <canonical-slug> to its frontmatter). The _merged/
# tree is the undo button.
gbrain get concepts/absorbed-stub
gbrain put concepts/_merged/cluster-name/absorbed-stub
# 3. Grow the canonical head: merge_count, independent_sources,
# backlinks, and the ## Facets section
gbrain put concepts/canonical-slug
# 4. Soft-delete the absorbed original (restorable until purge)
gbrain delete concepts/absorbed-stub
# Undo paths: gbrain restore <slug> (within the purge window),
# the _merged/ copy (survives purge), and per-page version history:
gbrain history concepts/canonical-slug
gbrain revert concepts/canonical-slug <version_id>
逐步提交。清理过程中不进行任何硬删除;_merged/ 目录、软删除以及页面历史共同确保每一步都可逆。
合并台账 → 涌现式层级晋升
将 independent_sources 纳入第 2 阶段的频次维度。当某个规范概念的 independent_sources 跨过语料库直方图中的自然断层时(观察分布本身,不要硬编码整数),该概念即成为层级晋升候选(T4→T3、T3→T2、T2→T1 审核)。不设规模上限:持续吸收合并的概念理应变得更丰满。层级边界由此变为涌现式,而非人工划定——由语料库告诉你某个反复出现的想法已经赢得了它的层级。
质量门槛
去重质量
- 任意两个概念页面都不应是“同一个想法换了说法”。
- 在 frontmatter 中保留别名,便于搜索。
- 运行
gbrain query "type:concept",抽查数量是否有所减少。
分级质量
- T1 应让人感觉“没错,这确实是我反复出现的框架之一”——可识别、反复出现、足够清晰。
- T2 应让人感觉“我正在研究它,它越来越清楚了”。
- 不应存在跨度不足 4 个月或提及次数少于 6 次的 T1 概念。
- 不应存在跨度超过 3 个月的 T4 概念。
综合质量
- 记录演变过程,而不只是重复。
- 使用逐字引语,而非转述。
- 链接到相关概念(使用 Markdown 链接,而非 wiki 链接)。
- 不得虚构来源或日期。
精简质量
- 概念若承载着该簇中关于某一机制的唯一表述,则不得删除——每次精简都必须保留规范页面。
- 每次合并都必须通过合并质量门槛:填充
## Facets并完整记录backlinks条目。不允许半完成的合并。 - 每个簇的区分性守卫判定都需记录在案;在写入任何合并之前,判定者必须明确给出“是”。
- 标记为 UNSAFE 的主张不得以事实形式保留。
- 每个被吸收的页面在其原件被软删除之前,都必须先有一份逐字副本存放于
_merged/。
Cron 集成
这是一项繁重的工作。应按节奏运行,而不是对每个信号都运行:
- 大批量摄取完成之后(信号检测器突发、归档爬虫运行等)。
- 每周定时运行,对新晋升的 T1/T2 概念进行增量综合。
- 当语料发生显著变化时,手动触发完整的重新综合。
- 第 5 阶段的精简运行频率低于综合——每月一次,或在大批量摄取使 stub 数量明显膨胀之后运行。始终先进行“先测试再批量”。
失败处理
对于任何 gbrain 错误 code、退出码、[AGENT] 块或通知块,均须遵循 agent 操作协议。本技能的特定要求如下:
- 若 LLM 判定或综合运行因成本上限而停止(
cost_cap_exceeded,或退出码 11 并附带resume_command):汇报已完成的部分;仅在用户同意的预算范围内,使用打印出的命令恢复运行。 - 在用户设定上限的情况下出现
no_pricing:告知用户,查询该模型的每 token 单价;在用户同意后,请大模型宿主机的运维人员使用gbrain pricing set <model> --input <usd-per-1M> --output <usd-per-1M>进行注册。 - 重写概念页面时出现
revision_conflict:重新读取并合并;绝不覆盖一个你未曾重新读取过的页面。
反模式
- ❌ 对 T3/T4 运行综合——在可能永远不会清晰化的想法上浪费 API 预算。
- ❌ 虚构引语或日期。时间线必须能够与现有 brain 页面相互核实。
- ❌ 使用笼统的簇名称(如“各种主题”)。如果无法为簇命名,说明该簇并不真实。
- ❌ 在没有新源材料的情况下重新综合已综合过的 T1。应尊重幂等性。
- ❌ 为合并候选硬编码数值相似度阈值。搜索分数与语料和模式相关;应使用定性区间,并交由区分性守卫决定。
- ❌ 仅凭相似度进行合并。共享词汇不等于共享机制;区分性守卫是硬性否决,而非建议性意见。
- ❌ 删除冗余概念而非将其合并上升。删除会丢失驱动层级晋升的频次信号。
- ❌ 因措辞优美而保留空洞的概念。最低实质性门槛正是为此而设。
- ❌ 精简时硬删除。应归档到
_merged/并软删除;保持每一条撤销路径畅通。 - ❌ 未先进行 3-5 个簇的抽查就批量精简(参见 conventions/test-before-bulk.md)。
相关技能
skills/signal-detector/SKILL.md— 从文本渠道创建原始概念 stubskills/voice-note-ingest/SKILL.md— 对音频渠道执行相同操作skills/idea-ingest/SKILL.md— 对链接/文章执行相同操作
契约
本技能保证:
- 路由与 frontmatter 中的标准触发词一致。
- 输出写入
writes_to:中列出的目录(如适用)。 - 所引用的约定(
quality.md、brain-first.md、_brain-filing-rules.md)均得到遵循。 - 隐私契约得到保持:不包含真实姓名、不包含分叉特定的文件系统路径字面量,也不包含上游分叉引用。
完整的行为契约记录在上方正文各节中;本节存在的目的是供一致性测试使用。
输出格式
本技能的输出结构在正文各节中有内联说明(参见“Output”“Brain page format”或同类章节)。此处的字面章节标题存在的目的是供一致性测试(test/skills-conformance.test.ts)使用。