Files
ks-zl-extract/SKILL.md
2026-05-17 17:24:03 +08:00

5.5 KiB
Raw Blame History

name, description
name description
ks-zl-extract Use when 用户要求从 ks-zl 蒸馏库、笔记库、规范库、建议库或文档库中,为当前目标项目提取适用的规范、需求摘要、示例或方案,并写入目标项目文档目录。

ks-zl-extract

定位

ks-zl 维护的 distillation library 中读取资产索引,结合 target project 的项目特征,提取当前项目真正需要的规范、示例、需求摘要或方案到目标项目文档目录。

本 skill 不负责沉淀新资产到蒸馏库;蒸馏库资产创建和维护由 ks-zl 完成。本 skill 只读蒸馏库,只写目标项目文档目录,不实现业务代码。

语言硬规则:本 skill 写入目标项目的导入规范、摘要和 extraction-report.md 必须以中文为主体语言技术术语、产品名、命令、配置键、API 名称、UI 原文、文件路径和代码标识保留英文原文。

与 ks-zl 的边界

  • ks-zl:在蒸馏库 B 中创建 standardrequirement-packagesolutionexample 等资产,并维护 _indexes/artifacts-index.json
  • ks-zl-extract:在项目 A 中读取蒸馏库 B识别项目 A 的特征,选择适用资产,写入项目 A 的规范目录,并生成 extraction-report.md
  • 如果提取时发现蒸馏库缺少资产或资产元数据不完整,只记录问题;不要在本 skill 中直接改蒸馏库,除非用户明确切换到 ks-zl 维护蒸馏库。

输入识别

用户通常会说:

我的蒸馏库在 B帮我提取当前项目需要的规范到 ./xxxx

必须识别:

  • distillation library用户指定的蒸馏库路径若未指定则询问。
  • target project默认当前工作区用户指定时使用指定路径。
  • output directory用户指定的 ./xxxx;未指定时默认写入 .ai-specs/imported-standards

工作流

  1. 读取蒸馏库的 AGENTS.mdREADME.md_indexes/artifacts-index.json
  2. 如果 artifacts-index.json 缺失但存在 scripts/build-artifact-index.ps1,先运行该脚本重建索引。
  3. 扫描目标项目特征;优先使用本 skill 的 scripts/detect-project-signals.ps1
  4. 根据用户目标、项目特征和索引中的 appliesWhentagsdomaintargetOutputs 匹配资产;可用 scripts/select-library-assets.ps1 先生成候选列表。
  5. 高置信命中可直接提取;命中冲突或候选过多时,先给出候选清单和推荐项,等用户确认。
  6. 使用 scripts/extract-library-assets.ps1 写入 <output-directory>/<domain>.mdextraction-report.md;资产的 targetOutputs 作为建议目标记录在输出中,不直接覆盖目标项目既有规范。
  7. 生成或更新 <output-directory>/extraction-report.md,记录来源、命中原因、写入路径和未提取原因。

项目信号

常用 signals

Signal 触发依据
project-has-database 存在 SQL、迁移脚本、ORM schema、实体模型、数据库配置或 .ai-specs/doc-sql
designing-tables 用户要求表设计、字段规范、数据对象、字典或数据库文档
data-may-sync-or-recover 存在同步、导入、导出、补录、恢复、对账、外部编号等线索
has-api-contract 存在 OpenAPI、路由、controller、接口文档或 API 网关配置
has-frontend-ui 存在页面、组件、路由、表单、菜单或前端工程

信号只是匹配依据,不是确定结论。若信号来自推断,必须在 extraction-report.md 中标记为 inferred。

提取规则

  • 优先提取 type: standard 的规范卡;它们是给跨项目复用设计的。
  • 需求包只提取摘要和链接,不要把完整需求包散写进项目规范,除非用户明确要求。
  • 示例和方案只作为参考材料,不得覆盖目标项目已有规范。
  • 不复制整个蒸馏库;只复制命中资产的必要内容,并保留来源路径。
  • 不覆盖目标项目已有确定规则;冲突时写入 extraction-report.md 的冲突记录并询问用户。
  • 脚本生成的文件带 generated-by: ks-zl-extract 标记;遇到没有该标记的同名文件时,必须拒绝覆盖,除非用户明确要求 -Force

输出格式

每个提取文件建议包含:

# <domain> 提取规范

来源蒸馏库:<distillation-library-path>
提取时间:<YYYY-MM-DD>

## <资产标题>

来源:<relative-path-in-library>
命中原因:<signals/tags/query>

<整理后的规范正文>

extraction-report.md 必须包含:

  • 扫描到的 target project signals。
  • 使用的索引路径和查询条件。
  • 已提取资产:来源路径、写入路径、命中原因。
  • 未提取候选:原因。
  • 冲突或待确认事项。

验证

完成前至少检查:

powershell -ExecutionPolicy Bypass -File <this-skill>\scripts\detect-project-signals.ps1 -Root <target-project>

如果蒸馏库提供搜索脚本,优先用选择脚本验证一次命中:

powershell -ExecutionPolicy Bypass -File <this-skill>\scripts\select-library-assets.ps1 -LibraryRoot <library> -TargetRoot <target-project> -Query "database" -Json

执行写入时使用:

powershell -ExecutionPolicy Bypass -File <this-skill>\scripts\extract-library-assets.ps1 -LibraryRoot <library> -TargetRoot <target-project> -OutputDirectory .ai-specs\imported-standards -Query "database"

回复用户时说明写入了哪些文件、每个文件来自蒸馏库哪个资产、还有哪些候选没有提取。