@tinkcarlos/skillora 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +205 -38
- package/README.zh-CN.md +236 -0
- package/lib/init.js +18 -6
- package/package.json +2 -2
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 TinkCarlos
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,69 +1,236 @@
|
|
|
1
1
|
# Skillora
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[中文文档](README.zh-CN.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Multi-platform AI agent skill management tool, supporting Claude Code, Cursor, Codex/GPT, Gemini, Windsurf, Aider and more.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- **Multi-platform Support** - One skill set, multiple platforms (Claude Code, Cursor, Codex, Gemini, Windsurf, Aider)
|
|
10
|
+
- **Slash Commands** - Native `/ora/<skill-name>` command support in Claude Code
|
|
11
|
+
- **SKILL.md Format** - Standardized skill definition format, easy to extend and maintain
|
|
12
|
+
- **Flexible Installation** - Project-level, universal, and global installation modes
|
|
13
|
+
- **Zero Config** - Interactive initialization with auto-generated platform configs
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
6
16
|
|
|
7
17
|
```bash
|
|
8
18
|
npm i -g @tinkcarlos/skillora
|
|
9
19
|
```
|
|
10
20
|
|
|
11
|
-
>
|
|
21
|
+
> Requires Node.js 20.6+
|
|
12
22
|
|
|
13
|
-
##
|
|
23
|
+
## Quick Start
|
|
14
24
|
|
|
15
|
-
###
|
|
25
|
+
### Interactive Initialization (Recommended)
|
|
16
26
|
|
|
17
27
|
```bash
|
|
18
28
|
skillora init
|
|
19
29
|
```
|
|
20
30
|
|
|
21
|
-
|
|
31
|
+
Interactively select platforms and installation mode, auto-generates config files.
|
|
22
32
|
|
|
23
|
-
###
|
|
33
|
+
### Non-interactive Initialization
|
|
24
34
|
|
|
25
35
|
```bash
|
|
26
|
-
#
|
|
36
|
+
# Claude Code only
|
|
27
37
|
skillora init --platform claude-code
|
|
28
38
|
|
|
29
|
-
#
|
|
39
|
+
# Multiple platforms
|
|
30
40
|
skillora init --platform claude-code,cursor
|
|
31
41
|
|
|
32
|
-
#
|
|
33
|
-
skillora init --platform claude-code --universal #
|
|
34
|
-
skillora init --platform claude-code --global #
|
|
42
|
+
# Specify installation mode
|
|
43
|
+
skillora init --platform claude-code --universal # Universal mode
|
|
44
|
+
skillora init --platform claude-code --global # Global mode
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Core Skills
|
|
48
|
+
|
|
49
|
+
Skillora includes the following core skills covering the full software development lifecycle:
|
|
50
|
+
|
|
51
|
+
### Development
|
|
52
|
+
|
|
53
|
+
| Skill | Command | Description |
|
|
54
|
+
|-------|---------|-------------|
|
|
55
|
+
| **Product Requirements** | `/ora/product-requirements` | PRD writing, user stories, acceptance criteria, competitive analysis |
|
|
56
|
+
| **Fullstack Developer** | `/ora/fullstack-developer` | Frontend/backend dev, API design, database migration, skill orchestration |
|
|
57
|
+
| **Bug Fixing** | `/ora/bug-fixing` | Zero-regression fixes, root cause analysis, knowledge extraction, context isolation |
|
|
58
|
+
| **Code Review** | `/ora/code-review` | Layered checks, batch processing, call chain analysis, progress tracking |
|
|
59
|
+
|
|
60
|
+
### Frontend
|
|
61
|
+
|
|
62
|
+
| Skill | Command | Description |
|
|
63
|
+
|-------|---------|-------------|
|
|
64
|
+
| **Frontend Design** | `/ora/frontend-design` | 57 UI styles, 95 color palettes, responsive design, accessibility audit |
|
|
65
|
+
| **React Best Practices** | `skillora read react-best-practices` | Performance optimization, state management, render optimization |
|
|
66
|
+
|
|
67
|
+
### Backend
|
|
68
|
+
|
|
69
|
+
| Skill | Command | Description |
|
|
70
|
+
|-------|---------|-------------|
|
|
71
|
+
| **API Scaffolding** | `skillora read api-scaffolding` | FastAPI/Django/Express/NestJS templates |
|
|
72
|
+
| **API Testing** | `skillora read api-testing-observability` | Contract testing, mock servers, observability |
|
|
73
|
+
| **Database Migrations** | `skillora read database-migrations` | SQL migrations, version control, rollback strategies |
|
|
74
|
+
|
|
75
|
+
### Engineering
|
|
76
|
+
|
|
77
|
+
| Skill | Command | Description |
|
|
78
|
+
|-------|---------|-------------|
|
|
79
|
+
| **CI/CD Pipeline** | `skillora read cicd-pipeline` | GitHub Actions, GitLab CI, DevSecOps |
|
|
80
|
+
| **Containerization** | `skillora read containerization` | Docker, Kubernetes, Helm |
|
|
81
|
+
| **Security Audit** | `skillora read security-audit` | OWASP Top 10, vulnerability scanning |
|
|
82
|
+
| **Performance Optimization** | `skillora read performance-optimization` | Performance profiling, bottleneck identification |
|
|
83
|
+
|
|
84
|
+
### Workflow
|
|
85
|
+
|
|
86
|
+
| Skill | Command | Description |
|
|
87
|
+
|-------|---------|-------------|
|
|
88
|
+
| **Brainstorming** | `skillora read brainstorming` | Socratic questioning, rapid design exploration |
|
|
89
|
+
| **TDD Development** | `skillora read test-driven-development` | Test-driven development workflow |
|
|
90
|
+
| **Git Worktree** | `skillora read using-git-worktrees` | Multi-branch parallel development |
|
|
91
|
+
| **Verification** | `skillora read verification-before-completion` | Pre-merge checklist |
|
|
92
|
+
|
|
93
|
+
## Usage
|
|
94
|
+
|
|
95
|
+
### In Claude Code
|
|
96
|
+
|
|
97
|
+
Claude Code natively supports slash commands:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
/ora/bug-fixing # Start bug fixing workflow
|
|
101
|
+
/ora/code-review # Start code review workflow
|
|
102
|
+
/ora/frontend-design # Start frontend design workflow
|
|
103
|
+
/ora/product-requirements # Start requirements analysis
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Or use the Skill tool:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
Skill("bug-fixing")
|
|
110
|
+
Skill("code-review")
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Other Platforms
|
|
114
|
+
|
|
115
|
+
Cursor, Codex, Gemini, Windsurf, Aider load skills via CLI:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# Read skill content (AI agent will execute automatically)
|
|
119
|
+
skillora read bug-fixing
|
|
120
|
+
skillora read code-review
|
|
121
|
+
skillora read frontend-design
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Skill Discovery
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# List all installed skills
|
|
128
|
+
skillora list
|
|
129
|
+
|
|
130
|
+
# List from specific directory
|
|
131
|
+
skillora list --global # Global skills
|
|
132
|
+
skillora list --universal # Universal skills
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Command Reference
|
|
136
|
+
|
|
137
|
+
| Command | Description |
|
|
138
|
+
|---------|-------------|
|
|
139
|
+
| `skillora init` | Interactive project initialization |
|
|
140
|
+
| `skillora install` | Install bundled skills |
|
|
141
|
+
| `skillora list` | List installed skills |
|
|
142
|
+
| `skillora read <name>` | Read skill content (for AI agents) |
|
|
143
|
+
| `skillora sync` | Sync config to AGENTS.md |
|
|
144
|
+
| `skillora remove <name>` | Remove a skill |
|
|
145
|
+
|
|
146
|
+
### Common Options
|
|
147
|
+
|
|
148
|
+
| Option | Description |
|
|
149
|
+
|--------|-------------|
|
|
150
|
+
| `-g, --global` | Operate on global skills directory (~/.claude/skills/) |
|
|
151
|
+
| `-u, --universal` | Operate on universal skills directory (.agent/skills/) |
|
|
152
|
+
| `-t, --target <path>` | Operate on custom directory |
|
|
153
|
+
| `-f, --force` | Force overwrite existing skills |
|
|
154
|
+
|
|
155
|
+
## Supported Platforms
|
|
156
|
+
|
|
157
|
+
| Platform | Config Files | Invocation |
|
|
158
|
+
|----------|--------------|------------|
|
|
159
|
+
| Claude Code | `.claude/skills/`, `CLAUDE.md` | `/ora/<skill>` or `Skill("<skill>")` |
|
|
160
|
+
| Cursor | `.cursorrules`, `AGENTS.md` | `skillora read <skill>` |
|
|
161
|
+
| Codex/GPT | `AGENTS.md` (System Prompt) | `skillora read <skill>` |
|
|
162
|
+
| Gemini | `AGENTS.md` (System Prompt) | `skillora read <skill>` |
|
|
163
|
+
| Windsurf | `AGENTS.md` | `skillora read <skill>` |
|
|
164
|
+
| Aider | `AGENTS.md` | `skillora read <skill>` |
|
|
165
|
+
|
|
166
|
+
## Installation Modes
|
|
167
|
+
|
|
168
|
+
| Mode | Directory | Description |
|
|
169
|
+
|------|-----------|-------------|
|
|
170
|
+
| Project (default) | `.claude/skills/` | Current project only |
|
|
171
|
+
| Universal | `.agent/skills/` | Multi-agent compatible, project-level |
|
|
172
|
+
| Global | `~/.claude/skills/` | Shared across all projects |
|
|
173
|
+
|
|
174
|
+
## SKILL.md Format
|
|
175
|
+
|
|
176
|
+
Each skill is a directory containing a `SKILL.md` file:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
my-skill/
|
|
180
|
+
├── SKILL.md # Skill definition (required)
|
|
181
|
+
├── references/ # Reference docs (optional)
|
|
182
|
+
│ ├── guide.md
|
|
183
|
+
│ └── patterns.md
|
|
184
|
+
└── scripts/ # Helper scripts (optional)
|
|
185
|
+
└── helper.py
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### SKILL.md Structure
|
|
189
|
+
|
|
190
|
+
```markdown
|
|
191
|
+
---
|
|
192
|
+
name: my-skill
|
|
193
|
+
description: Brief skill description
|
|
194
|
+
user-invocable: true
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
# Skill Title
|
|
198
|
+
|
|
199
|
+
## Trigger Conditions
|
|
200
|
+
Describe when to use this skill...
|
|
201
|
+
|
|
202
|
+
## Workflow
|
|
203
|
+
1. Step one
|
|
204
|
+
2. Step two
|
|
205
|
+
...
|
|
206
|
+
|
|
207
|
+
## References
|
|
208
|
+
- [Guide](references/guide.md)
|
|
35
209
|
```
|
|
36
210
|
|
|
37
|
-
|
|
211
|
+
### Frontmatter Fields
|
|
212
|
+
|
|
213
|
+
| Field | Type | Description |
|
|
214
|
+
|-------|------|-------------|
|
|
215
|
+
| `name` | string | Skill name (used for command invocation) |
|
|
216
|
+
| `description` | string | Skill description |
|
|
217
|
+
| `user-invocable` | boolean | Whether user can invoke directly (default: true) |
|
|
38
218
|
|
|
39
|
-
|
|
40
|
-
|------|------|
|
|
41
|
-
| `skillora init` | 交互式初始化项目 |
|
|
42
|
-
| `skillora install` | 安装内置技能 |
|
|
43
|
-
| `skillora list` | 列出已安装技能 |
|
|
44
|
-
| `skillora read <name>` | 读取技能内容(给 AI agent 用) |
|
|
45
|
-
| `skillora sync` | 同步配置到 AGENTS.md |
|
|
46
|
-
| `skillora remove <name>` | 删除技能 |
|
|
219
|
+
## Skill Development
|
|
47
220
|
|
|
48
|
-
|
|
221
|
+
### Creating a New Skill
|
|
49
222
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
| Cursor | `.cursorrules`, `AGENTS.md` |
|
|
54
|
-
| Codex/GPT | `AGENTS.md` (System Prompt) |
|
|
55
|
-
| Gemini | `AGENTS.md` (System Prompt) |
|
|
56
|
-
| Windsurf | `AGENTS.md` |
|
|
57
|
-
| Aider | `AGENTS.md` |
|
|
223
|
+
1. Create skill directory under `.claude/skills/`
|
|
224
|
+
2. Write `SKILL.md` file
|
|
225
|
+
3. Run `skillora sync` to update AGENTS.md
|
|
58
226
|
|
|
59
|
-
|
|
227
|
+
### Best Practices
|
|
60
228
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
| 全局模式 | `~/.claude/skills/` | 所有项目共享 |
|
|
229
|
+
- **Single Responsibility** - Each skill focuses on one domain
|
|
230
|
+
- **Clear Triggers** - Clearly describe when to use the skill
|
|
231
|
+
- **Structured Workflow** - Provide clear step-by-step guidance
|
|
232
|
+
- **Separate References** - Put detailed content in references/ directory
|
|
66
233
|
|
|
67
|
-
##
|
|
234
|
+
## License
|
|
68
235
|
|
|
69
|
-
|
|
236
|
+
[MIT](LICENSE)
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# Skillora
|
|
2
|
+
|
|
3
|
+
[English](README.md)
|
|
4
|
+
|
|
5
|
+
多平台 AI 代理技能管理工具,支持 Claude Code、Cursor、Codex/GPT、Gemini、Windsurf、Aider 等平台。
|
|
6
|
+
|
|
7
|
+
## 特点
|
|
8
|
+
|
|
9
|
+
- **多平台支持** - 一套技能,多平台使用(Claude Code、Cursor、Codex、Gemini、Windsurf、Aider)
|
|
10
|
+
- **斜杠命令** - Claude Code 原生支持 `/ora/<skill-name>` 命令调用
|
|
11
|
+
- **SKILL.md 格式** - 标准化的技能定义格式,易于扩展和维护
|
|
12
|
+
- **灵活安装** - 支持项目级、通用级、全局级三种安装模式
|
|
13
|
+
- **零配置** - 交互式初始化,自动生成平台配置文件
|
|
14
|
+
|
|
15
|
+
## 安装
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm i -g @tinkcarlos/skillora
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
> 需要 Node.js 20.6+
|
|
22
|
+
|
|
23
|
+
## 快速开始
|
|
24
|
+
|
|
25
|
+
### 交互式初始化(推荐)
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
skillora init
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
交互式选择平台和安装模式,自动生成配置文件。
|
|
32
|
+
|
|
33
|
+
### 非交互式初始化
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 仅 Claude Code
|
|
37
|
+
skillora init --platform claude-code
|
|
38
|
+
|
|
39
|
+
# 多平台
|
|
40
|
+
skillora init --platform claude-code,cursor
|
|
41
|
+
|
|
42
|
+
# 指定安装模式
|
|
43
|
+
skillora init --platform claude-code --universal # 通用模式
|
|
44
|
+
skillora init --platform claude-code --global # 全局模式
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 核心技能
|
|
48
|
+
|
|
49
|
+
Skillora 内置以下核心技能,覆盖软件开发全流程:
|
|
50
|
+
|
|
51
|
+
### 开发类
|
|
52
|
+
|
|
53
|
+
| 技能 | 命令 | 说明 |
|
|
54
|
+
|------|------|------|
|
|
55
|
+
| **需求分析** | `/ora/product-requirements` | PRD 编写、用户故事、验收标准、竞品分析 |
|
|
56
|
+
| **全栈开发** | `/ora/fullstack-developer` | 前后端开发、API 设计、数据库迁移、技能编排 |
|
|
57
|
+
| **Bug 修复** | `/ora/bug-fixing` | 零回归修复、根因分析、知识提取、上下文隔离 |
|
|
58
|
+
| **代码审查** | `/ora/code-review` | 分层检查、批量处理、调用链分析、进度追踪 |
|
|
59
|
+
|
|
60
|
+
### 前端类
|
|
61
|
+
|
|
62
|
+
| 技能 | 命令 | 说明 |
|
|
63
|
+
|------|------|------|
|
|
64
|
+
| **前端设计** | `/ora/frontend-design` | 57 种 UI 风格、95 种配色、响应式设计、无障碍审查 |
|
|
65
|
+
| **React 最佳实践** | `skillora read react-best-practices` | 性能优化、状态管理、渲染优化 |
|
|
66
|
+
|
|
67
|
+
### 后端类
|
|
68
|
+
|
|
69
|
+
| 技能 | 命令 | 说明 |
|
|
70
|
+
|------|------|------|
|
|
71
|
+
| **API 脚手架** | `skillora read api-scaffolding` | FastAPI/Django/Express/NestJS 模板 |
|
|
72
|
+
| **API 测试** | `skillora read api-testing-observability` | 契约测试、Mock 服务、可观测性 |
|
|
73
|
+
| **数据库迁移** | `skillora read database-migrations` | SQL 迁移、版本控制、回滚策略 |
|
|
74
|
+
|
|
75
|
+
### 工程类
|
|
76
|
+
|
|
77
|
+
| 技能 | 命令 | 说明 |
|
|
78
|
+
|------|------|------|
|
|
79
|
+
| **CI/CD 流水线** | `skillora read cicd-pipeline` | GitHub Actions、GitLab CI、DevSecOps |
|
|
80
|
+
| **容器化** | `skillora read containerization` | Docker、Kubernetes、Helm |
|
|
81
|
+
| **安全审计** | `skillora read security-audit` | OWASP Top 10、漏洞扫描 |
|
|
82
|
+
| **性能优化** | `skillora read performance-optimization` | 性能分析、瓶颈定位 |
|
|
83
|
+
|
|
84
|
+
### 流程类
|
|
85
|
+
|
|
86
|
+
| 技能 | 命令 | 说明 |
|
|
87
|
+
|------|------|------|
|
|
88
|
+
| **头脑风暴** | `skillora read brainstorming` | 苏格拉底式提问、快速设计探索 |
|
|
89
|
+
| **TDD 开发** | `skillora read test-driven-development` | 测试驱动开发流程 |
|
|
90
|
+
| **Git Worktree** | `skillora read using-git-worktrees` | 多分支并行开发 |
|
|
91
|
+
| **完成验证** | `skillora read verification-before-completion` | 合并前检查清单 |
|
|
92
|
+
|
|
93
|
+
## 使用说明
|
|
94
|
+
|
|
95
|
+
### Claude Code 中使用
|
|
96
|
+
|
|
97
|
+
Claude Code 原生支持斜杠命令调用技能:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
/ora/bug-fixing # 启动 Bug 修复流程
|
|
101
|
+
/ora/code-review # 启动代码审查流程
|
|
102
|
+
/ora/frontend-design # 启动前端设计流程
|
|
103
|
+
/ora/product-requirements # 启动需求分析流程
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
也可以使用 Skill 工具:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
Skill("bug-fixing")
|
|
110
|
+
Skill("code-review")
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 其他平台使用
|
|
114
|
+
|
|
115
|
+
Cursor、Codex、Gemini、Windsurf、Aider 等平台通过 CLI 命令加载技能:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# 读取技能内容(AI agent 会自动执行)
|
|
119
|
+
skillora read bug-fixing
|
|
120
|
+
skillora read code-review
|
|
121
|
+
skillora read frontend-design
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 技能搜索
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# 列出所有已安装技能
|
|
128
|
+
skillora list
|
|
129
|
+
|
|
130
|
+
# 从特定目录列出
|
|
131
|
+
skillora list --global # 全局技能
|
|
132
|
+
skillora list --universal # 通用技能
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## 命令参考
|
|
136
|
+
|
|
137
|
+
| 命令 | 说明 |
|
|
138
|
+
|------|------|
|
|
139
|
+
| `skillora init` | 交互式初始化项目 |
|
|
140
|
+
| `skillora install` | 安装内置技能 |
|
|
141
|
+
| `skillora list` | 列出已安装技能 |
|
|
142
|
+
| `skillora read <name>` | 读取技能内容(给 AI agent 用) |
|
|
143
|
+
| `skillora sync` | 同步配置到 AGENTS.md |
|
|
144
|
+
| `skillora remove <name>` | 删除技能 |
|
|
145
|
+
|
|
146
|
+
### 通用选项
|
|
147
|
+
|
|
148
|
+
| 选项 | 说明 |
|
|
149
|
+
|------|------|
|
|
150
|
+
| `-g, --global` | 操作全局技能目录 (~/.claude/skills/) |
|
|
151
|
+
| `-u, --universal` | 操作通用技能目录 (.agent/skills/) |
|
|
152
|
+
| `-t, --target <path>` | 操作自定义目录 |
|
|
153
|
+
| `-f, --force` | 强制覆盖已存在的技能 |
|
|
154
|
+
|
|
155
|
+
## 支持的平台
|
|
156
|
+
|
|
157
|
+
| 平台 | 配置文件 | 调用方式 |
|
|
158
|
+
|------|----------|----------|
|
|
159
|
+
| Claude Code | `.claude/skills/`, `CLAUDE.md` | `/ora/<skill>` 或 `Skill("<skill>")` |
|
|
160
|
+
| Cursor | `.cursorrules`, `AGENTS.md` | `skillora read <skill>` |
|
|
161
|
+
| Codex/GPT | `AGENTS.md` (System Prompt) | `skillora read <skill>` |
|
|
162
|
+
| Gemini | `AGENTS.md` (System Prompt) | `skillora read <skill>` |
|
|
163
|
+
| Windsurf | `AGENTS.md` | `skillora read <skill>` |
|
|
164
|
+
| Aider | `AGENTS.md` | `skillora read <skill>` |
|
|
165
|
+
|
|
166
|
+
## 安装模式
|
|
167
|
+
|
|
168
|
+
| 模式 | 目录 | 说明 |
|
|
169
|
+
|------|------|------|
|
|
170
|
+
| 项目模式(默认) | `.claude/skills/` | 仅当前项目可用 |
|
|
171
|
+
| 通用模式 | `.agent/skills/` | 多代理兼容,项目级 |
|
|
172
|
+
| 全局模式 | `~/.claude/skills/` | 所有项目共享 |
|
|
173
|
+
|
|
174
|
+
## SKILL.md 格式规范
|
|
175
|
+
|
|
176
|
+
每个技能由一个目录组成,必须包含 `SKILL.md` 文件:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
my-skill/
|
|
180
|
+
├── SKILL.md # 技能定义(必需)
|
|
181
|
+
├── references/ # 参考文档(可选)
|
|
182
|
+
│ ├── guide.md
|
|
183
|
+
│ └── patterns.md
|
|
184
|
+
└── scripts/ # 辅助脚本(可选)
|
|
185
|
+
└── helper.py
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### SKILL.md 结构
|
|
189
|
+
|
|
190
|
+
```markdown
|
|
191
|
+
---
|
|
192
|
+
name: my-skill
|
|
193
|
+
description: 技能的简短描述
|
|
194
|
+
user-invocable: true
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
# 技能标题
|
|
198
|
+
|
|
199
|
+
## 触发条件
|
|
200
|
+
描述何时应该使用此技能...
|
|
201
|
+
|
|
202
|
+
## 工作流程
|
|
203
|
+
1. 步骤一
|
|
204
|
+
2. 步骤二
|
|
205
|
+
...
|
|
206
|
+
|
|
207
|
+
## 参考文档
|
|
208
|
+
- [指南](references/guide.md)
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Frontmatter 字段
|
|
212
|
+
|
|
213
|
+
| 字段 | 类型 | 说明 |
|
|
214
|
+
|------|------|------|
|
|
215
|
+
| `name` | string | 技能名称(用于命令调用) |
|
|
216
|
+
| `description` | string | 技能描述 |
|
|
217
|
+
| `user-invocable` | boolean | 是否支持用户直接调用(默认 true) |
|
|
218
|
+
|
|
219
|
+
## 技能开发
|
|
220
|
+
|
|
221
|
+
### 创建新技能
|
|
222
|
+
|
|
223
|
+
1. 在 `.claude/skills/` 下创建技能目录
|
|
224
|
+
2. 编写 `SKILL.md` 文件
|
|
225
|
+
3. 运行 `skillora sync` 更新 AGENTS.md
|
|
226
|
+
|
|
227
|
+
### 技能最佳实践
|
|
228
|
+
|
|
229
|
+
- **单一职责** - 每个技能专注一个领域
|
|
230
|
+
- **清晰触发** - 明确描述何时使用此技能
|
|
231
|
+
- **结构化流程** - 提供清晰的步骤指引
|
|
232
|
+
- **参考分离** - 详细内容放在 references/ 目录
|
|
233
|
+
|
|
234
|
+
## 许可证
|
|
235
|
+
|
|
236
|
+
[MIT](LICENSE)
|
package/lib/init.js
CHANGED
|
@@ -97,14 +97,23 @@ function listSkillDirs(rootDir) {
|
|
|
97
97
|
.filter((d) => fs.existsSync(path.join(d, "SKILL.md")));
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
function generateClaudeMd(
|
|
100
|
+
function generateClaudeMd(skills) {
|
|
101
|
+
const invocableSkills = skills.filter((s) => s.userInvocable);
|
|
102
|
+
const slashCommands = invocableSkills.map((s) => `/ora/${s.name}`).join(", ");
|
|
101
103
|
return `# CLAUDE.md
|
|
102
104
|
|
|
103
105
|
## Skills System
|
|
104
106
|
|
|
105
|
-
本项目已安装 ${
|
|
107
|
+
本项目已安装 ${skills.length} 个技能。
|
|
106
108
|
|
|
107
|
-
|
|
109
|
+
### 斜杠命令(推荐)
|
|
110
|
+
|
|
111
|
+
${slashCommands || "(无可调用技能)"}
|
|
112
|
+
|
|
113
|
+
### CLI 命令
|
|
114
|
+
|
|
115
|
+
\`skillora read <name>\` 加载技能详情
|
|
116
|
+
\`skillora list\` 查看所有可用技能
|
|
108
117
|
`;
|
|
109
118
|
}
|
|
110
119
|
|
|
@@ -125,6 +134,8 @@ ${skillList}
|
|
|
125
134
|
}
|
|
126
135
|
|
|
127
136
|
function generateAgentsMd(skills, cliName) {
|
|
137
|
+
const invocableSkills = skills.filter((s) => s.userInvocable);
|
|
138
|
+
const slashCommands = invocableSkills.map((s) => `/ora/${s.name}`).join(", ");
|
|
128
139
|
const skillTable = skills
|
|
129
140
|
.map((s) => `| ${s.name} | ${s.description} |`)
|
|
130
141
|
.join("\n");
|
|
@@ -142,7 +153,8 @@ ${skillTable}
|
|
|
142
153
|
|
|
143
154
|
### Claude Code
|
|
144
155
|
- 原生支持 \`.claude/skills/\` 目录
|
|
145
|
-
-
|
|
156
|
+
- 斜杠命令: ${slashCommands || "(无)"}
|
|
157
|
+
- 或使用 \`Skill("name")\` 调用
|
|
146
158
|
|
|
147
159
|
### Cursor
|
|
148
160
|
- 使用 \`.cursorrules\` 配置
|
|
@@ -292,8 +304,8 @@ async function runInit(options, bundledSkillsDir) {
|
|
|
292
304
|
// 生成平台配置文件
|
|
293
305
|
if (platforms.includes("claude-code")) {
|
|
294
306
|
const claudeMdPath = path.join(cwd, "CLAUDE.md");
|
|
295
|
-
if (!fs.existsSync(claudeMdPath)) {
|
|
296
|
-
fs.writeFileSync(claudeMdPath, generateClaudeMd(skills
|
|
307
|
+
if (!fs.existsSync(claudeMdPath) || options.force) {
|
|
308
|
+
fs.writeFileSync(claudeMdPath, generateClaudeMd(skills), "utf8");
|
|
297
309
|
created.push("CLAUDE.md");
|
|
298
310
|
}
|
|
299
311
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tinkcarlos/skillora",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "CLI installer for bundled Claude Code skills (SKILL.md format)",
|
|
5
5
|
"bin": {
|
|
6
6
|
"skillora": "bin/cli.js"
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"agents",
|
|
20
20
|
"openskills"
|
|
21
21
|
],
|
|
22
|
-
"license": "
|
|
22
|
+
"license": "MIT",
|
|
23
23
|
"engines": {
|
|
24
24
|
"node": ">=20.6.0"
|
|
25
25
|
},
|