Agent Skillslee-to/ai-factory › aif-reference

aif-reference

GitHub

从URL、文档或文件创建结构化知识引用,存储至指定目录供其他AI技能复用。支持读取配置确定语言和路径,优先应用项目特定上下文规则,确保引用内容可被其他工具如规划、实现技能重用。

skills/aif-reference/SKILL.md lee-to/ai-factory

Trigger Scenarios

需要为AI提供训练数据之外的文档依据 希望基于特定文档或内部文件生成可复用的领域上下文

Install

npx skills add lee-to/ai-factory --skill aif-reference -g -y
More Options

Use without installing

npx skills use lee-to/ai-factory@aif-reference

指定 Agent (Claude Code)

npx skills add lee-to/ai-factory --skill aif-reference -a claude-code -g -y

安装 repo 全部 skill

npx skills add lee-to/ai-factory --all -g -y

预览 repo 内 skill

npx skills add lee-to/ai-factory --list

SKILL.md

Frontmatter
{
    "name": "aif-reference",
    "metadata": {
        "author": "ai-factory",
        "version": "1.0",
        "category": "knowledge-management"
    },
    "description": "Create knowledge references from URLs, documents, or files for use by AI agents. Fetch, process, and store structured references in the configured references directory (default: .ai-factory\/references\/).",
    "allowed-tools": "Read Write Edit Glob Grep Bash(mkdir *) Bash(ls *) Bash(wc *) WebFetch WebSearch AskUserQuestion",
    "argument-hint": "<url|path> [url2|path2] [--name <ref-name>] [--update]",
    "disable-model-invocation": false
}

Reference Creator

Create structured knowledge references from external sources and store them in the configured references directory so other AI Factory skills can reuse them later.

Step 0: Load Config

FIRST: Read .ai-factory/config.yaml if it exists to resolve:

  • Paths: paths.references and paths.rules_file
  • Language: language.ui for prompts and summaries, language.artifacts for generated reference artifacts, and language.technical_terms for human-readable technical terminology in references

If config.yaml doesn't exist, use defaults:

  • references/: .ai-factory/references/
  • RULES.md: .ai-factory/RULES.md
  • ui_language: en
  • artifact_language: en
  • technical_terms_policy: keep

Resolved language values:

  • ui_language = language.ui || "en"
  • artifact_language = language.artifacts || language.ui || "en"
  • technical_terms_policy = language.technical_terms || "keep"

If technical_terms_policy is not one of keep, translate, or mixed, treat it as keep. Legacy values such as english also behave like keep.

All AskUserQuestion prompts, progress updates, summaries, and next-step guidance MUST be written in ui_language.

Generated reference files and the reference INDEX.md MUST be written in artifact_language.

Templates and examples define structure, not fixed English output. If artifact_language is not en, translate human-readable headings, labels, summaries, concept explanations, best-practice prose, pitfalls, and index descriptions before saving. Preserve source quotations, source titles, URLs, local paths, code examples, API signatures, command names, config keys, package names, version strings, raw errors, and link targets unchanged. Apply technical_terms_policy to other human-readable terminology.

Project Context

Read .ai-factory/skill-context/aif-reference/SKILL.md - MANDATORY if the file exists.

This file contains project-specific rules accumulated by /aif-evolve from patches, codebase conventions, and tech-stack analysis. These rules are tailored to the current project.

How to apply skill-context rules:

  • Treat them as project-level overrides for this skill's general instructions
  • When a skill-context rule conflicts with a general rule written in this SKILL.md, the skill-context rule wins
  • When there is no conflict, apply both
  • CRITICAL: skill-context rules apply to ALL outputs of this skill - including the generated reference files. If a skill-context rule says "references MUST include X" - you MUST comply.

Enforcement: After generating any output artifact, verify it against all skill-context rules. If any rule is violated - fix the output before presenting it to the user.

When To Use

  • AI needs documentation it was not trained on or may know only partially
  • You want grounded answers based on specific docs, specs, or internal files
  • You want reusable domain context for /aif-plan, /aif-implement, /aif-explore, or /aif-grounded
  • You want a durable knowledge artifact instead of one-off conversation context

Argument Detection

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

Workflow

Step 0.1: Setup

Ensure the resolved references directory exists:

mkdir -p <resolved references dir>

Check for existing references to avoid duplicates:

ls <resolved references dir>

If --name <ref-name> is provided, use it as the reference name. If --update is provided, find and update the existing reference instead of creating a new one.

Step 1: Collect Sources

For URLs:

For each URL:

  1. Fetch the page using WebFetch and extract:
    • main topic and purpose
    • key concepts, terms, and definitions
    • code examples and patterns
    • API methods, parameters, return types, and signatures
    • configuration options with defaults
    • best practices and recommendations
    • error handling and edge cases
    • version information and compatibility notes
    • links to critical sub-pages
  2. If critical sub-pages are referenced, fetch them too (up to 8 extra pages per source URL).
  3. If obvious gaps remain, run 1-2 targeted WebSearch queries to fill them.

