对照 gstack /learn + Operational Self-Improvement 设计: /learn 知识库: - 新增 commands/learn.md 指令模板 - 支持全类型外部材料摄入(PDF/DOCX/XLSX/CSV/HTML/图片等) - 8 模块 knowledge.md(行业背景/市场数据/竞品全景/目标用户/约束/假设/冲突/溯源) - 子命令:ingest、update、show、prune 自动发现: - 8 条命令更新项目状态追加 Operational Self-Improvement 段 - _timeline.jsonl 扩展 type/confidence/key 字段 - 写入标准:省时判断 + 非显而易见 + 置信度标注 8 命令第 0 步增强: - 加载知识库(learn/knowledge.md) - 加载近期学习(_timeline.jsonl 高置信度记录) ROADMAP 版本号重排 + state_template 增强 + install.sh 更新
206 lines
6.1 KiB
Markdown
206 lines
6.1 KiB
Markdown
# /learn - 知识库学习与检索
|
||
|
||
## 命令定位
|
||
摄入外部业务材料(报告、调研、数据、文档等),解析并汇总为结构化知识库,
|
||
供所有 YxStack 指令在执行时自动加载参考。
|
||
|
||
## 子命令
|
||
|
||
| 子命令 | 用途 |
|
||
|--------|------|
|
||
| `/learn <路径>` | 摄入指定文件/目录,解析并更新知识库 |
|
||
| `/learn update` | 增量更新,检测新增或修改的材料 |
|
||
| `/learn show` | 查看当前知识库摘要(模块、材料数、最近更新) |
|
||
| `/learn prune` | 修剪过期或矛盾的知识条目 |
|
||
|
||
---
|
||
|
||
## /learn <路径> — 摄入外部材料
|
||
|
||
### Step 1: 扫描材料
|
||
|
||
扫描目标路径,识别所有可处理文件:
|
||
|
||
**支持格式**:
|
||
- 文档:`.md`, `.txt`, `.pdf`, `.docx`
|
||
- 表格:`.xlsx`, `.csv`
|
||
- 演示:`.pptx`
|
||
- 网页:`.html`, 直接输入 URL
|
||
- 图片:`.png`, `.jpg`(OCR 文字提取)
|
||
- 结构化数据:`.json`
|
||
|
||
**跳过规则**:`.yxstack/`, `node_modules/`, `.git/`, `.DS_Store`
|
||
**目录处理**:递归扫描,按修改时间排序
|
||
|
||
### Step 2: 逐份解析
|
||
|
||
对每个文件,使用 Read 工具读取内容,AI 模型提取结构化信息:
|
||
|
||
**信息提取维度**:
|
||
| 维度 | 提取内容 |
|
||
|------|----------|
|
||
| 行业数据 | 市场规模、增长率、政策环境、技术趋势(数字+来源页) |
|
||
| 竞品信息 | 名称、定位、核心优势、主要劣势、价格带、目标用户 |
|
||
| 用户信息 | 画像描述、痛点清单、采购/使用决策链、付费意愿 |
|
||
| 约束条件 | 预算范围、时间节点、合规/监管要求、资源限制 |
|
||
| 假设与观点 | 非事实性判断、预测性结论 → 务必标注为"假设",归入待验证 |
|
||
|
||
### Step 3: 知识汇总
|
||
|
||
- **按模块归类**:行业背景 / 市场数据 / 竞品全景 / 目标用户 / 关键约束 / 待验证假设
|
||
- **去重合并**:相同信息点合并为一条,标注多来源
|
||
- **冲突处理**:矛盾信息点保留双方观点,归入「知识冲突」区域
|
||
- **溯源标注**:每条关键信息标注来源材料 + 页码/段落
|
||
|
||
### Step 4: 写入知识库
|
||
|
||
将汇总结果写入 `.yxstack/learn/knowledge.md`:
|
||
|
||
**新增模式**(knowledge.md 不存在):创建新文件,写入全部模块
|
||
**增量模式**(knowledge.md 已存在):合并新材料信息,更新对应模块,追加材料溯源
|
||
|
||
**knowledge.md 格式**:
|
||
```markdown
|
||
---
|
||
title: "项目知识库"
|
||
project: "{项目名称}"
|
||
last_updated: "{YYYY-MM-DD}"
|
||
materials_processed: {N}
|
||
---
|
||
|
||
# 项目知识库
|
||
|
||
> 最近更新:{YYYY-MM-DD}
|
||
> 已处理材料:{N} 份(详见 [材料溯源](#材料溯源))
|
||
|
||
## 行业背景
|
||
- 关键事实1 [来源:材料A]
|
||
- 关键事实2 [来源:材料B]
|
||
|
||
## 市场数据
|
||
| 指标 | 数值 | 来源 |
|
||
|------|------|------|
|
||
| 市场规模 | XXX | 材料A (p.12) |
|
||
|
||
## 竞品全景
|
||
| 竞品 | 定位 | 核心优势 | 主要劣势 | 价格带 | 来源 |
|
||
|------|------|----------|----------|--------|------|
|
||
|
||
## 目标用户
|
||
- 核心用户画像:[来源]
|
||
- 痛点清单(按严重程度):
|
||
1. 痛点1 [来源]
|
||
2. 痛点2 [来源]
|
||
- 付费意愿与能力:[来源]
|
||
|
||
## 关键约束
|
||
- 预算约束:
|
||
- 时间约束:
|
||
- 合规/监管约束:
|
||
- 资源约束:
|
||
|
||
## 待验证假设
|
||
| 假设 | 验证路径 | 来源 |
|
||
|------|----------|------|
|
||
| XXX | 如何验证 | 材料C |
|
||
|
||
## 知识冲突
|
||
| 主题 | 观点A | 来源A | 观点B | 来源B |
|
||
|------|-------|-------|-------|-------|
|
||
|
||
## 材料溯源
|
||
| 材料 | 类型 | 处理时间 | 关键信息贡献 |
|
||
|------|------|----------|-------------|
|
||
```
|
||
|
||
### Step 5: 更新元数据
|
||
|
||
更新 `.yxstack/learn/_learn_meta.json`:
|
||
```json
|
||
{
|
||
"project": "{项目名称}",
|
||
"last_updated": "{ISO时间戳}",
|
||
"materials_processed": N,
|
||
"materials": [
|
||
{
|
||
"name": "材料名称",
|
||
"path": "原始路径",
|
||
"type": "pdf",
|
||
"processed_at": "ISO时间戳",
|
||
"sha256": "可选:文件哈希"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## /learn update — 增量更新
|
||
|
||
重新扫描已记录的材料目录,检测:
|
||
- 新增文件 → 解析并追加到 knowledge.md
|
||
- 修改过的文件 → 标记对应模块为「待更新」,重新解析
|
||
- 删除的文件 → 保留历史知识,标记来源材料已不可用
|
||
|
||
---
|
||
|
||
## /learn show — 查看摘要
|
||
|
||
读取 `.yxstack/learn/knowledge.md`,简洁展示:
|
||
- 知识库覆盖的模块列表
|
||
- 已处理材料数量
|
||
- 最近更新时间
|
||
- 待验证假设数量
|
||
- 知识冲突数量
|
||
|
||
---
|
||
|
||
## /learn prune — 修剪知识库
|
||
|
||
对标 gstack 的 `/learn prune` 机制:
|
||
|
||
1. **过期检测**:检查每条信息的来源材料是否仍可访问
|
||
2. **矛盾检测**:检查同一主题下是否存在相互矛盾的结论
|
||
3. **置信度评估**:标注每条知识的可靠性(从来源材料质量推断)
|
||
4. **用户确认**:对标记条目逐条询问:
|
||
- 删除(知识已过时)
|
||
- 保留(仍有效)
|
||
- 降级(标注为「待验证」)
|
||
5. 修剪后更新 knowledge.md
|
||
|
||
判断标准:「下次执行分析时,这条知识还有参考价值吗?」
|
||
|
||
---
|
||
|
||
## 存档规则
|
||
|
||
/learn 本身不产生报告文件(不同于其他 YxStack 指令),而是直接维护 `.yxstack/learn/knowledge.md`。
|
||
|
||
执行 `/learn` 后,追加事件日志:
|
||
```json
|
||
{"skill":"learn","event":"completed","ts":"当前时间","summary":"摄入 N 份材料,知识库已更新","decision":"新增/更新模块列表"}
|
||
```
|
||
|
||
---
|
||
|
||
## 与其他指令的关系
|
||
|
||
| 指令 | 如何引用知识库 |
|
||
|------|---------------|
|
||
| /pfit | 参考目标用户(痛点清单)、待验证假设 |
|
||
| /pos | 参考竞品全景、行业背景、市场数据 |
|
||
| /uj | 参考目标用户(画像+决策链)、痛点清单 |
|
||
| /prd | 参考全部模块 |
|
||
| /money | 参考市场数据、竞品全景(价格带)、关键约束(预算) |
|
||
| /gtm | 参考目标用户(画像+决策链)、行业背景 |
|
||
| /metric | 参考市场数据(行业基准)、关键约束 |
|
||
| /comp | 参考竞品全景、市场数据 |
|
||
|
||
---
|
||
|
||
## 常见误区
|
||
- 把个人观点当事实写入知识库(应标注为假设)
|
||
- 材料之间的信息不核实矛盾直接合并(应标注冲突)
|
||
- 知识库只建不维护(应定期 prune)
|
||
- 把单个来源的结论当作确定事实(应标注置信度)
|