Tacit Mining logo

Tacit Mining

Community
xiaohuailabs
tacit-mining

隐性知识挖掘:通过结构化对话提取用户"只可意会不可言传"的判断标准。 基于 Polanyi 隐性知识理论 + CDM/Laddering/Repertory Grid 方法。 触发词:挖隐性知识、深度访谈、了解我、聊聊我的想法、tacit、 你还不够了解我、我想让你更懂我、挖一挖。 不应被"写文章""采写""排版"等写作/发布类指令触发。

Overview

Publisherxiaohuailabs
Repositorytacit-mining
Skill nametacit-mining
Stars
73
Forks
8
Bundled files
1
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by xiaohuailabs on GitHub. Read the source before you install it.

Installation

Install the Tacit Mining AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/xiaohuailabs/tacit-mining/tree/main
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/xiaohuailabs/tacit-mining.git \
  .claude/skills/tacit-mining
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Tacit Mining in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Tacit Mining on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Tacit Mining is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

tacit-mining — 隐性知识挖掘

"We know more than we can tell." — Michael Polanyi

不问"你知道什么",问"那次你做了什么"——从行为反推知识。

设计原理(执行时不输出,仅指导行为)

Polanyi 核心洞察:直接问"你怎么判断的"会把辅助意识拉到焦点位置,破坏隐性知识本身的运作,得到的往往是事后合理化而非真实认知过程。

因此本技能禁止直接提问抽象标准,所有问题必须锚定在具体事件/作品/决策上。

关键路径

路径用途
memory/tacit/提取的隐性知识碎片
memory/tacit/map.md隐性知识地图(索引)
memory/MEMORY.md关键发现同步到主索引
Calude 文档/创作工作台/成品/写作域素材来源
素材库/推文/选题域素材来源
style-learn/data/index.jsonl用户修改记录(如有)

动作路由

用户说动作
"挖隐性知识" "深度访谈" "了解我" "聊聊" "tacit"→ mine
"看看挖到了什么" "隐性知识地图" "tacit map"→ review
"这条不对" "删掉这条" "更新这条"→ correct

mine(核心动作)

Step 1:选域 + 拉素材

五个挖掘域,用 AskUserQuestion 让用户选(或根据上下文自动判断):

域说明素材来源
writing写作品味:什么算好文章、什么是"AI味"最近成品文章、用户修改 diff、style-learn 记录
topic选题直觉:为什么选这个不选那个已写 vs 跳过的推文、素材库
product产品判断:什么产品值得关注/推荐产品动态文章、知识库产品档案
aesthetic视觉审美:封面、排版、配图的偏好选过的样式/封面、排版主题
audience读者感知:读者要什么、怎么和读者沟通发布过的文章、阅读数据(如有)

拉素材:根据选定的域,自动拉取最近 2 周的具体素材作为对话锚点。

writing → Glob 成品/ 最近 5 篇文章路径
        → 检查 style-learn index.jsonl 有无 pending/recent
topic   → Glob 素材库/推文/ 最近 20 条
        → 对比已写成文章的 vs 跳过的
product → Glob 成品/产品动态/ 最近 5 篇
        → Glob 知识库/产品档案/
aesthetic → 读最近使用的排版主题、封面样式
audience → 读最近发布文章(如有阅读数据)

准备好 3-5 个具体素材作为提问锚点后,进入 Step 2。

Step 2:对话挖掘(5-8 轮)

节奏控制:每轮只问一个问题。等用户回答后才进入下一轮。不连珠炮。

每轮结构:

[提问] → 用户回答 → [可选追问 1-2 次] → [Teachback 复述] → 用户确认/纠正 → [存碎片] → 下一轮
提问方法库(按优先级轮换使用,不重复同一方法连续 2 轮)

方法 A:关键事件锚定(Critical Incident + Situated Recall)

从一个具体事件切入,引导用户重建当时的情境和判断。