For local files:

  1. Read each file with Read
  2. If the file references other local files, read those too (up to 5 levels of includes)
  3. Detect the format (markdown, HTML, JSON, YAML, plain text) and extract accordingly

For interactive mode:

Ask the user:

  1. What topic or technology should this reference cover?
  2. Do they have URLs or local files, or should you search?
  3. What aspects matter most for their use case?

Step 2: Synthesize the Reference

Transform collected material into a structured reference document.

Reference file format:

Render this structure in artifact_language before saving. The headings below are canonical structure labels, not fixed English output.

# <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.>

Quality rules:

  • No hallucination - include only what was actually found
  • Preserve code verbatim - docs examples must stay exact
  • Actionable over academic - optimize for useful lookup
  • Dense - maximize useful information per line
  • Complete signatures - APIs need full parameters, types, and returns
  • Source attribution - always include source URLs or paths

Step 3: Name and Save

Naming convention:

  • Derive from topic: react-hooks.md, fastapi-endpoints.md, docker-compose.md
  • Use lowercase, hyphens, .md
  • If --name was provided, use that (add .md if missing)
  • Avoid generic names like reference.md

Save to: <resolved references dir>/<name>.md

Step 4: Register in Index

Check if <resolved references dir>/INDEX.md exists. Create or update it:

Write human-readable index headings, topic descriptions, and source summaries in artifact_language; keep filenames, links, URLs, and dates unchanged.

# 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 |

Step 5: Report

Show the user:

  • reference name and path
  • size (line count)
  • sections included
  • source URLs or file paths used
  • how to use it in later AI Factory workflows

Update Mode (--update)

When --update is present:

  1. Find the existing reference by --name or matching sources
  2. Re-fetch the sources listed in the header
  3. Compare new material with existing content and update only changed sections
  4. Preserve Created:, update Updated:
  5. Report what changed

List / Show / Delete

  • /aif-reference list - read and display <resolved references dir>/INDEX.md or list files in the directory
  • /aif-reference show <name> - read and display the reference content (.md is optional)
  • /aif-reference delete <name> - ask for confirmation, delete the file, and update INDEX.md

Integration With Other Skills

References in the resolved references directory are available to all AI Factory skills:

  • /aif-plan and /aif-implement can read them for domain context
  • /aif-grounded can use them as evidence sources
  • /aif-explore can reference them during research

To make a skill aware of a specific reference, mention it in the resolved RULES.md file:

## References
- For <topic> details, see `<resolved references dir>/<name>.md`

Artifact Ownership

  • Primary ownership: the resolved references directory (default: .ai-factory/references/)
  • Shared ownership: the resolved references index file (INDEX.md inside that directory)
  • Read-only: all other .ai-factory/ files
  • Config policy: config-aware. Use paths.references for storage, paths.rules_file when pointing other skills at a saved reference, language.ui for prompts and summaries, language.artifacts for generated reference artifacts, and language.technical_terms for human-readable terminology policy.

Guardrails

  • Max reference size: aim for under 1000 lines per reference. If larger, split into multiple files and create a directory inside the resolved references dir with an INDEX.md inside
  • No duplication: check existing references before creating a new one
  • No stale data: always include sources so the reference can be refreshed
  • No opinions: references should reflect sources, not personal preferences
  • Respect access: if a URL requires authentication or fails to load, report that instead of guessing

Version History

  • 2.17.0 Current 2026-07-24 12:21

Same Skill Collection

examples/extensions/aif-ext-hello/skills/aif-hello-world/SKILL.md
examples/extensions/aif-ext-hello/skills/hello-commit/SKILL.md
skills/aif-architecture/SKILL.md
skills/aif-archive/SKILL.md
skills/aif-best-practices/SKILL.md
skills/aif-build-automation/SKILL.md
skills/aif-ci/SKILL.md
skills/aif-commit/SKILL.md
skills/aif-distillation/SKILL.md
skills/aif-dockerize/SKILL.md
skills/aif-docs/SKILL.md
skills/aif-evolve/SKILL.md
skills/aif-explore/SKILL.md
skills/aif-fix/SKILL.md
skills/aif-grounded/SKILL.md
skills/aif-implement/SKILL.md
skills/aif-improve/SKILL.md
skills/aif-loop/SKILL.md
skills/aif-plan/SKILL.md
skills/aif-qa-check/SKILL.md
skills/aif-qa/SKILL.md
skills/aif-review/SKILL.md
skills/aif-roadmap/SKILL.md
skills/aif-rules-check/SKILL.md
skills/aif-rules/SKILL.md
skills/aif-security-checklist/SKILL.md
skills/aif-skill-generator/SKILL.md
skills/aif-verify/SKILL.md
skills/aif/SKILL.md

Metadata

Files
0
Version
2.17.0
Hash
bf1c74e3
Indexed
2026-07-24 12:21

trang chủ - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-08 05:28
浙ICP备14020137号-1 $bản đồ khách truy cập$