Doramagic 项目包 · 项目说明书
skillkit 项目
生成时间:2026-05-16 18:44:53 UTC
项目介绍
SkillKit 是一个开源的 AI Agent 技能管理系统,旨在解决 AI 代码助手(Agent)在技能定义格式上互不兼容的问题。该项目允许开发者编写一次技能配置,即可将其转换并分发到多个 AI 平台使用,包括 Cursor、Copilot、Windsurf、Claude 等主流工具。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
概述
SkillKit 是一个开源的 AI Agent 技能管理系统,旨在解决 AI 代码助手(Agent)在技能定义格式上互不兼容的问题。该项目允许开发者编写一次技能配置,即可将其转换并分发到多个 AI 平台使用,包括 Cursor、Copilot、Windsurf、Claude 等主流工具。
资料来源:README.md
核心价值定位
当前 AI 代码助手生态中存在一个显著问题:每个平台都定义了各自独特的技能(Skill)格式规范。这种碎片化导致开发者需要为同一个技能编写多份配置,造成了重复劳动和维护负担。SkillKit 通过提供统一的技能格式和自动化转换机制,显著简化了这一工作流程。
资料来源:README.md
支持的 AI Agent 平台
SkillKit 目前支持以下 AI Agent 平台的技能分发:
| 平台名称 | 状态 |
|---|---|
| augment-code | ✅ 支持 |
| bolt | ✅ 支持 |
| lovable | ✅ 支持 |
| replit-agent | ✅ 支持 |
| sourcegraph-cody | ✅ 支持 |
| tabby | ✅ 支持 |
| tabnine | ✅ 支持 |
| universal | ✅ 支持 |
资料来源:packages/agents/README.md
技能格式支持
SKILL.md 格式
这是大多数 Agent 使用的标准格式,采用 YAML frontmatter 结合 Markdown 内容:
资料来源:[README.md]()
安装指南
SkillKit 是一个跨平台 AI 技能管理系统,支持多种安装方式以满足不同用户的需求。本指南涵盖从快速启动到完整源码部署的全部安装方案。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
系统要求
SkillKit 对运行环境有以下基本要求:
| 要求项 | 最低版本 | 推荐版本 |
|---|---|---|
| Node.js | 18.0.0 | 20.x LTS |
| npm | 8.0.0 | 10.x |
| Git | 2.30.0 | 最新版本 |
| 操作系统 | macOS/Linux/Windows (WSL2) | - |
安装方式
方式一:全局安装(推荐)
使用 npm 全局安装 SkillKit CLI 工具,这是最便捷的生产环境使用方式:
npm install -g skillkit
安装完成后,直接在终端运行 skillkit 命令即可:
skillkit --help
资料来源:README.md:1
方式二:使用 npx 免安装运行
如果仅需临时使用或进行快速演示,可以通过 npx 直接运行而无需全局安装:
npx skillkit <command>
npx 会自动下载并执行指定版本的 SkillKit,每次运行时会检查更新。
资料来源:README.md:1
方式三:Docker 部署
对于需要隔离环境的场景,SkillKit 支持通过 Docker 运行:
docker pull skillkit/skillkit:latest
docker run -it skillkit/skillkit <command>
Docker 方式特别适合团队标准化环境配置和 CI/CD 集成场景。
方式四:源码编译安装
适用于需要自定义功能或参与项目开发的用户。
#### 克隆仓库
git clone https://github.com/rohitg00/skillkit.git
cd skillkit
#### 安装依赖
SkillKit 采用 monorepo 结构,主目录下使用 npm workspaces 管理多个子包:
npm install
此命令会自动安装所有子包的依赖,包括核心包、CLI 包、TUI 包等。
#### 编译构建
npm run build
构建过程会生成各包的发布产物,包括:
packages/core- 核心功能库packages/cli- 命令行工具packages/tui- 终端用户界面packages/api- REST API 服务packages/mesh- 服务网格模块packages/messaging- 消息传递模块
资料来源:package.json
项目架构概览
SkillKit 的整体架构设计如下:
graph TD
A[用户终端] --> B[CLI 工具<br/>skillkit 命令]
A --> C[TUI 界面<br/>交互式终端]
A --> D[REST API<br/>skillkit serve]
B --> E[核心模块<br/>packages/core]
C --> E
D --> E
E --> F[技能存储]
E --> G[翻译引擎]
E --> H[推荐系统]
F --> I[本地文件系统]
F --> J[远程仓库]
F --> K[团队 Bundle]
L[Agent 集成] --> M[Claude<br/>Cursor<br/>Windsurf<br/>Copilot]包结构说明
SkillKit 采用 monorepo 架构,主要包的功能如下:
| 包名 | 功能描述 | 主要导出 |
|---|---|---|
@skillkit/core | 核心功能,包含技能解析、翻译、推荐等核心算法 | SkillKit, SkillTranslator |
@skillkit/cli | 命令行工具,提供所有 skillkit 子命令 | CLI 可执行文件 |
@skillkit/tui | 终端用户界面,交互式操作界面 | 独立的 TUI 应用 |
@skillkit/api | REST API 服务,支持 HTTP 接口访问 | Express 服务 |
@skillkit/mesh | 服务网格模块,支持微服务架构集成 | 连接器和适配器 |
@skillkit/messaging | 消息传递系统,支持事件驱动通信 | 消息队列接口 |
@skillkit/mcp | MCP 协议集成,支持模型上下文协议 | MCP 服务器 |
验证安装
安装完成后,可通过以下方式验证:
检查 CLI 版本
skillkit --version
查看可用命令
skillkit --help
输出应包含以下主要功能模块:
skillkit add # 添加技能
skillkit translate # 翻译技能格式
skillkit recommend # 智能推荐
skillkit serve # 启动 API 服务
skillkit team # 团队协作
skillkit plugin # 插件管理
skillkit methodology # 方法论加载
skillkit plan # 计划执行
skillkit hook # 自动化钩子
skillkit scan # 安全扫描
快速开始
安装完成后,按以下步骤创建第一个技能:
初始化项目
skillkit init
添加技能
skillkit add <source>
支持的来源格式:
skillkit add claude:username/skill # Claude
skillkit add cursor:owner/skill # Cursor
skillkit add windsurf:repo/skills # Windsurf
skillkit add github:owner/repo # GitHub
skillkit add gitlab:team/skills # GitLab
skillkit add ./my-local-skills # 本地路径
skillkit add https://gist.github.com/... # Gist
资料来源:README.md:1
启动交互界面
skillkit tui
启动 API 服务
skillkit serve
# 服务地址: http://localhost:3737
团队安装配置
对于团队环境,建议通过配置文件统一管理:
skillkit team init --name "Engineering Team"
skillkit team sync
配置文件 .skillkit.json 可放在项目根目录,确保团队成员使用一致的技能配置。
环境变量配置
SkillKit 支持以下环境变量自定义行为:
| 变量名 | 默认值 | 说明 |
|---|---|---|
SKILLKIT_DIR | ~/.skillkit | 技能存储目录 |
SKILLKIT_API_PORT | 3737 | API 服务端口 |
SKILLKIT_LOG_LEVEL | info | 日志级别 |
SKILLKIT_CACHE_TTL | 3600 | 缓存生存时间(秒) |
常见问题
全局安装后命令不可用
确保 npm 全局 bin 目录在系统 PATH 中:
npm config get prefix
如果路径不在 PATH 中,添加到 shell 配置文件(.bashrc、.zshrc 等):
export PATH="$(npm config get prefix)/bin:$PATH"
权限错误(EACCES)
Linux/macOS 上如遇权限问题,避免使用 sudo:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
源码安装构建失败
确保 Node.js 版本符合要求,并清理缓存后重试:
rm -rf node_modules package-lock.json
npm cache clean --force
npm install
npm run build
下一步
安装完成后,建议继续阅读以下文档:
资料来源:[README.md:1]()
快速入门
本文档将帮助你快速上手 SkillKit,了解如何安装、配置以及使用核心功能来管理 AI Agent 技能。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
什么是 SkillKit
SkillKit 是一个用于统一管理和分发 AI Agent 技能(Skills)的命令行工具。它允许开发者:
- 为多个 AI Agent 平台(如 Cursor、Windsurf、Claude Code 等)编写一次技能
- 自动将技能转换为不同 Agent 支持的格式
- 订阅社区技能市场并同步到本地
- 根据项目技术栈获取智能推荐
系统要求
| 要求 | 最低版本 |
|---|---|
| Node.js | 18.0.0 |
| npm/pnpm | 最新版本 |
| 操作系统 | macOS、Linux、Windows |
安装
通过 npm 全局安装 SkillKit CLI:
npm install -g @skillkit/cli
或使用 pnpm:
pnpm add -g @skillkit/cli
安装完成后,验证安装:
skillkit --version
初始化项目
在项目根目录运行初始化命令,创建 .skillkit 配置文件:
skillkit init
初始化过程会:
- 创建
.skillkit目录 - 生成
skillkit.yaml配置文件 - 检测项目技术栈(语言、框架、库)
- 配置支持的 AI Agent
资料来源:README.md
初始化配置
初始化后生成的 skillkit.yaml 结构如下:
agents:
- cursor
- windsurf
- claude
- copilot
stack:
languages: []
frameworks: []
libraries: []
skills: []
核心命令
添加技能
使用 add 命令添加本地技能或远程技能源:
# 添加 GitHub 仓库
skillkit add github:username/skills
# 添加 GitLab 仓库
skillkit add gitlab:team/skills
# 添加本地路径
skillkit add ./my-local-skills
# 添加 Gist
skillkit add https://gist.github.com/...
资料来源:README.md
智能推荐
根据项目技术栈获取推荐技能:
skillkit recommend
输出示例:
92% vercel-react-best-practices
87% tailwind-v4-patterns
85% nextjs-app-router
81% shadcn-ui-components
推荐系统会分析项目中的:
- 编程语言
- 前端框架
- UI 库
- 测试框架
- 数据库
资料来源:packages/cli/src/commands/recommend.ts
同步技能
将技能同步到指定的 AI Agent:
# 同步所有技能
skillkit sync
# 同步到指定 Agent
skillkit sync --to cursor
# 同步指定技能
skillkit sync my-skill --to windsurf
资料来源:packages/cli/src/commands/sync.ts
格式转换
SkillKit 支持将技能转换为不同 Agent 专用的格式:
# 转换单个技能
skillkit translate my-skill --to cursor
# 转换所有技能
skillkit translate --all --to windsurf,codex
# 预览转换结果
skillkit translate my-skill --to copilot --dry-run
技能格式
SKILL.md 格式
大多数 Agent 使用的标准格式,采用 YAML frontmatter + Markdown 内容:
资料来源:[README.md](https://github.com/rohitg00/skillkit/blob/main/README.md)
包结构与依赖关系
SkillKit 是一个基于 pnpm monorepo 架构的多包项目,采用 pnpm workspaces 和 Turborepo 进行包管理和构建优化。项目设计围绕 AI 代理技能系统展开,提供了核心库、命令行工具、TUI 界面和浏览器扩展等多元化终端。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
项目概述
SkillKit 是一个基于 pnpm monorepo 架构的多包项目,采用 pnpm workspaces 和 Turborepo 进行包管理和构建优化。项目设计围绕 AI 代理技能系统展开,提供了核心库、命令行工具、TUI 界面和浏览器扩展等多元化终端。
资料来源:pnpm-workspace.yaml
Monorepo 架构
SkillKit 采用标准的 pnpm monorepo 结构,所有子包位于 packages 目录下,应用位于 apps 目录下。这种结构允许共享依赖、提升构建效率,并确保各模块间的版本一致性。
资料来源:pnpm-workspace.yaml
包目录结构
skillkit/
├── packages/ # 核心包集合
│ ├── core/ # 核心业务逻辑库
│ ├── cli/ # 命令行工具
│ ├── agents/ # AI 代理集成包
│ ├── tui/ # 终端用户界面
│ └── extension/ # 浏览器扩展
├── apps/ # 独立应用
│ └── skillkit/ # 主应用程序
├── pnpm-workspace.yaml # 工作空间配置
└── turbo.json # 构建流水线配置
核心包详解
Core 包 (packages/core)
Core 包是整个项目的基础,包含了技能系统的核心业务逻辑、翻译引擎、上下文分析等关键功能。
graph TD
A[Core 包] --> B[ai/]
A --> C[skill-translator.ts]
A --> D[methodology/]
A --> E[primer/]
B --> B1[providers/]
B --> B2[wizard/]
B --> B3[recommend/]
C --> C1[SKILL.md 解析]
C --> C2[MDC 转换]
C --> C3[Agent Format]
D --> D1[Packs 系统]
D --> D2[Task 模板]
E --> E1[ProjectAnalysis]
E --> E2[ContextGenerator]主要子模块功能说明:
| 模块路径 | 功能描述 | 关键文件 |
|---|---|---|
ai/providers/ | AI 能力提供者抽象 | mock.ts 等 |
ai/wizard/ | 技能创建向导系统 | types.ts, 状态管理 |
methodology/ | 开发方法论与任务分解 | packs/, task-decomposition/ |
primer/ | 项目上下文生成器 | generator.ts |
skill-translator/ | 技能格式翻译引擎 | 多格式转换支持 |
资料来源:packages/core/src/index.ts
CLI 包 (packages/cli)
CLI 包封装了 SkillKit 的命令行交互能力,提供技能安装、翻译、同步、团队协作等功能入口。
graph LR
subgraph CLI 功能模块
A[skillkit install] --> B[core]
C[skillkit translate] --> B
D[skillkit sync] --> B
E[skillkit team] --> B
end
B --> F[core 包 API]核心命令分类:
| 命令类别 | 子命令 | 功能说明 |
|---|---|---|
| 基础操作 | install, sync, list | 技能生命周期管理 |
| 翻译功能 | translate --to <agent> | 技能格式转换 |
| 团队协作 | bundle-*, team share | 团队技能包管理 |
| 插件系统 | plugin list/install | 插件扩展管理 |
| 方法论 | methodology list/apply | 开发方法论应用 |
资料来源:packages/cli/src/index.ts
Agents 包 (packages/agents)
Agents 包定义了与各种 AI 代理(Claude Code、Cursor、Copilot 等)的集成规范和格式转换逻辑。
graph TD
A[Agents 包] --> B[SKILL.md 格式]
A --> C[MDC 格式]
A --> D[Markdown 格式]
A --> E[通用 YAML 格式]
B --> B1[Claude Code]
B --> B2[Codex]
B --> B3[Gemini CLI]
D --> D1[Windsurf]
D --> D2[Copilot]
E --> E1[通用适配]支持的代理格式映射:
| 代理名称 | 格式类型 | 配置特征 |
|---|---|---|
| Claude Code | SKILL.md | YAML frontmatter + Markdown |
| Cursor | MDC | globs + alwaysApply |
| Windsurf | Markdown | 纯 Markdown 指令 |
| GitHub Copilot | Markdown | 纯 Markdown 指令 |
| Replit Agent | SKILL.md | YAML frontmatter + Markdown |
资料来源:packages/agents/src/index.ts
TUI 包 (packages/tui)
TUI 包提供了 SkillKit 的终端用户界面,使用 Ink(React for CLI)构建,支持交互式浏览、安装和管理技能。
graph TD
A[TUI 界面] --> B[Browse 屏幕]
A --> C[Marketplace 屏幕]
A --> D[Methodology 屏幕]
A --> E[Translate 屏幕]
A --> F[Recommend 屏幕]
A --> G[Lineage 屏幕]
A --> H[Handoff 屏幕]
A --> I[Context 屏幕]
B --> B1[技能市场浏览]
C --> C1[分类树视图]
D --> D1[方法论包安装]
E --> E1[格式翻译]
F --> F1[智能推荐]屏幕组件映射表:
| 屏幕组件 | 文件位置 | 功能描述 |
|---|---|---|
| Browse | screens/Browse.tsx | 浏览远程技能仓库 |
| Marketplace | screens/Marketplace.tsx | 技能分类与树形展示 |
| Methodology | screens/Methodology.tsx | 方法论包管理与安装 |
| Translate | screens/Translate.tsx | 技能格式翻译预览 |
| Recommend | screens/Recommend.tsx | 基于项目的技能推荐 |
| Lineage | screens/Lineage.tsx | 技能使用历史追踪 |
| Handoff | screens/Handoff.tsx | 任务交接与状态展示 |
| Context | screens/Context.tsx | 项目上下文信息展示 |
资料来源:packages/tui/src/screens/Methodology.tsx
Extension 包 (packages/extension)
Extension 包提供了浏览器扩展能力,支持用户在浏览器中直接浏览和管理技能。
依赖关系图
graph TD
CLI[packages/cli] --> CORE[packages/core]
TUI[packages/tui] --> CORE
AGENTS[packages/agents] --> CORE
EXTENSION[packages/extension] --> CORE
APP[apps/skillkit] --> CLI
APP --> TUI
CLI --> AGENTS
TUI --> AGENTS
style CORE fill:#e1f5fe
style CLI fill:#fff3e0
style TUI fill:#e8f5e9包间依赖规范
核心依赖原则
- 单向依赖:上层包可依赖下层包,禁止反向依赖
- 共享核心:所有功能性包都应依赖
packages/core - 接口稳定:
packages/core导出稳定公开 API
依赖层级说明
| 层级 | 包名 | 说明 |
|---|---|---|
| 基础设施层 | packages/core | 核心业务逻辑与类型定义 |
| 功能封装层 | packages/agents, packages/cli | 特定功能的封装 |
| 表现层 | packages/tui, packages/extension | 用户交互界面 |
| 应用层 | apps/skillkit | 组合各模块的完整应用 |
Turborepo 构建配置
Turborepo 负责管理构建任务的依赖关系和增量构建优化。
// turbo.json 核心配置结构
{
"pipeline": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**", ".next/**"]
},
"test": {
"dependsOn": ["build"],
"outputs": ["coverage/**"]
},
"lint": {
"outputs": []
}
}
}
构建任务说明:
| 任务名称 | 依赖任务 | 输出目录 | 说明 |
|---|---|---|---|
| build | ^build | dist/, .next/ | 增量构建 |
| test | build | coverage/ | 测试与覆盖率 |
| lint | - | - | 代码检查 |
| dev | - | - | 开发模式 |
资料来源:turbo.json
pnpm Workspace 配置
# pnpm-workspace.yaml
packages:
- 'packages/*'
- 'apps/*'
该配置声明了所有子包和应用的位置,pnpm 将自动管理这些包之间的符号链接和依赖解析。
导出 API 结构
Core 包导出 (packages/core/src/index.ts)
Core 包通过 index.ts 统一导出以下模块:
| 导出类别 | 包含内容 | 使用场景 |
|---|---|---|
| 技能管理 | Skill, SkillSet | 技能定义与集合操作 |
| 翻译引擎 | translateSkill() | 格式转换 |
| 项目分析 | ProjectAnalyzer | 上下文分析 |
| 方法论 | Methodology, TaskTemplate | 开发流程模板 |
| 推荐系统 | recommendSkills() | 智能推荐 |
| 向导系统 | WizardState, WizardStep | 引导式创建 |
Agents 包导出 (packages/agents/src/index.ts)
Agents 包定义了代理集成的核心接口:
// 代理格式配置
interface AgentSkillFormat {
name: string;
extension: string;
hasFrontmatter: boolean;
invokeCommand: string;
supportsGlobs: boolean;
}
// 支持的代理列表
const SUPPORTED_AGENTS = ['claude-code', 'cursor', 'copilot', ...] as const;
CLI 包导出 (packages/cli/src/index.ts)
CLI 包通过命令注册系统对外暴露命令行接口:
// 核心命令注册
export async function cli(args: string[]): Promise<void>;
export const installCommand: Command;
export const translateCommand: Command;
export const syncCommand: Command;
export const teamCommand: Command;
export const pluginCommand: Command;
export const methodologyCommand: Command;
版本与发布
各包独立版本管理,通过 pnpm workspace 确保版本同步:
# 查看所有包版本
pnpm list --depth=-1
# 批量更新依赖
pnpm up -r
# 发布指定包
pnpm --filter @skillkit/core publish
总结
SkillKit 的包结构设计遵循了现代 monorepo 最佳实践,通过清晰的层级划分和单向依赖关系,实现了高度的可维护性和可扩展性。核心业务逻辑集中于 packages/core,各类终端(CLI、TUI、Extension)依赖核心库构建独立功能,应用层则组合各模块提供完整解决方案。
资料来源:[pnpm-workspace.yaml](https://github.com/rohitg00/skillkit/blob/main/pnpm-workspace.yaml)
核心模块解析
SkillKit 是一个统一管理 AI Agent 技能的 CLI 工具和运行时框架,旨在解决不同 AI Agent(如 Cursor、Windsurf、Copilot、Claude Code 等)之间技能格式不兼容的问题。通过核心模块的协同工作,SkillKit 实现了技能的创建、转换、推荐、执行和学习闭环。资料来源:[packages/core/README.md:1-...
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
概述
SkillKit 是一个统一管理 AI Agent 技能的 CLI 工具和运行时框架,旨在解决不同 AI Agent(如 Cursor、Windsurf、Copilot、Claude Code 等)之间技能格式不兼容的问题。通过核心模块的协同工作,SkillKit 实现了技能的创建、转换、推荐、执行和学习闭环。资料来源:packages/core/README.md:1-20
核心架构
SkillKit 的核心模块采用分层架构设计,各模块职责明确,通过标准接口进行通信:
graph TD
A[CLI / TUI 入口] --> B[Core API 层]
B --> C1[Agents 模块]
B --> C2[Memory 模块]
B --> C3[Learning 模块]
B --> C4[Eval 模块]
B --> C5[Recommend 模块]
C1 --> D[技能存储]
C2 --> D
C3 --> D
C4 --> D
C5 --> D资料来源:packages/core/src/index.ts:1-30
模块详解
1. Agents 模块
Agents 模块负责管理不同 AI Agent 的技能格式转换和适配工作。
#### 支持的 Agent 类型
| Agent 名称 | 标识符 | 格式类型 |
|---|---|---|
| GitHub Copilot | copilot | Markdown |
| Cursor | cursor | MDC |
| Windsurf | windsurf | Markdown |
| Claude Code | claude | SKILL.md |
| Augment Code | augment-code | SKILL.md |
| Bolt | bolt | SKILL.md |
| Lovable | lovable | SKILL.md |
| Replit Agent | replit-agent | SKILL.md |
| Sourcegraph Cody | sourcegraph-cody | SKILL.md |
| Tabby | tabby | SKILL.md |
| Tabnine | tabnine | SKILL.md |
| Universal | universal | 通用格式 |
资料来源:packages/agents/README.md:1-15
#### 技能格式对比
| 格式 | 使用 Agent | 特点 |
|---|---|---|
| SKILL.md | Claude, Bolt, Lovable 等 | YAML frontmatter + Markdown 内容 |
| MDC | Cursor | 支持 globs 和 alwaysApply 字段 |
| Markdown | Windsurf, Copilot | 纯文本指令格式 |
资料来源:packages/core/src/agents/index.ts:1-50
2. Memory 模块
Memory 模块负责技能的持久化存储和检索管理。
#### 核心功能
- 技能元数据存储
- 版本历史追踪
- 技能依赖关系图谱
- 全文检索索引
资料来源:packages/core/src/memory/index.ts:1-40
3. Learning 模块
Learning 模块实现技能的增量学习和优化机制。
graph LR
A[技能执行] --> B[结果收集]
B --> C[模式分析]
C --> D[规则提取]
D --> E[技能优化]
E --> A#### 学习策略
| 策略类型 | 触发条件 | 优化方式 |
|---|---|---|
| 成功率优化 | 执行成功率 < 80% | 简化步骤 |
| 性能优化 | 执行时间 > 阈值 | 减少冗余 |
| 准确性优化 | 错误率上升 | 增强验证 |
资料来源:packages/core/src/learning/index.ts:1-60
4. Eval 模块
Eval 模块提供技能质量评估和兼容性验证功能。
#### 评估指标
| 指标名称 | 说明 | 阈值 |
|---|---|---|
| 兼容性 | 与目标 Agent 的格式兼容程度 | ≥ 80% |
| 完整性 | 必需字段和内容的完整程度 | ≥ 90% |
| 可执行性 | 技能指令的可执行性 | 布尔值 |
资料来源:packages/core/src/eval/index.ts:1-50
5. Recommend 模块
Recommend 模块基于项目上下文提供智能技能推荐服务。
#### 推荐算法
graph TD
A[项目上下文] --> B[栈检测]
B --> C[技能匹配]
C --> D[评分排序]
D --> E[推荐结果]
B --> B1[语言检测]
B --> B2[框架检测]
B --> B3[库检测]
D --> D1[匹配度分数]
D --> D2[使用频率]
D --> D3[社区评分]#### 上下文类型
interface ProjectProfile {
name: string;
type: 'web-app' | 'api' | 'cli' | 'library' | 'unknown';
stack: {
languages: Detection[];
frameworks: Detection[];
libraries: Detection[];
testing: Detection[];
databases: Detection[];
};
}
资料来源:packages/core/README.md:50-80
工作流程
技能翻译流程
sequenceDiagram
participant User
participant CLI
participant Agents
participant Core
User->>CLI: skillkit translate <skill> --to <agent>
CLI->>Core: 加载技能
Core->>Agents: 格式检测
Agents->>Agents: 格式转换
Agents->>Core: 转换结果
Core->>CLI: 输出/写入
CLI->>User: 完成资料来源:packages/cli/README.md:1-30
技能推荐流程
graph TD
A[skillkit recommend] --> B[项目扫描]
B --> C[栈分析]
C --> D[技能检索]
D --> E[评分计算]
E --> F[结果排序]
F --> G[输出推荐]
C --> C1[语言栈]
C --> C2[框架栈]
C --> C3[依赖库]资料来源:apps/skillkit/README.md:1-20
API 接口
Python 客户端
from skillkit import SkillKitClient
async with SkillKitClient() as client:
# 搜索技能
results = await client.search("react performance", limit=5)
# 获取推荐
recommendations = await client.recommend()
资料来源:README.md:40-55
REST API
# 启动服务
skillkit serve
# 搜索接口
curl "http://localhost:3737/search?q=react+performance"
资料来源:README.md:35-40
数据模型
技能元数据结构
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 技能名称 |
| description | string | 是 | 技能描述 |
| format | string | 是 | 格式类型 |
| content | string | 是 | 技能内容 |
| metadata | object | 否 | 附加元数据 |
翻译结果结构
interface TranslationResult {
content: string;
format: string;
warnings?: string[];
}
资料来源:packages/core/README.md:30-45
模块交互关系
graph LR
Agents -->|格式转换| Eval
Recommend -->|上下文| Agents
Memory -->|存储| Agents
Learning -->|优化| Memory
Eval -->|评估| Recommend| 源模块 | 目标模块 | 交互内容 |
|---|---|---|
| Agents | Eval | 转换兼容性验证 |
| Recommend | Agents | 技能格式适配 |
| Memory | 所有模块 | 数据持久化 |
| Learning | Memory | 增量更新 |
| Eval | Recommend | 质量评分 |
资料来源:packages/core/src/index.ts:20-60
扩展机制
MCP 协议支持
{
"mcpServers": {
"skillkit": {
"command": "npx",
"args": ["@skillkit/mcp"]
}
}
}
资料来源:README.md:45-52
插件系统
| 命令 | 功能 |
|---|---|
skillkit plugin list | 列出已安装插件 |
skillkit plugin install <name> | 安装插件 |
skillkit plugin uninstall <name> | 卸载插件 |
资料来源:packages/cli/README.md:30-45
最佳实践
技能开发建议
- 格式选择:优先使用 SKILL.md 格式以获得最大兼容性
- 元数据完整:确保 YAML frontmatter 包含所有必需字段
- 版本管理:使用语义化版本号进行版本追踪
- 测试验证:使用
skillkit scan进行安全扫描
性能优化
- 技能缓存:合理使用 Memory 模块的缓存机制
- 批量操作:使用 bundle 机制进行批量技能管理
- 增量同步:仅同步变更的技能文件
资料来源:packages/core/src/learning/index.ts:30-50
总结
SkillKit 的核心模块通过清晰的职责划分和标准化的接口设计,实现了跨 Agent 的技能统一管理。Agents 模块处理格式转换,Memory 模块提供持久化支持,Learning 模块实现增量优化,Eval 模块保证质量标准,Recommend 模块提供智能推荐。这一架构使得开发者能够“编写一次,部署各处”,显著提升了 AI Agent 技能的开发效率和可移植性。
资料来源:[packages/core/src/index.ts:1-30]()
技能管理
技能管理(Skill Management)是 SkillKit 项目的核心功能模块,负责技能的发现、安装、同步、翻译和生命周期管理。该系统使开发团队能够跨多个 AI Agent 平台(如 Claude Code、Cursor、Copilot 等)统一管理和分发开发技能(Skills),从而提升团队协作效率和代码一致性。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
概述
技能管理(Skill Management)是 SkillKit 项目的核心功能模块,负责技能的发现、安装、同步、翻译和生命周期管理。该系统使开发团队能够跨多个 AI Agent 平台(如 Claude Code、Cursor、Copilot 等)统一管理和分发开发技能(Skills),从而提升团队协作效率和代码一致性。
技能是定义 AI Agent 行为的指令集,通常以 Markdown 格式存储,包含名称、描述、使用说明和示例等内容。SkillKit 通过技能管理系统将这些技能标准化,使其能够在不同 Agent 之间无缝迁移和适配。
技能格式
SkillKit 支持多种技能格式,以适配不同 AI Agent 的需求。系统内部会将技能转换为各平台所需的特定格式。
支持的格式类型
| 格式 | 适配 Agent | 说明 |
|---|---|---|
| SKILL.md | Claude Code, Codex, Gemini CLI 等 | 标准 YAML frontmatter + Markdown 内容 |
| MDC (.mdc) | Cursor | 包含 globs 和 alwaysApply 字段 |
| Markdown | Windsurf, GitHub Copilot | 纯 Markdown 格式 |
SKILL.md 格式(标准格式)
来源:https://github.com/rohitg00/skillkit / 项目说明书
代理支持
SkillKit 的代理支持(Agent Support)模块是一个多代理集成框架,旨在实现"一次编写,随处运行"的技能(Skill)管理模式。该模块通过抽象层设计,支持市场上主流的 AI 编程代理,使开发者能够将技能无缝同步到不同的代理环境中。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
概述
SkillKit 的代理支持(Agent Support)模块是一个多代理集成框架,旨在实现"一次编写,随处运行"的技能(Skill)管理模式。该模块通过抽象层设计,支持市场上主流的 AI 编程代理,使开发者能够将技能无缝同步到不同的代理环境中。
代理支持模块位于 packages/agents 目录下,提供了代理发现、工厂模式实例化、技能格式转换和代理同步等核心功能。通过统一的数据模型和类型定义,实现了不同代理之间的互操作性。
支持的代理列表
SkillKit 目前支持以下 AI 代理,覆盖主流的商业和开源解决方案:
| 代理名称 | 类型 | 技能格式 | 同步支持 |
|---|---|---|---|
| Claude | 商业 | SKILL.md | 完整 |
| ChatGPT | 商业 | SKILL.md | 完整 |
| Gemini | 商业 | SKILL.md | 完整 |
| Copilot | 商业 | Markdown | 完整 |
| Cursor | 商业 | MDC | 完整 |
| Windsurf | 商业 | Markdown | 完整 |
| Roo Jira AQ | 商业 | SKILL.md | 完整 |
| Windsurf Pure | 商业 | SKILL.md | 完整 |
| Junie | 商业 | SKILL.md | 完整 |
| Forge | 商业 | SKILL.md | 完整 |
| Bolt | 商业 | SKILL.md | 完整 |
| Lovable | 商业 | SKILL.md | 完整 |
| Replit Agent | 商业 | SKILL.md | 完整 |
| Sourcegraph Cody | 开源 | SKILL.md | 完整 |
| Tabby | 开源 | SKILL.md | 完整 |
| Tabnine | 商业 | SKILL.md | 完整 |
| Universal | 通用 | SKILL.md | 完整 |
资料来源:packages/agents/README.md
代理架构
核心模块结构
packages/agents/
├── src/
│ ├── index.ts # 导出入口
│ ├── factory.ts # 代理工厂
│ └── base.ts # 基类定义
packages/core/src/agents/
├── discovery.ts # 代理发现机制
└── types.ts # 类型定义
代理系统采用分层架构设计:
graph TD
A[用户请求] --> B[代理工厂 Factory]
B --> C{代理类型判断}
C -->|Claude| D[ClaudeAgent]
C -->|Cursor| E[CursorAgent]
C -->|Copilot| F[CopilotAgent]
C -->|Windsurf| G[WindsurfAgent]
C -->|其他| H[通用代理]
D --> I[技能同步器]
E --> I
F --> I
G --> I
H --> I
I --> J[代理环境]代理基类设计
所有代理实现继承自 BaseAgent 基类,该基类定义了代理的标准接口:
interface AgentAdapter {
readonly name: string;
readonly supportedFormats: SkillFormat[];
readonly installPath: string | null;
install(skill: Skill): Promise<InstallResult>;
uninstall(skillId: string): Promise<UninstallResult>;
sync(): Promise<SyncResult>;
list(): Promise<AgentSkill[]>;
detect(): Promise<boolean>;
}
资料来源:packages/agents/src/base.ts
代理发现机制
自动发现流程
代理发现模块负责检测用户系统中已安装的 AI 代理。当用户首次运行 SkillKit 或执行同步操作时,系统会自动扫描常见安装位置:
graph LR
A[启动发现] --> B[扫描配置目录]
B --> C{代理可执行?}
C -->|是| D[标记为已安装]
C -->|否| E[尝试常见路径]
E --> C
D --> F[更新代理状态]
E --> F
F --> G[返回发现结果]发现配置
发现机制支持以下配置参数:
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| scanPaths | string[] | 自定义扫描路径 | 常见代理路径列表 |
| cacheResults | boolean | 缓存发现结果 | true |
| timeout | number | 扫描超时时间(ms) | 5000 |
资料来源:packages/core/src/agents/discovery.ts
代理工厂模式
工厂设计
代理工厂(Factory)负责根据代理标识符创建对应的代理实例。这种设计遵循了工厂模式的开闭原则,便于扩展新的代理支持:
class AgentFactory {
private static agents: Map<AgentType, AgentAdapter> = new Map();
static register(type: AgentType, adapter: AgentAdapter): void {
this.agents.set(type, adapter);
}
static create(type: AgentType): AgentAdapter | null {
const adapter = this.agents.get(type);
return adapter ? Object.create(adapter) : null;
}
static getSupportedAgents(): AgentType[] {
return Array.from(this.agents.keys());
}
}
资料来源:packages/agents/src/factory.ts
实例化流程
graph TD
A[传入代理类型] --> B[工厂查询注册表]
B --> C{类型已注册?}
C -->|是| D[创建代理实例]
C -->|否| E[返回null]
D --> F[初始化代理配置]
F --> G[返回代理适配器]技能格式兼容性
格式类型
SkillKit 支持三种主要的技能格式,每种格式针对特定的代理优化:
#### 1. SKILL.md 格式(通用)
适用于 Claude、ChatGPT、Gemini 等大多数代理。包含 YAML frontmatter 和 Markdown 内容:
资料来源:[packages/agents/README.md](https://github.com/rohitg00/skillkit/blob/main/packages/agents/README.md)
格式翻译
格式翻译是 SkillKit 的核心功能之一,允许开发者编写一次技能定义,然后将其转换为不同 AI 代理(Agent)所支持的格式。通过格式翻译,SkillKit 实现了"编写一次,部署到多处"的开发体验。
继续阅读本节完整说明和来源证据。
概述
格式翻译是 SkillKit 的核心功能之一,允许开发者编写一次技能定义,然后将其转换为不同 AI 代理(Agent)所支持的格式。通过格式翻译,SkillKit 实现了"编写一次,部署到多处"的开发体验。
格式翻译系统支持多种主流 AI 代理,包括 Claude Code、Cursor、Codex、Windsurf、GitHub Copilot 等,共计支持超过 39 种代理格式。资料来源:packages/cli/README.md
支持的代理与格式
SkillKit 支持三种主要的技能定义格式,每种格式针对特定的代理进行了优化:
| 格式类型 | 适用代理 | 文件扩展名 | 特点 |
|---|---|---|---|
| SKILL.md | Claude Code、Codex、Gemini CLI 等 | .md | YAML 前置元数据 + Markdown 内容 |
| MDC | Cursor | .mdc | 支持 glob 模式匹配和 alwaysApply 字段 |
| Markdown | Windsurf、Copilot | .md | 纯 Markdown 格式 |
资料来源:packages/agents/README.md
SKILL.md 格式
SKILL.md 是 SkillKit 的标准格式,采用 YAML 前置元数据(frontmatter)加上 Markdown 内容的形式:
资料来源:[packages/agents/README.md]()
AI 集成
AI 集成是 SkillKit 框架的核心子系统,负责管理与各种 AI 编码代理(Agent)的通信、格式转换和上下文生成。该系统通过统一抽象层,使 SkillKit 能够同时支持 Claude Code、Cursor、Windsurf、GitHub Copilot 等多种 AI 代理,同时保证技能(Skill)在不同代理间的无缝迁移和一致性执行。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
概述
AI 集成是 SkillKit 框架的核心子系统,负责管理与各种 AI 编码代理(Agent)的通信、格式转换和上下文生成。该系统通过统一抽象层,使 SkillKit 能够同时支持 Claude Code、Cursor、Windsurf、GitHub Copilot 等多种 AI 代理,同时保证技能(Skill)在不同代理间的无缝迁移和一致性执行。
SkillKit 的 AI 集成架构采用模块化设计,核心组件包括:
| 组件 | 功能 | 源码位置 |
|---|---|---|
| Provider 工厂 | 创建和管理 AI 提供者实例 | packages/core/src/ai/providers/factory.ts |
| 基础提供接口 | 定义统一的 AI 交互协议 | packages/core/src/ai/providers/base.ts |
| 格式转换器 | 处理 SKILL.md、MDC、Markdown 等格式 | packages/core/src/translator/formats/ |
| 安全检测 | 防范提示词注入攻击 | packages/core/src/ai/security/injection-detect.ts |
| 信任评分 | 评估技能内容的可信度 | packages/core/src/ai/security/trust-score.ts |
架构设计
系统分层
┌─────────────────────────────────────────────────────────────┐
│ SkillKit CLI/TUI │
├─────────────────────────────────────────────────────────────┤
│ Generator (生成器) │
│ packages/core/src/generator.ts │
├─────────────────────────────────────────────────────────────┤
│ AI Integration Layer │
│ ┌──────────────┬────────────────┬────────────────┐ │
│ │ Providers │ Security │ Translators │ │
│ ├──────────────┼────────────────┼────────────────┤ │
│ │ • factory │ • injection │ • skill-md │ │
│ │ • base │ • trust-score │ • mdc │ │
│ │ • mock │ │ • markdown │ │
│ └──────────────┴────────────────┴────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ External Agents │
│ Claude Code │ Cursor │ Windsurf │ Copilot │ Gemini │
└─────────────────────────────────────────────────────────────┘
资料来源:packages/core/src/ai/index.ts
Provider 工厂模式
Provider 工厂负责实例化各种 AI 提供者,支持运行时动态切换不同的 AI 后端。工厂模式确保了系统的可扩展性,新增 AI 代理只需实现基础接口即可集成。
// Provider 实例化流程
createProvider(agent: AgentType, options?: ProviderOptions): AIProvider
支持的代理类型包括:claude-code、cursor、windsurf、copilot、gemini-cli、replit-agent、sourcegraph-cody、tabby、tabnine 等。
资料来源:packages/core/src/ai/providers/factory.ts
基础提供接口
所有 AI 提供者必须实现 AIProvider 接口,该接口定义了与 AI 代理交互的标准方法:
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
generate | prompt: string, options?: GenerateOptions | Promise<GenerateResult> | 生成内容 |
complete | context: string, partial: string | Promise<string> | 代码补全 |
chat | messages: Message[] | Promise<ChatResult> | 对话交互 |
资料来源:packages/core/src/ai/providers/base.ts
格式转换系统
SkillKit 支持多种代理特定的技能格式,系统会自动进行格式检测和转换。
支持的格式类型
| 格式 | 代理 | 特点 | 源码 |
|---|---|---|---|
| SKILL.md | Claude Code, Codex, Gemini CLI | YAML frontmatter + Markdown | skill-md.ts |
| MDC | Cursor | 支持 globs 和 alwaysApply | mdc.ts |
| Markdown | Windsurf, Copilot | 纯 Markdown 内容 | markdown.ts |
翻译结果模型
interface TranslationResult {
content: string; // 转换后的内容
format: string; // 输出格式标识
warnings?: string[]; // 潜在问题警告
}
SKILL.md 格式规范
SKILL.md 是 SkillKit 的标准格式,使用 YAML frontmatter 定义元数据:
资料来源:[packages/core/src/ai/index.ts]()
推荐引擎
推荐引擎(Recommendation Engine)是 SkillKit 项目中帮助用户发现适合其技术栈的技能的智能系统。该引擎通过分析用户项目的技术栈信息,为用户推荐最相关的技能,并按照匹配度评分进行排序展示。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
概述
推荐引擎(Recommendation Engine)是 SkillKit 项目中帮助用户发现适合其技术栈的技能的智能系统。该引擎通过分析用户项目的技术栈信息,为用户推荐最相关的技能,并按照匹配度评分进行排序展示。
SkillKit 的推荐系统支持以下核心功能:
| 功能 | 说明 |
|---|---|
| 栈感知推荐 | 基于项目技术栈(框架、语言、库)进行智能匹配 |
| 评分排序 | 使用百分比评分(0-100%)衡量推荐准确度 |
| 搜索过滤 | 支持通过关键词搜索筛选推荐结果 |
| 质量阈值 | 可设置最低分数阈值过滤低质量推荐 |
资料来源:README.md
核心架构
推荐引擎采用分层架构设计,主要包含以下几个层次:
graph TD
A[用户项目] --> B[栈分析层]
B --> C[推荐引擎核心]
C --> D[混合搜索模块]
C --> E[RRF 排序模块]
D --> F[推荐结果]
E --> F
G[CLI 命令层] --> C
H[TUI 界面层] --> C各层职责
| 层级 | 职责 | 源码位置 |
|---|---|---|
| CLI 命令层 | 提供 skillkit recommend 命令入口 | packages/cli/src/commands/recommend.ts |
| TUI 界面层 | 渲染推荐列表和详情面板 | packages/tui/src/screens/Recommend.tsx |
| 推荐引擎核心 | 协调搜索和排序流程 | packages/core/src/recommend/engine.ts |
| 混合搜索模块 | 执行多维度搜索 | packages/core/src/search/hybrid.ts |
| RRF 排序模块 | 应用 Reciprocal Rank Fusion 算法 | packages/core/src/search/rrf.ts |
| 栈分析层 | 分析项目技术栈 | packages/core/src/primer/generator.ts |
资料来源:packages/tui/src/screens/Recommend.tsx 资料来源:packages/core/src/search/rrf.ts
推荐数据模型
推荐结果结构
interface Recommendation {
name: string; // 技能名称
score: number; // 匹配度评分(0-100)
description?: string; // 技能描述
reasons?: string[]; // 推荐理由列表
path?: string; // 技能文件路径
compatible?: boolean; // 与项目的兼容性
issues?: string[]; // 兼容性问题列表
}
资料来源:packages/tui/src/screens/Recommend.tsx
推荐理由显示
推荐理由(reasons)字段用于向用户解释为什么推荐该技能。当存在推荐理由时,界面会优先显示理由而非描述:
<Show when={rec.reasons && rec.reasons.length > 0}>
<text fg={terminalColors.text}>
{' '}{rec.reasons[0]}
</text>
</Show>
<Show when={rec.description && rec.reasons.length === 0}>
<text fg={terminalColors.textMuted}>
{' '}{rec.description.slice(0, 50)}
{rec.description.length > 50 ? '...' : ''}
</text>
</Show>
资料来源:packages/tui/src/screens/Recommend.tsx:1-15
搜索与排序机制
混合搜索(Hybrid Search)
推荐引擎内部使用混合搜索策略,结合多种搜索维度:
graph LR
A[关键词搜索] --> D[结果合并]
B[栈匹配搜索] --> D
C[语义搜索] --> D
D --> E[RRF 融合排序]
E --> F[最终排名]RRF(Reciprocal Rank Fusion)
RRF 算法用于融合多个搜索结果源的排名,通过倒数排名融合公式计算综合得分:
RRF_score = Σ (1 / (k + rank_i))
其中 k 是常数参数(通常为60),rank_i 是该技能在第 i 个搜索结果中的排名。
资料来源:packages/core/src/search/rrf.ts
命令行接口
基本用法
# 获取项目感知建议
skillkit recommend
# 按任务筛选
skillkit recommend --search "authentication"
# 质量阈值过滤
skillkit recommend --min-score 85
参数说明
| 参数 | 说明 | 示例 |
|---|---|---|
--search | 关键词搜索过滤 | --search "react" |
--min-score | 最低匹配分数阈值 | --min-score 70 |
--format | 输出格式(默认表格) | --format json |
资料来源:README.md
TUI 界面交互
主视图布局
┌─────────────────────────────────────────────┐
│ 推荐技能 │
│ ───────────────────────────────────────── │
│ ▸ 92% vercel-react-best-practices │
│ 87% tailwind-v4-patterns │
│ 85% nextjs-app-router │
│ 81% shadcn-ui-components │
│ │
│ ▼ 5 more │
│ │
│ Last analyzed: 14:32:05 │
│ ─────────────────────────────────────────────│
│ j/k 导航 Enter 详情 Esc 返回 │
└─────────────────────────────────────────────┘
详情面板
按 Enter 键可打开选中推荐的详情面板,显示以下信息:
| 字段 | 说明 |
|---|---|
| Title | 技能名称 |
| Subtitle | 匹配分数(Score: XX%) |
| Fields | 详细信息字段列表 |
| Actions | 操作提示(Install / Close) |
资料来源:packages/tui/src/screens/Recommend.tsx
导航与操作
| 按键 | 操作 |
|---|---|
j / k | 上/下导航选择 |
Enter | 查看详情面板 |
Esc | 返回上一级 |
r | 刷新推荐列表 |
评分机制
分数计算因素
推荐技能的评分基于以下因素综合计算:
- 技术栈匹配度:技能与项目使用的框架、语言、库的匹配程度
- 依赖关联度:技能所需依赖与项目现有依赖的重叠度
- 使用频率:该技能在同类项目中的使用统计数据
- 更新时效性:技能文档的新旧程度
分数阈值建议
| 阈值范围 | 建议用途 |
|---|---|
| 90-100% | 高置信度推荐,直接安装使用 |
| 70-89% | 中等置信度,建议查看详情后再安装 |
| 50-69% | 低置信度,仅供参考 |
| < 50% | 通常不显示,除非关闭阈值过滤 |
编程接口
程序化调用
import { recommendCommand } from '@skillkit/cli';
// 获取推荐
const recs = await recommendCommand({
path: './my-project',
minScore: 70,
});
// 遍历推荐结果
for (const rec of recs) {
console.log(`${rec.score}% ${rec.name}`);
console.log(` 原因: ${rec.reasons?.join(', ')}`);
}
搜索集成
推荐引擎可与搜索系统集成,支持更精细的查询:
import { searchSkills } from '@skillkit/core/search';
import { rankResults } from '@skillkit/core/ranking';
// 执行混合搜索
const results = await searchSkills({
query: 'react performance',
stack: projectStack,
hybrid: true
});
// 应用 RRF 排序
const ranked = rankResults(results, { k: 60 });
资料来源:packages/core/src/search/hybrid.ts
交接(Handoff)功能中的推荐
在项目交接功能中,推荐系统提供额外的上下文感知建议:
<Show when={section() === 'recommendations'}>
<text fg={terminalColors.text} bold>Recommendations</text>
<For each={result()!.recommendations}>
{(rec) => (
<box flexDirection="row" gap={1}>
<text fg={terminalColors.accent}>→</text>
<text fg={terminalColors.text}>{rec}</text>
</box>
)}
</For>
</Show>
资料来源:packages/tui/src/screens/Handoff.tsx
性能优化
分页加载
当推荐结果较多时,TUI 界面采用分页显示策略:
<Show when={recsWindow().start + maxVisible() < state().recommendations.length}>
<text fg={terminalColors.textMuted}>
▼ {state().recommendations.length - recsWindow().start - maxVisible()} more
</text>
</Show>
默认每页显示固定数量的推荐项,通过 maxVisible() 配置。
资料来源:packages/tui/src/screens/Recommend.tsx
增量分析
推荐引擎支持增量分析模式,仅对变更的文件重新计算推荐,避免全量扫描:
graph LR
A[文件变更] --> B[增量分析]
B --> C{变更类型}
C -->|依赖文件| D[重新匹配依赖]
C -->|代码文件| E[更新栈检测]
C -->|配置| F[刷新配置分析]
D --> G[更新推荐列表]
E --> G
F --> G最佳实践
1. 合理设置阈值
- 新项目建议使用较低阈值(50-70%)以获取更多参考
- 成熟项目可提高阈值(80%+)确保推荐质量
2. 结合搜索使用
# 先获取所有推荐
skillkit recommend
# 再通过关键词精筛
skillkit recommend --search "authentication" --min-score 75
3. 查看推荐理由
始终查看推荐理由(reasons)以理解推荐依据,对于不符合预期的推荐可进一步分析项目栈检测是否准确。
4. 定期刷新
项目依赖变更后建议执行 skillkit recommend --refresh 重新生成推荐列表。
配置选项
引擎配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
minScore | 0 | 最低推荐分数阈值 |
maxResults | 20 | 最大返回结果数 |
includeReasons | true | 是否包含推荐理由 |
stackDepth | 3 | 技术栈分析深度 |
排序配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
rrf.k | 60 | RRF 算法常数参数 |
weights.keyword | 0.4 | 关键词搜索权重 |
weights.stack | 0.6 | 栈匹配搜索权重 |
故障排除
推荐结果为空
可能原因及解决方案:
| 原因 | 解决方案 |
|---|---|
| 项目栈检测失败 | 运行 skillkit analyze 检查项目分析结果 |
| 阈值设置过高 | 降低 --min-score 参数值 |
| 技能库未同步 | 运行 skillkit sync 同步技能库 |
评分异常
如果推荐分数明显不符合预期:
- 检查
skillkit analyze输出确认栈检测准确性 - 确认技能库版本为最新
- 查看是否有缓存问题,尝试
skillkit clean && skillkit recommend
相关文档
资料来源:[README.md]()
失败模式与踩坑日记
保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。
可能增加新用户试用和生产接入成本。
可能影响授权、密钥配置或安全边界。
可能增加新用户试用和生产接入成本。
可能增加新用户试用和生产接入成本。
Pitfall Log / 踩坑日志
项目:rohitg00/skillkit
摘要:发现 23 个潜在踩坑项,其中 2 个为 high/blocking;最高优先级:安装坑 - 来源证据:Trust downgrade for [email protected]: v1.0.3 had provenance attestation but this version has no trust evidence。
1. 安装坑 · 来源证据:Trust downgrade for [email protected]: v1.0.3 had provenance attestation but this version has no trust evidence
- 严重度:high
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Trust downgrade for [email protected]: v1.0.3 had provenance attestation but this version has no trust evidence
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 建议检查:来源问题仍为 open,Pack Agent 需要复核是否仍影响当前版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_54f25870d6d64729a96eb14e8e1ee72f | https://github.com/rohitg00/skillkit/issues/121 | 来源讨论提到 npm 相关条件,需在安装/试用前复核。
2. 安全/权限坑 · 来源证据:[Publish] CreatorCrawl — Social Media Data Skill
- 严重度:high
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:[Publish] CreatorCrawl — Social Media Data Skill
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 建议检查:来源问题仍为 open,Pack Agent 需要复核是否仍影响当前版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_d2c6e8b4d87e4786af49c7bc9ee2665d | https://github.com/rohitg00/skillkit/issues/123 | 来源讨论提到 npm 相关条件,需在安装/试用前复核。
3. 安装坑 · 来源证据:Add source: jorgeferrando/sdd-skills — Spec-Driven Development workflow
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Add source: jorgeferrando/sdd-skills — Spec-Driven Development workflow
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 建议检查:来源问题仍为 open,Pack Agent 需要复核是否仍影响当前版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_d1cb6475bbfe4122ab15817ca66e58b6 | https://github.com/rohitg00/skillkit/issues/112 | 来源类型 github_issue 暴露的待验证使用条件。
4. 安装坑 · 来源证据:[Publish] Rhf Autosave
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:[Publish] Rhf Autosave
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 建议检查:来源问题仍为 open,Pack Agent 需要复核是否仍影响当前版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_7f4a4b823d1a40918a48fb8aae0d74ac | https://github.com/rohitg00/skillkit/issues/111 | 来源类型 github_issue 暴露的待验证使用条件。
5. 安装坑 · 来源证据:v1.20.0
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:v1.20.0
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_73d12f84f1644a3dbc3981274dfefa42 | https://github.com/rohitg00/skillkit/releases/tag/v1.20.0 | 来源类型 github_release 暴露的待验证使用条件。
6. 安装坑 · 来源证据:v1.22.0
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:v1.22.0
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_a5339307b2d04e409858700fa8186f6c | https://github.com/rohitg00/skillkit/releases/tag/v1.22.0 | 来源类型 github_release 暴露的待验证使用条件。
7. 安装坑 · 来源证据:v1.22.1
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:v1.22.1
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_2a197dc603b242bdaa32dd2c70d535c1 | https://github.com/rohitg00/skillkit/releases/tag/v1.22.1 | 来源类型 github_release 暴露的待验证使用条件。
8. 安装坑 · 来源证据:v1.23.0 — Slim install, safer picker, brand tags
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:v1.23.0 — Slim install, safer picker, brand tags
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_9388696ec7584a6b8f5998d74f1c428e | https://github.com/rohitg00/skillkit/releases/tag/v1.23.0 | 来源讨论提到 npm 相关条件,需在安装/试用前复核。
9. 配置坑 · 可能修改宿主 AI 配置
- 严重度:medium
- 证据强度:source_linked
- 发现:项目面向 Claude/Cursor/Codex/Gemini/OpenCode 等宿主,或安装命令涉及用户配置目录。
- 对用户的影响:安装可能改变本机 AI 工具行为,用户需要知道写入位置和回滚方法。
- 建议检查:列出会写入的配置文件、目录和卸载/回滚步骤。
- 防护动作:涉及宿主配置目录时必须给回滚路径,不能只给安装命令。
- 证据:capability.host_targets | github_repo:1138376193 | https://github.com/rohitg00/skillkit | host_targets=claude, claude_code, cursor
10. 能力坑 · 能力判断依赖假设
- 严重度:medium
- 证据强度:source_linked
- 发现:README/documentation is current enough for a first validation pass.
- 对用户的影响:假设不成立时,用户拿不到承诺的能力。
- 建议检查:将假设转成下游验证清单。
- 防护动作:假设必须转成验证项;没有验证结果前不能写成事实。
- 证据:capability.assumptions | github_repo:1138376193 | https://github.com/rohitg00/skillkit | README/documentation is current enough for a first validation pass.
11. 维护坑 · 维护活跃度未知
- 严重度:medium
- 证据强度:source_linked
- 发现:未记录 last_activity_observed。
- 对用户的影响:新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
- 建议检查:补 GitHub 最近 commit、release、issue/PR 响应信号。
- 防护动作:维护活跃度未知时,推荐强度不能标为高信任。
- 证据:evidence.maintainer_signals | github_repo:1138376193 | https://github.com/rohitg00/skillkit | last_activity_observed missing
12. 安全/权限坑 · 下游验证发现风险项
- 严重度:medium
- 证据强度:source_linked
- 发现:no_demo
- 对用户的影响:下游已经要求复核,不能在页面中弱化。
- 建议检查:进入安全/权限治理复核队列。
- 防护动作:下游风险存在时必须保持 review/recommendation 降级。
- 证据:downstream_validation.risk_items | github_repo:1138376193 | https://github.com/rohitg00/skillkit | no_demo; severity=medium
13. 安全/权限坑 · 存在评分风险
- 严重度:medium
- 证据强度:source_linked
- 发现:no_demo
- 对用户的影响:风险会影响是否适合普通用户安装。
- 建议检查:把风险写入边界卡,并确认是否需要人工复核。
- 防护动作:评分风险必须进入边界卡,不能只作为内部分数。
- 证据:risks.scoring_risks | github_repo:1138376193 | https://github.com/rohitg00/skillkit | no_demo; severity=medium
14. 安全/权限坑 · 来源证据:[Audit] Add --json output to 28 commands for CI/CD usage
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:[Audit] Add --json output to 28 commands for CI/CD usage
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_e28aa428237f4e6ba09f785dbf5e6978 | https://github.com/rohitg00/skillkit/issues/89 | 来源类型 github_issue 暴露的待验证使用条件。
15. 安全/权限坑 · 来源证据:[Audit] Add loading spinners to 43 commands missing progress feedback
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:[Audit] Add loading spinners to 43 commands missing progress feedback
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_9bba06e67cf944c28dcb33d8ed334975 | https://github.com/rohitg00/skillkit/issues/88 | 来源类型 github_issue 暴露的待验证使用条件。
16. 安全/权限坑 · 来源证据:[Publish] AlphaEar System
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:[Publish] AlphaEar System
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 建议检查:来源问题仍为 open,Pack Agent 需要复核是否仍影响当前版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_26d8102a08b8434cb7456fcd1554ce3a | https://github.com/rohitg00/skillkit/issues/126 | 来源类型 github_issue 暴露的待验证使用条件。
17. 安全/权限坑 · 来源证据:[Publish] Computer Use Patterns
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:[Publish] Computer Use Patterns
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 建议检查:来源问题仍为 open,Pack Agent 需要复核是否仍影响当前版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_5f48d6d0c0c04492b897829190a0df3c | https://github.com/rohitg00/skillkit/issues/124 | 来源类型 github_issue 暴露的待验证使用条件。
18. 安全/权限坑 · 来源证据:[Publish] SkillKit Integration
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:[Publish] SkillKit Integration
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 建议检查:来源问题仍为 open,Pack Agent 需要复核是否仍影响当前版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_2c9342c012d74dcfba1ba832a87724c3 | https://github.com/rohitg00/skillkit/issues/125 | 来源类型 github_issue 暴露的待验证使用条件。
19. 安全/权限坑 · 来源证据:[Source] Add Xquik TweetClaw
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:[Source] Add Xquik TweetClaw
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 建议检查:来源问题仍为 open,Pack Agent 需要复核是否仍影响当前版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_f9e22dd824ca491e8bd861cac00a2203 | https://github.com/rohitg00/skillkit/issues/120 | 来源讨论提到 npm 相关条件,需在安装/试用前复核。
20. 安全/权限坑 · 来源证据:v1.21.0
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:v1.21.0
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_2989a360f78d46cfbba976f4932bff93 | https://github.com/rohitg00/skillkit/releases/tag/v1.21.0 | 来源类型 github_release 暴露的待验证使用条件。
21. 安全/权限坑 · 来源证据:v1.24.0
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:v1.24.0
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
- 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
- 证据:community_evidence:github | cevd_8dbf39f6064042bbb250f034a824d7d3 | https://github.com/rohitg00/skillkit/releases/tag/v1.24.0 | 来源讨论提到 npm 相关条件,需在安装/试用前复核。
22. 维护坑 · issue/PR 响应质量未知
- 严重度:low
- 证据强度:source_linked
- 发现:issue_or_pr_quality=unknown。
- 对用户的影响:用户无法判断遇到问题后是否有人维护。
- 建议检查:抽样最近 issue/PR,判断是否长期无人处理。
- 防护动作:issue/PR 响应未知时,必须提示维护风险。
- 证据:evidence.maintainer_signals | github_repo:1138376193 | https://github.com/rohitg00/skillkit | issue_or_pr_quality=unknown
23. 维护坑 · 发布节奏不明确
- 严重度:low
- 证据强度:source_linked
- 发现:release_recency=unknown。
- 对用户的影响:安装命令和文档可能落后于代码,用户踩坑概率升高。
- 建议检查:确认最近 release/tag 和 README 安装命令是否一致。
- 防护动作:发布节奏未知或过期时,安装说明必须标注可能漂移。
- 证据:evidence.maintainer_signals | github_repo:1138376193 | https://github.com/rohitg00/skillkit | release_recency=unknown
来源:Doramagic 发现、验证与编译记录