feat(knowledge): 新增复盘提炼与经验维护 Skill
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "knowledge",
|
||||
"version": "0.1.0",
|
||||
"version": "0.2.0",
|
||||
"description": "项目初始化、任务交接、复盘与知识沉淀工作流。",
|
||||
"author": {
|
||||
"name": "CraftKit"
|
||||
@@ -9,7 +9,7 @@
|
||||
"interface": {
|
||||
"displayName": "Knowledge",
|
||||
"shortDescription": "项目初始化与知识沉淀工具",
|
||||
"longDescription": "提供项目 Agent 上下文初始化、任务交接、过程复盘、经验维护和工作总结工作流。",
|
||||
"longDescription": "提供项目初始化、任务交接、Agent 复盘、知识提炼、问题经验维护和 Git 工作日志。",
|
||||
"developerName": "CraftKit",
|
||||
"category": "Productivity",
|
||||
"capabilities": ["Read", "Write"],
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: distill
|
||||
description: 从当前任务和项目证据中提炼可复用结论、决策与问题经验,并在用户确认后分流到 .craftkit 知识结构。适用于阶段性知识沉淀;任务交接、Agent 失效复盘、工作日志或未经确认写入知识库不应触发本 Skill。
|
||||
---
|
||||
|
||||
# 提炼任务知识
|
||||
|
||||
只沉淀有证据、适用范围明确且未来可复用的内容。大多数任务没有值得长期记录的知识是正常结果。
|
||||
|
||||
## 核实任务
|
||||
|
||||
读取本次对话和相关项目文件;在 Git 仓库中根据需要检查分支、状态、差异和提交。分别列出已完成、已验证、未完成和未验证内容,不以静态检查替代实际运行结果。
|
||||
|
||||
## 候选分流
|
||||
|
||||
按 [分流规则](references/routing.md) 为每个候选确定唯一主要去向。先展示内容摘要、证据、适用范围、目标路径和复用价值,并明确标记“尚未写入”。
|
||||
|
||||
用户可以逐项确认、调整或拒绝。只写入已确认内容;已有文件必须先完整读取并保守合并,不建立同义平行记录。
|
||||
|
||||
## 写入要求
|
||||
|
||||
- 结论与证据分开,推断必须标明,未验证内容不进入长期知识。
|
||||
- 使用项目相对路径,不记录凭据、个人信息和无必要的内部地址。
|
||||
- 指向源码或文档位置,不复制大段源码、日志或对话。
|
||||
- 新证据与既有结论冲突时暂停,交由 `lessons` 的维护规则处理,不能静默覆盖。
|
||||
- 完成后报告实际写入、未采纳和未写入内容;Git 提交需要独立授权。
|
||||
|
||||
`distill` 不生成接续提示词、不维护当前任务交接文件;需要继续任务时使用 `handoff`。
|
||||
@@ -0,0 +1,4 @@
|
||||
interface:
|
||||
display_name: "Distill Task Knowledge"
|
||||
short_description: "从当前任务提炼并分流可复用项目知识"
|
||||
default_prompt: "使用 $distill 从本次任务提炼有证据的长期知识,确认前不要写入。"
|
||||
@@ -0,0 +1,11 @@
|
||||
# 知识分流
|
||||
|
||||
| 内容 | 目标 | 不应进入的内容 |
|
||||
| --- | --- | --- |
|
||||
| 已验证、可复用的问题模式 | `.craftkit/knowledge/pitfalls/` | 单次偶发错误、未验证猜测 |
|
||||
| 重要技术选择及其约束 | `.craftkit/knowledge/decisions/` | 临时实现细节 |
|
||||
| 长期有效的项目事实 | `.craftkit/knowledge/` 的现有主题 | 可从源码立即得出的重复说明 |
|
||||
| 对开发决策有约束力的规则 | `.craftkit/standards/` | 仅本任务适用的偏好 |
|
||||
| Agent 使用与读取约定 | `.craftkit/agents/` 或 `AGENTS.md` | 业务知识正文 |
|
||||
|
||||
当前任务状态、下一步动作和接续提示属于 `handoff`;Agent 为什么偏离属于 `trace`;经验条目的初始化、合并、审计和提升属于 `lessons`。
|
||||
@@ -1,3 +1,7 @@
|
||||
# 项目知识索引
|
||||
|
||||
当前没有已验证的项目知识。只收录有证据、适用范围明确且能够复用的技术决策与经验。
|
||||
|
||||
- 问题经验按需建立在 `pitfalls/`,不预建空分类。
|
||||
- 重要技术决策按需建立在 `decisions/`。
|
||||
- 其他长期知识应优先并入已有主题,避免同义平行文档。
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: lessons
|
||||
description: 初始化和维护 .craftkit 问题经验库,并按已确认的经验判据审计项目或提出规范提升建议。适用于经验条目的创建、合并、过时处理、回扫和提升;普通任务总结、直接修改代码或自动改写插件不应触发本 Skill。
|
||||
---
|
||||
|
||||
# 项目问题经验
|
||||
|
||||
统一维护 `.craftkit/knowledge/pitfalls/`。经验必须来自可复核证据,并明确现象、根因、处理、验证和适用范围;不把猜测或一次性任务细节升级为长期规则。
|
||||
|
||||
## 选择模式
|
||||
|
||||
- `init`:首次建立经验索引,读取 [初始化规则](references/init.md)。
|
||||
- `curate`:新增、合并、纠正或标记过时经验,读取 [维护规则](references/curate.md)。
|
||||
- `audit`:按条目中明确的扫描规则只读回扫项目,读取 [审计规则](references/audit.md)。
|
||||
- `promote`:把项目经验提炼为项目规范或 CraftKit 改进建议,读取 [提升规则](references/promote.md)。
|
||||
|
||||
用户未说明模式时,根据目标提出建议并确认。初始化授权不包含重组,审计授权不包含修复,提升授权不包含修改目标规范或插件。
|
||||
|
||||
## 共同边界
|
||||
|
||||
- 先读取适用的 `AGENTS.md`、`.craftkit/README.md`、知识索引和已有经验,不建立第二套经验目录。
|
||||
- 不预建空分类;条目较少时保持扁平,只有检索确有困难时才提议分类。
|
||||
- 已有条目、索引和用户章节保守合并,不整文件覆盖。
|
||||
- 重命名、合并、删除、纠正和移动条目前展示影响并取得确认。
|
||||
- 不记录凭据、个人信息、机器绝对路径或大段源码与日志。
|
||||
- 写入完成后报告实际文件和未采纳建议;不自动暂存、提交或推送。
|
||||
@@ -0,0 +1,4 @@
|
||||
interface:
|
||||
display_name: "Maintain Project Lessons"
|
||||
short_description: "初始化、维护、审计并提升项目问题经验"
|
||||
default_prompt: "使用 $lessons 维护项目问题经验,先确认模式和拟修改内容。"
|
||||
@@ -0,0 +1,22 @@
|
||||
# 问题或决策信号
|
||||
|
||||
- 状态:有效
|
||||
- 适用范围:
|
||||
- 最后验证:
|
||||
|
||||
## 现象
|
||||
|
||||
## 根因
|
||||
|
||||
## 处理
|
||||
|
||||
## 验证
|
||||
|
||||
## 证据
|
||||
|
||||
## 扫描规则(可选)
|
||||
|
||||
- 范围:
|
||||
- 判据:
|
||||
- 排除:
|
||||
- 风险:
|
||||
@@ -0,0 +1,13 @@
|
||||
# 问题经验索引
|
||||
|
||||
本目录保存经过验证、可跨任务复用的问题经验。文件名应直接表达症状或决策信号;条目较少时保持扁平,只有检索困难时才建立分类目录。
|
||||
|
||||
## 分类
|
||||
|
||||
当前尚未建立分类。新增分类时记录目录、收录边界和检索信号,不使用与当前项目无关的预设技术分类。
|
||||
|
||||
## 使用方式
|
||||
|
||||
1. 先按当前症状搜索文件名和正文关键词。
|
||||
2. 阅读条目的适用范围、证据和状态。
|
||||
3. 结论与当前代码或规范冲突时停止套用,并按维护流程确认纠正、保留或废弃。
|
||||
@@ -0,0 +1,11 @@
|
||||
# 按经验审计项目
|
||||
|
||||
审计只使用条目“扫描规则”中的明确范围、判据、排除和风险口径。缺少可执行判据的条目列为人工提醒,不根据叙事自行发明扫描规则。
|
||||
|
||||
1. 只读盘点条目并按文件域形成扫描计划。
|
||||
2. 展示每个域的来源条目、范围、命令或语义检查方法,等用户选择后执行。
|
||||
3. 优先使用 `rg` 等只读工具;需要语义判断时逐项核对代码上下文。
|
||||
4. 每个发现记录相对文件、行号、证据、命中原因、排除核对和风险等级。
|
||||
5. 输出到用户确认的报告位置;没有约定时先建议 `.craftkit/knowledge/audits/<date>/`,写入前确认。
|
||||
|
||||
审计不修改代码、经验条目或规范。误报、修复建议和经验判据调整分别列出,等待后续确认。
|
||||
@@ -0,0 +1,11 @@
|
||||
# 维护经验条目
|
||||
|
||||
新增前按症状、根因和影响组件检索现有条目。使用 `assets/entry.md` 作为字段提示,不强制保留空章节。
|
||||
|
||||
- 重复:补充现有条目,不新建同义文件。
|
||||
- 同一机制的多个案例:保留一个机制主条目,案例作为证据或子节。
|
||||
- 新证据推翻旧结论:标记为待复核,展示冲突后让用户选择纠正、废弃或保留历史说明。
|
||||
- 完全失效:删除仍需确认;需要历史时优先保留状态和替代链接。
|
||||
- 分类困难:保持扁平,不为了目录整齐强行归类。
|
||||
|
||||
每次修改都记录最后验证证据和适用范围。项目特定案例可以保留,但不得把它错误提升为跨项目规则。
|
||||
@@ -0,0 +1,9 @@
|
||||
# 初始化经验库
|
||||
|
||||
1. 检查 `.craftkit/knowledge/pitfalls/`、知识索引和适用的 Agent 说明。
|
||||
2. 目录已有内容时不重组,只报告索引缺口和冲突。
|
||||
3. 目录不存在时展示拟创建的 `INDEX.md` 内容;用户确认后仅创建目录和索引,不创建空分类。
|
||||
4. 项目尚无 `.craftkit` 时先使用项目初始化约定建立最小目录,不自行复制完整模板树。
|
||||
5. 检查 `.craftkit` 没有被整体忽略,且 `pitfalls/` 属于可共享内容;发现忽略冲突时停止处理。
|
||||
|
||||
索引基于 `assets/index.md` 独立生成,并根据项目已有领域词汇补充;不得预置特定框架、组件或业务分类。
|
||||
@@ -0,0 +1,11 @@
|
||||
# 提升经验
|
||||
|
||||
把项目经验中的通用结论提炼为项目规范或 CraftKit 改进建议,不直接修改目标载体。
|
||||
|
||||
1. 确认源条目范围,并区分项目事实、通用工程规则和未验证推断。
|
||||
2. 读取目标仓库适用的 `AGENTS.md`、Skill 入口和规范索引,动态寻找唯一权威落点。
|
||||
3. 已有等价规则时建议补证据或链接,不重复写入。
|
||||
4. 生成建议 patch:目标文件、章节位置、建议条款、适用范围和源条目证据。
|
||||
5. 用户逐文件确认后才允许修改;修改插件、项目规范和源经验收敛是三个独立确认范围。
|
||||
|
||||
提升时删除业务字段、专有路径和单项目偶然细节,只保留有跨项目证据的判断与规避动作。目标是 CraftKit 插件时仍须遵守该仓库迁移与知识产权规则。
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
name: trace
|
||||
description: 基于对话、项目文件和命令证据复盘 Agent 在当前任务中的偏离、漏读或规则失效,并提出待确认的改进载体。适用于用户明确要求分析 Agent 为什么出错;普通代码缺陷分析、任务总结或自动修改规则不应触发本 Skill。
|
||||
---
|
||||
|
||||
# Agent 偏离复盘
|
||||
|
||||
分析失效机制,不追责,也不根据结果反向编造过程。默认只输出复盘和改进建议,任何文件修改都需要后续明确确认。
|
||||
|
||||
## 证据顺序
|
||||
|
||||
1. 还原用户目标、授权边界和任务发生时可见的信息。
|
||||
2. 定位第一个实质偏离点,区分错误判断、错误操作和遗漏动作。
|
||||
3. 检查当时适用的 `AGENTS.md`、Skill、`.craftkit/standards/`、知识条目、对话记录和命令输出。
|
||||
4. 无法确认的内容标记为未知,不把当前检查到的资料假定为当时已被读取。
|
||||
|
||||
## 失效分类
|
||||
|
||||
- `missing`:所需规则或知识没有被记录。
|
||||
- `unread`:规则存在,但任务中没有读取或 Skill 没有触发。
|
||||
- `mismatch`:规则措辞或触发范围与真实场景不匹配。
|
||||
- `misapplied`:证据已读取,但适用性或优先级判断错误。
|
||||
- `insufficient`:当时证据不足,Agent 却没有停下来确认。
|
||||
- `incidental`:单次偶发行为,没有证据支持增加永久规则。
|
||||
|
||||
## 输出
|
||||
|
||||
依次给出预期与边界、实际偏离、证据、失效分类、影响和改进候选。每项改进只指向一个主要载体:现有 Skill、`AGENTS.md`、项目规范、项目知识或新的 Skill 提案。
|
||||
|
||||
改进清单必须明确标记“尚未执行”。只有用户确认具体文件和内容后才能修改;规则修改、知识沉淀和 Git 提交分别遵循各自授权边界。
|
||||
@@ -0,0 +1,4 @@
|
||||
interface:
|
||||
display_name: "Trace Agent Failure"
|
||||
short_description: "基于证据复盘 Agent 偏离和规则失效原因"
|
||||
default_prompt: "使用 $trace 复盘本次 Agent 偏离,先给出证据和尚未执行的改进建议。"
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: worklog
|
||||
description: 根据指定仓库、日期范围、时区和作者的真实 Git 提交生成简洁工作日志。适用于每日或周期提交总结;任务交接、工作量推测、未提交工作总结或无证据编写日志不应触发本 Skill。
|
||||
---
|
||||
|
||||
# Git 工作日志
|
||||
|
||||
从本地 Git 历史提炼工作主线。默认只在对话输出,不自动 fetch,不写文件,也不把提交数量当作工作量。
|
||||
|
||||
## 确认范围
|
||||
|
||||
明确仓库、起止日期、时区和作者。自然语言日期必须换算为准确日期并向用户展示;用户未指定作者时可读取当前仓库 `user.name` 作为候选,但不能假定它覆盖全部作者身份。
|
||||
|
||||
多仓库按仓库分别取证,再合并相同日期范围的结论。当前目录不在仓库中时询问路径,不向上枚举无关目录。
|
||||
|
||||
## 收集证据
|
||||
|
||||
使用 `git log --since`、`--until`、`--author` 和明确日期格式读取提交主题、作者、时间;需要理解主线时再读取 `--stat` 或相关提交详情。默认只读本地引用,用户要求远端最新结果时单独确认 fetch。
|
||||
|
||||
作者过滤无结果时先查看该时间范围内的作者分布,向用户确认别名后重查。范围内确实没有提交时如实说明,不使用工作区、聊天记忆或文件修改时间补造工作内容。
|
||||
|
||||
## 输出层级
|
||||
|
||||
- 默认:日期或范围标题,加一句主要工作方向。
|
||||
- 用户要求展开:按模块、成果、问题修复或验证整理,但每项必须能回溯到提交。
|
||||
- 用户要求提交清单:再列短哈希和主题,不默认输出完整时间线。
|
||||
|
||||
避免暴露提交中的个人邮箱、内部地址或敏感配置内容。写入周报、日报文件或提交日志产物需要新的明确授权。
|
||||
@@ -0,0 +1,4 @@
|
||||
interface:
|
||||
display_name: "Git Worklog"
|
||||
short_description: "根据真实 Git 提交生成每日或周期工作日志"
|
||||
default_prompt: "使用 $worklog 根据指定日期和作者的 Git 提交生成简洁工作日志。"
|
||||
Reference in New Issue
Block a user