模板:

  • "你最近写的[文章名],有没有哪个地方你改了好几遍才满意?当时卡在什么地方?"
  • "这 5 条推文你选了写[A]没写[B],当时脑子里闪过什么念头?"
  • "你职业生涯中有没有一篇自己特别满意的文章?是什么让它特别?"

追问探针(来自 ACTA 6 探针,选适合的用):

  • 预判力:"你是怎么知道这个会火/不会火的?"
  • 注意力:"有什么细节是你一眼就注意到但别人可能会忽略的?"
  • 即兴:"你有没有临时改过做法,结果反而更好?"

方法 B:对比逼近(Repertory Grid 简化版)

三个放一起比,找出用户自己都没意识到的区分维度。

模板:

  • "这三篇文章[A/B/C],你觉得哪两篇更像?和第三篇差在哪?"
  • "这两个产品你都写了,但感觉你对[A]更有热情,是这样吗?差在哪?"
  • "给你两个标题[X/Y],你选哪个?为什么?"

追问:

  • "你说的[区分词]具体是什么意思?能给个例子吗?"
  • "这个标准的反面是什么?什么样的东西你绝对不会做?"

方法 C:Laddering 追问(Attribute → Consequence → Value)

从表面偏好一层层追到底层价值观。每次只爬一条梯子。

模板:

  • 属性层:"你说这篇[好/不好],具体哪个地方?"
  • 后果层:"[属性]好/不好会导致什么?对读者意味着什么?"
  • 价值层:"为什么这件事对你来说特别重要?"

关键:当用户卡住时,不继续问"为什么",而是引导回忆具体经历。 "有没有一次因为[没做到这个]导致了不好的结果?"

方法 D:反事实探测(Counterfactual Probing)

每次只变一个变量,像做实验一样。

模板:

  • "如果这篇文章[删掉开头那段/换个标题/不放对比表格],你觉得会怎样?"
  • "如果这个产品不是[某公司]出的,而是[另一家]出的,你还会写吗?"
  • "如果当时[时效性过了/竞品已经报道了],你还会选这个题吗?"

方法 E:隐喻捕捉(Metaphor Elicitation)

不主动使用。当用户说出"感觉""像""好像""味道""手感"等词时激活。

追问模板:

  • "你说'这篇有点重',什么样的重?像什么?"
  • "你说'AI味',如果要形容这个味道,它像什么食物/什么场景?"
  • "'网感'对你来说是什么感觉?身体上有反应吗?比如看到一个好选题的时候。"
追问纪律
  • 用户答"对""差不多""是的" → Teachback 后存碎片,进入下一轮
  • 用户答"不是""不完全是" → 最多追问 2 次,仍然说不清 → 记录为"模糊信号",标注原话,不强行提炼规则
  • 用户答很长一段 → 提炼 1-2 条核心洞察,Teachback 确认
  • 用户说"不想聊这个""换一个" → 立即换方向,不追问原因
  • 用户情绪上来了(回忆到挫折/成就感)→ 顺着情绪走,这时候最容易出真东西
Teachback 格式

每轮结束前,用一句话复述提炼的洞察:

"所以你的判断标准是:[规则]。对吗?"

例:

  • "所以你觉得产品动态的核心不是介绍功能,而是帮读者判断'我该不该用'。对吗?"
  • "所以你删开头那段是因为'铺垫太久读者会跑'——你的底线是前两段必须有信息。对吗?"

用户确认 → 存碎片。用户纠正 → 用纠正后的版本存。

Step 3:存碎片

每条提炼的洞察存为独立碎片文件:

路径:memory/tacit/tacit_{domain}_{序号}.md

格式:

markdown
---
name: tacit_{domain}_{关键词}
description: {一句话描述这条隐性知识}
type: user
domain: {writing|topic|product|aesthetic|audience}
method: {A|B|C|D|E}
confidence: {confirmed|fuzzy}
created: {YYYY-MM-DD}
---

## 表现(Behavior)
{用户做了什么——具体事件/选择/修改}

## 规则(Rule)
{从行为中提炼的判断标准}

