关于 aif-reference
aif-reference 是 AI Factory 技能,可将外部来源或本地文件整理为供其他技能复用的结构化参考资料。它支持创建、更新、列出、查看和删除资料,并维护索引以便查找。
主要功能
- 01创建结构化参考资料
- 02处理 URL 和本地文件
- 03更新现有参考资料
- 04列出、查看和删除条目
- 05维护参考资料索引
- 06配置产物语言与路径
适用场景
- 01基于指定文档为 AI 工作流提供依据
- 02保存可复用的领域背景
- 03来源变更后更新参考资料
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lee-to/ ai-factory --skill aif-reference安装后在 Claude Code 中输入/aif-reference确认已加载。
附带文件references/EXAMPLES.md
详细介绍
参考资料创建器
从外部来源创建结构化知识参考资料,并将其存储在已配置的参考资料目录中,以便其他 AI Factory 技能之后重复使用。
步骤 0:加载配置
首先: 如果 .ai-factory/config.yaml 存在,请读取它以确定:
- 路径:
paths.references和paths.rules_file - 语言: 用于提示词和摘要的
language.ui、用于生成参考资料的language.artifacts,以及参考资料中面向用户的技术术语所用的language.technical_terms
如果 config.yaml 不存在,请使用默认值:
- references/:
.ai-factory/references/ - RULES.md:
.ai-factory/RULES.md ui_language:enartifact_language:entechnical_terms_policy:keep
解析后的语言值:
ui_language = language.ui || "en"artifact_language = language.artifacts || language.ui || "en"technical_terms_policy = language.technical_terms || "keep"
如果 technical_terms_policy 不是 keep、translate 或 mixed 之一,则按 keep 处理。english 等旧值也按 keep 处理。
所有 AskUserQuestion 提示、进度更新、摘要和后续步骤指引都必须使用 ui_language 编写。
生成的参考资料文件和参考资料 INDEX.md 必须使用 artifact_language 编写。
模板和示例用于定义结构,而非固定的英文输出。如果 artifact_language 不是 en,保存前请翻译面向用户的标题、标签、摘要、概念说明、最佳实践说明、注意事项和索引描述。保留来源引文、来源标题、URL、本地路径、代码示例、API 签名、命令名称、配置键、软件包名称、版本字符串、原始错误和链接目标,不作更改。对其他面向用户的术语应用 technical_terms_policy。
项目上下文
读取 .ai-factory/skill-context/aif-reference/SKILL.md——如果该文件存在,则必须读取。
此文件包含 /aif-evolve 根据补丁、代码库规范和技术栈分析积累的项目专属规则。这些规则针对当前项目进行了定制。
如何应用 skill-context 规则:
- 将其视为对本技能通用说明的项目级覆盖规则
- 当 skill-context 规则与本 SKILL.md 中的通用规则冲突时,以 skill-context 规则为准
- 若无冲突,则两者都适用
- 重要:skill-context 规则适用于本技能的所有输出,包括生成的参考资料文件。如果 skill-context 规则要求“参考资料必须包含 X”,则必须遵守。
**执行要求:**生成任何输出文件后,都要根据所有 skill-context 规则进行检查。如果发现违反规则,则在向用户展示前修正输出。
适用场景
- AI 需要其训练数据中没有或可能只部分掌握的文档
- 你希望根据特定文档、规范或内部文件获得有依据的回答
- 你希望为
/aif-plan、/aif-implement、/aif-explore或/aif-grounded提供可重复使用的领域上下文 - 你希望创建持久的知识文件,而非一次性对话上下文
参数检测
Check $ARGUMENTS:
- Contains "--update" -> Update Mode: refresh existing reference
- Contains URLs (http/https) -> URL Mode: fetch and process web sources
- Contains file paths -> File Mode: process local documents
- "list" -> List existing references
- "show <name>" -> Show reference content
- "delete <name>" -> Delete a reference (with confirmation)
- Empty -> Interactive mode
工作流
步骤 0.1:设置
确保已解析的参考资料目录存在:
mkdir -p <resolved references dir>
检查是否已有参考资料,以避免重复:
ls <resolved references dir>
如果提供了 --name <ref-name>,则将其用作参考资料名称。
如果提供了 --update,则查找并更新现有参考资料,而不是创建新的参考资料。
步骤 1:收集来源
对于 URL:
对于每个 URL:
- 使用
WebFetch获取页面并提取:- 主要主题和用途
- 关键概念、术语和定义
- 代码示例和模式
- API 方法、参数、返回类型和签名
- 带默认值的配置选项
- 最佳实践和建议
- 错误处理和边界情况
- 版本信息和兼容性说明
- 指向关键子页面的链接
- 如果引用了关键子页面,也获取这些页面(每个来源 URL 最多额外获取 8 个页面)。
- 如果仍有明显的信息缺口,运行 1-2 次有针对性的
WebSearch查询来补充。
对于本地文件:
- 使用
Read读取每个文件 - 如果文件引用了其他本地文件,也读取这些文件(最多递归包含 5 层)
- 检测文件格式(markdown、HTML、JSON、YAML、纯文本)并据此提取内容
对于交互模式:
询问用户:
- 此参考文档应涵盖什么主题或技术?
- 他们是否有 URL 或本地文件,还是需要你进行搜索?
- 对他们的使用场景来说,哪些方面最重要?
步骤 2:综合整理参考文档
将收集的材料整理为结构化参考文档。
参考文件格式:
保存前,使用 artifact_language 呈现此结构。以下标题是规范结构标签,不是固定的英文输出。
# <Topic> Reference
> Source: <list of source URLs or file paths>
> Created: YYYY-MM-DD
> Updated: YYYY-MM-DD
## Overview
<1-3 paragraph summary>
## Core Concepts
<Concept 1>: <clear explanation>
<Concept 2>: <clear explanation>
## API / Interface
<Only if applicable. Preserve exact signatures and types from source docs.>
## Usage Patterns
<Practical code examples organized by use case.>
## Configuration
<Options, defaults, valid values. Table format preferred.>
## Best Practices
<Numbered list with reasoning>
## Common Pitfalls
<What goes wrong and how to avoid it>
## Version Notes
<Only if relevant. Breaking changes, migration notes, deprecations.>
质量规则:
- 不编造 - 仅包含实际查找到的内容
- 原样保留代码 - 文档中的示例必须保持原样
- 注重可操作性,而非学术性 - 优先提供便于查阅的信息
- 内容精炼 - 尽可能提高每行的信息量
- 完整签名 - API 需包含完整参数、类型和返回值
- 注明来源 - 始终包含来源 URL 或路径
步骤 3:命名并保存
命名约定:
- 根据主题确定名称:
react-hooks.md、fastapi-endpoints.md、docker-compose.md - 使用小写字母、连字符和
.md - 如果提供了
--name,则使用该名称(若缺少.md,则添加) - 避免使用
reference.md等通用名称
保存到: <resolved references dir>/<name>.md
步骤 4:在索引中注册
检查 <resolved references dir>/INDEX.md 是否存在。创建或更新该文件:
使用 artifact_language 编写易读的索引标题、主题说明和来源摘要;文件名、链接、URL 和日期保持不变。
# References Index
Available knowledge references for AI agents.
| Reference | Topic | Sources | Updated |
|-----------|-------|---------|---------|
| [react-hooks](react-hooks.md) | React Hooks API and patterns | react.dev | 2026-03-20 |
| [docker-compose](docker-compose.md) | Docker Compose configuration | docs.docker.com | 2026-03-20 |
步骤 5:报告
向用户显示:
- 参考文档名称和路径
- 大小(行数)
- 包含的章节
- 使用的来源 URL 或文件路径
- 如何在后续 AI Factory 工作流中使用该文档
更新模式(--update)
启用 --update 时:
- 根据
--name或匹配的来源查找现有参考文档 - 重新获取标头中列出的来源
- 将新材料与现有内容进行比较,并仅更新有变化的章节
- 保留
Created:,更新Updated: - 报告变更内容
列出 / 显示 / 删除
/aif-reference list- 读取并显示<resolved references dir>/INDEX.md,或列出目录中的文件/aif-reference show <name>- 读取并显示参考文档内容(.md可省略)/aif-reference delete <name>- 请求确认,删除文件并更新INDEX.md
与其他技能集成
已解析的参考文档目录中的参考文档可供所有 AI Factory 技能使用:
/aif-plan和/aif-implement可读取这些文档以获取领域背景/aif-grounded可将其用作证据来源/aif-explore可在研究过程中引用这些文档
如需让某项技能识别特定参考文档,请在已解析的 RULES.md 文件中提及该文档:
## References
- For <topic> details, see `<resolved references dir>/<name>.md`
Artifact 归属
- 主要归属: 解析后的参考资料目录(默认:
.ai-factory/references/) - 共同归属: 解析后的参考资料索引文件(该目录中的
INDEX.md) - 只读: 其他所有
.ai-factory/文件 - 配置策略: 根据配置进行处理。使用
paths.references指定存储位置,使用paths.rules_file在将其他技能指向已保存的参考资料时指定路径,使用language.ui编写提示词和摘要,使用language.artifacts生成参考资料,使用language.technical_terms制定面向用户的术语规范。
防护规则
- 参考资料长度上限: 尽量将每份参考资料控制在 1000 行以内。若更长,则拆分为多个文件,并在解析后的参考资料目录中创建一个目录,且在其中放置
INDEX.md - 避免重复: 创建新参考资料前,先检查现有资料
- 避免数据过时: 始终包含来源,以便刷新参考资料
- 不加入个人观点: 参考资料应反映来源内容,而非个人偏好
- 遵守访问限制: 如果 URL 需要身份验证或无法加载,应如实说明,不要猜测