## 边界(Boundary)
{什么情况下这条可能不适用——如果用户没说清,写"待验证"}

## 原话(Verbatim)
> {用户的原始表述,保留口语感}

## 来源
{哪次对话、哪篇文章/推文触发的}

写入预检:存之前 grep memory/tacit/ 查是否已有同主题碎片。有则合并更新,无则新建。

Step 4:更新地图

每次 mine 结束后,更新 memory/tacit/map.md:

markdown
# 隐性知识地图

> 从对话中挖掘的判断标准。confirmed = 用户确认,fuzzy = 说不清但有信号。

## writing(写作品味)
- [标题直给不铺垫](tacit_writing_001.md) — 前两段必须有信息量 [confirmed]
- ...

## topic(选题直觉)
- ...

## product(产品判断)
- ...

## aesthetic(视觉审美)
- ...

## audience(读者感知)
- ...

Step 5:收尾

一次 mine 结束后:

  1. 输出本次挖掘小结:挖了几轮,提炼了几条,哪些 confirmed 哪些 fuzzy
  2. 建议下次可以挖的方向(基于还没覆盖的域或素材)
  3. 如果有 fuzzy 条目,建议下次用具体素材回来验证

不要:不总结理论、不解释方法论、不给鸡汤。只报结果。


review(回顾验证)

读取 memory/tacit/map.md,按域展示所有已提取的隐性知识。

对每个域:

  • 显示条目数和 confirmed/fuzzy 比例
  • 列出所有条目(一句话版本)
  • 问用户:"有没有哪条现在觉得不对了?或者想补充的?"

用户指出问题 → 直接更新碎片文件 + map.md。


correct(修正)

用户说"这条不对"时:

  1. 定位到具体碎片文件
  2. 读取当前内容
  3. 问用户"哪里不对?应该是什么?"
  4. 更新碎片,在文件底部加 ## 修正记录 段落记录变更

与其他系统的衔接

→ MEMORY.md

当某个域积累了 5+ 条 confirmed 洞察时,在 MEMORY.md 的「我了解的你」段落添加/更新该域的隐性知识摘要。不搬碎片细节,只写一句话概括。

→ writing-guide.md

writing 域的 confirmed 洞察如果涉及写作规则,同步到 writing-guide.md 的相关段落。标注 [tacit] 来源。

→ style-learn

mine 过程中如果用户提到了具体文章的修改理由,这些理由同时喂给 style-learn 的品味层。

→ voice-ptt

当 voice-ptt 可用时,mine 的对话流可以走语音。技能本身不依赖 voice-ptt,但语音输入能让用户更自然地表达。


反模式(禁止)

  1. 禁止问抽象问题:"你的写作风格是什么?" "你怎么定义好文章?" ——这些会触发事后合理化
  2. 禁止连珠炮:一次只问一个问题,等回答
  3. 禁止强行提炼:用户说"说不清"就记为 fuzzy,不要替用户总结他没说的话
  4. 禁止长篇解释方法论:用户不需要知道 CDM 和 Laddering 是什么
  5. 禁止一次挖超过 8 轮:认知疲劳会降低回答质量
  6. 禁止跨域跳跃:一次 mine 只挖一个域,深比广重要

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Tacit Mining AI skill do?

隐性知识挖掘:通过结构化对话提取用户"只可意会不可言传"的判断标准。 基于 Polanyi 隐性知识理论 + CDM/Laddering/Repertory Grid 方法。 触发词:挖隐性知识、深度访谈、了解我、聊聊我的想法、tacit、 你还不够了解我、我想让你更懂我、挖一挖。 不应被"写文章""采写""排版"等写作/发布类指令触发。

Why use Tacit Mining on TypingMind?

Because you install it once and use it with any model. Tacit Mining is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Tacit Mining in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/xiaohuailabs/tacit-mining/tree/main. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Tacit Mining?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Tacit Mining?

As many as you like. As long as a model supports skills, you can use Tacit Mining with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Tacit Mining AI skill free?

It is published on GitHub by xiaohuailabs. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