aweskill 0.1.7 → 0.2.1

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/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  <h1>aweskill: One Skill Store for All Your Coding Agents</h1>
4
4
  <p><strong>Local skill orchestration CLI for AI coding agents.</strong></p>
5
5
  <p>
6
- <a href="https://github.com/mugpeng/aweskill/releases"><img src="https://img.shields.io/badge/version-0.1.7-7C3AED?style=flat-square" alt="Version"></a>
6
+ <a href="https://github.com/mugpeng/aweskill/releases"><img src="https://img.shields.io/badge/version-0.2.0-7C3AED?style=flat-square" alt="Version"></a>
7
7
  <a href="https://github.com/mugpeng/aweskill"><img src="https://img.shields.io/badge/node-%E2%89%A520-0EA5E9?style=flat-square" alt="Node"></a>
8
8
  <a href="https://github.com/mugpeng/aweskill/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MPL--2.0-22C55E?style=flat-square" alt="License"></a>
9
9
  <a href="./README.zh-CN.md"><img src="https://img.shields.io/badge/README-%E4%B8%AD%E6%96%87-64748B?style=flat-square" alt="Chinese README"></a>
@@ -12,10 +12,14 @@
12
12
  <img src="https://img.shields.io/badge/status-beta-c96a3d?style=flat-square" alt="Status">
13
13
  <img src="https://img.shields.io/badge/agents-47_supported-0ea5a4?style=flat-square" alt="Supported agents">
14
14
  <img src="https://img.shields.io/badge/projection-symlink-1f2328?style=flat-square" alt="Projection mode">
15
+ <img src="https://img.shields.io/badge/OS-windows%20%26%20macOS-0078D4?style=flat-square" alt="Windows and macOS">
16
+ <img src="https://img.shields.io/npm/dt/aweskill?style=flat-square" alt="npm downloads">
17
+ <img src="https://img.shields.io/github/stars/mugpeng/aweskill?style=flat-square" alt="GitHub stars">
15
18
  <img src="https://img.shields.io/badge/platform-local%20CLI-334155?style=flat-square" alt="Local CLI">
16
19
  </p>
17
20
  </div>
18
21
 
22
+
19
23
  `aweskill` is a local CLI for managing, bundling, and projecting skills across AI coding agents.
20
24
 
21
25
  Instead of copying the same skill folders into every tool by hand, `aweskill` keeps a single source of truth in `~/.aweskill/skills/` and projects those skills into agent-specific directories with `symlink` or `copy`, depending on the target agent.
@@ -26,7 +30,7 @@ Instead of copying the same skill folders into every tool by hand, `aweskill` ke
26
30
  - **Bundle-based organization** for reusable skill sets
27
31
  - **Multi-agent projection** across Codex, Claude Code, Cursor, Gemini CLI, and more
28
32
  - **Managed enable/disable model** without a separate global activation file
29
- - **Backup, restore, dedupe, and recovery** built into the CLI
33
+ - **Backup, restore, dedup, and recovery** built into the CLI
30
34
 
31
35
  ## Install
32
36
 
@@ -42,7 +46,7 @@ aweskill --help
42
46
  To pin a specific release:
43
47
 
44
48
  ```bash
45
- npm install -g aweskill@0.1.7
49
+ npm install -g aweskill@0.2.0
46
50
  ```
47
51
 
48
52
  Package page: [npmjs.com/package/aweskill](https://www.npmjs.com/package/aweskill)
@@ -68,7 +72,7 @@ aweskill --help
68
72
  ```bash
69
73
  npm install
70
74
  npm pack
71
- npm install -g ./aweskill-0.1.7.tgz
75
+ npm install -g ./aweskill-0.2.0.tgz
72
76
  ```
73
77
 
74
78
  ## Quick Start
@@ -77,37 +81,52 @@ npm install -g ./aweskill-0.1.7.tgz
77
81
  # 1. Initialize the aweskill home
78
82
  aweskill store init
79
83
 
80
- # 2. Scan existing agent skill directories
81
- aweskill skill scan
84
+ # 2. Show where the aweskill store lives
85
+ aweskill store where --verbose
86
+
87
+ # 3. Scan existing agent skill directories
88
+ aweskill store scan
82
89
 
83
- # 3. Import a skills root or a single skill
84
- aweskill skill import ~/.agents/skills
85
- # aweskill skill import /path/to/my-skill --mode cp
90
+ # 4. Import scanned agent skills into the central store
91
+ aweskill store import --scan
86
92
 
87
- # 4. Create a bundle
93
+ # 5. Import a skills root or a single skill
94
+ aweskill store import ~/.agents/skills
95
+ # aweskill store import /path/to/my-skill --link-source
96
+
97
+ # 6. Create a bundle
88
98
  aweskill bundle create frontend
89
99
  aweskill bundle add frontend my-skill
90
100
 
91
- # 5. Enable the bundle for one agent
101
+ # 7. Enable the bundle for one agent
92
102
  aweskill agent add bundle frontend --global --agent claude-code
93
103
 
94
- # 6. Inspect current projected skills
104
+ # 8. Inspect current projected skills
95
105
  aweskill agent list
96
106
  ```
97
107
 
98
- ## Core Model
108
+ ## Windows
109
+
110
+ `aweskill` now supports Windows as a native platform.
111
+
112
+ - Requires Node.js 20 or later
113
+ - PowerShell is recommended for the examples below
114
+ - On Windows, agent projections prefer directory junctions and fall back to managed copies when links are unavailable
115
+ - `store backup` and `store restore` no longer require a system `tar` binary
116
+
117
+ Example:
99
118
 
100
- `aweskill` follows a simple projection model:
119
+ ```powershell
120
+ aweskill store init
121
+ aweskill store scan
122
+ aweskill agent add bundle frontend --global --agent codex
123
+ ```
101
124
 
102
- 1. Skills live in one central repository: `~/.aweskill/skills/<skill-name>/`
103
- 2. Bundles are plain YAML files in `~/.aweskill/bundles/<bundle>.yaml`
104
- 3. `agent add` projects selected skills into each agent's skills directory
125
+ If you run into Windows-specific path or projection issues, please open an issue with your shell, Node version, and target agent.
105
126
 
106
- That projection is the activation model.
127
+ ## Core Model
107
128
 
108
- - If a managed symlink exists, the skill is enabled
109
- - If it does not exist, the skill is disabled
110
- - There is no separate global activation registry to reconcile
129
+ `aweskill` keeps one central skill store in `~/.aweskill/skills/`, groups reusable skills through bundles, and projects selected skills into each agent's own skill directory. That projected filesystem state is the activation model.
111
130
 
112
131
  ## What It Supports
113
132
 
@@ -121,57 +140,109 @@ Key directories:
121
140
  - Duplicate holding area: `~/.aweskill/dup_skills/`
122
141
  - Backup archive: `~/.aweskill/backup/`
123
142
  - Bundles: `~/.aweskill/bundles/*.yaml`
124
- - Repo resources: `resources/bundle_templates/` and `resources/skill_archives/`
143
+ - Built-in skills: `skills/aweskill/`, `skills/aweskill-advanced/`, `skills/aweskill-doctor/`
125
144
 
126
145
  ## Common Workflows
127
146
 
128
147
  ### Import skills into the central store
129
148
 
130
149
  ```bash
131
- aweskill skill import ~/.agents/skills
132
- aweskill skill import ~/Downloads/pr-review --mode cp
133
- aweskill skill import --scan
150
+ # Import skills from an existing agent-managed skills directory
151
+ aweskill store import ~/.agents/skills
152
+
153
+ # Import a standalone skill folder and keep the original directory unchanged
154
+ aweskill store import ~/Downloads/pr-review
155
+
156
+ # Import a standalone skill folder and replace the source with an aweskill-managed projection
157
+ aweskill store import ~/Downloads/pr-review --link-source
158
+
159
+ # Import scanned agent skills and relink their source paths by default
160
+ aweskill store import --scan
161
+
162
+ # Import scanned agent skills but keep the original agent directories unchanged
163
+ aweskill store import --scan --keep-source
134
164
  ```
135
165
 
136
166
  ### Build reusable bundles
137
167
 
138
168
  ```bash
169
+ # Create a reusable bundle
139
170
  aweskill bundle create backend
171
+
172
+ # Add multiple skills into the bundle
140
173
  aweskill bundle add backend api-design,db-schema
174
+
175
+ # Inspect what the bundle contains
141
176
  aweskill bundle show backend
142
177
  ```
143
178
 
144
179
  ### Project skills into agents
145
180
 
146
181
  ```bash
182
+ # Project one skill into detected global agent directories
147
183
  aweskill agent add skill biopython
184
+
185
+ # Project multiple skills into one specific global agent directory
148
186
  aweskill agent add skill biopython,scanpy --global --agent codex
187
+
188
+ # Project a whole bundle into every detected global agent directory
149
189
  aweskill agent add bundle backend --global --agent all
190
+
191
+ # Turn managed symlinks back into full directories
192
+ aweskill agent recover --global --agent codex
150
193
  ```
151
194
 
152
195
  ### Keep the store clean
153
196
 
154
197
  ```bash
155
- aweskill store backup --both
156
- aweskill agent sync
157
- aweskill agent recover --global --agent codex
158
- aweskill doctor dedupe --fix
198
+ # Inspect the central store layout and entry counts
199
+ aweskill store where --verbose
200
+
201
+ # Create a backup archive of the current store
202
+ aweskill store backup
203
+
204
+ # Restore a backup archive into the current store
205
+ aweskill store restore ~/Downloads/aweskill-backup.tar.gz
206
+
207
+ # Inspect agent entries and categories
208
+ aweskill agent list
209
+
210
+ # Remove suspicious entries from the central store
211
+ aweskill doctor clean
212
+
213
+ # Move duplicate central-store skills into dup_skills
214
+ aweskill doctor dedup --apply
215
+
216
+ # Inspect repair actions for one agent
217
+ aweskill doctor sync --global --agent codex
218
+
219
+ # Repair broken / duplicate / matched agent entries for one agent
220
+ aweskill doctor sync --global --agent codex --apply
221
+
222
+ # Remove suspicious agent entries only when explicitly requested
223
+ aweskill doctor sync --global --agent codex --apply --remove-suspicious
159
224
  ```
160
225
 
161
- By default, `store backup` and `store restore` only operate on `skills/`. Add `--both` to include `bundles/`, and pass an optional archive path to `store backup` if you want to export to a specific location.
226
+ All `doctor` commands default to dry-run. Add `--apply` to make real changes.
162
227
 
163
228
  ## Command Surface
164
229
 
230
+ Core commands: `store init`, `store where`, `store import`, `bundle create`, `agent add`, `doctor clean`
231
+
232
+ <details>
233
+ <summary>All commands</summary>
234
+
165
235
  | Command | Description |
166
236
  | --- | --- |
167
237
  | `aweskill store init [--scan] [--verbose]` | Create the `~/.aweskill` layout |
168
- | `aweskill store backup [archive] [--both]` | Archive the central skill store, optionally to a specific path |
169
- | `aweskill store restore <archive> [--override] [--both]` | Restore a previous backup |
170
- | `aweskill skill scan [--verbose]` | Scan supported agent skill directories |
171
- | `aweskill skill import <path> [--mode cp\|mv] [--override]` | Import a skill or an entire skills root |
172
- | `aweskill skill import --scan [--mode cp\|mv] [--override]` | Import the current scan results |
173
- | `aweskill skill list [--verbose]` | List skills in the central store |
174
- | `aweskill skill remove <skill> [--force]` | Remove one skill from the central store |
238
+ | `aweskill store where [--verbose]` | Show the `~/.aweskill` location and summarize core store directories |
239
+ | `aweskill store backup [archive] [--skills-only]` | Archive the central store; by default includes both skills and bundles |
240
+ | `aweskill store restore <archive-or-dir> [--override] [--skills-only]` | Restore from a backup archive or unpacked backup directory |
241
+ | `aweskill store scan [--global\|--project [dir]] [--agent <agent>] [--verbose]` | Scan supported agent skill directories for a chosen scope and agent set |
242
+ | `aweskill store import <path> [--keep-source\|--link-source] [--override]` | Import a skill or an entire skills root; external paths keep their source by default |
243
+ | `aweskill store import --scan [--global\|--project [dir]] [--agent <agent>] [--keep-source\|--link-source] [--override]` | Import the current scan results for a chosen scope and agent set; scanned agent paths link back to aweskill by default |
244
+ | `aweskill store list [--verbose]` | List skills in the central store |
245
+ | `aweskill store remove <skill> [--force]` | Remove one skill from the central store |
175
246
  | `aweskill bundle list [--verbose]` | List central bundles |
176
247
  | `aweskill bundle create <name>` | Create a bundle |
177
248
  | `aweskill bundle add <bundle> <skill>` | Add one or more skills to a bundle |
@@ -179,84 +250,48 @@ By default, `store backup` and `store restore` only operate on `skills/`. Add `-
179
250
  | `aweskill bundle show <name>` | Inspect bundle contents |
180
251
  | `aweskill bundle template list [--verbose]` | List built-in bundle templates |
181
252
  | `aweskill bundle template import <name>` | Copy a built-in template bundle into the store |
182
- | `aweskill agent supported` | List supported agent ids and display names |
253
+ | `aweskill agent supported` | List all supported agent ids, mark global install status with `✓` / `x`, and show detected global skills paths |
183
254
  | `aweskill agent add bundle\|skill ...` | Project managed skills into agent directories |
184
255
  | `aweskill agent remove bundle\|skill ... [--force]` | Remove managed projections |
185
- | `aweskill agent list [...]` | Inspect linked, duplicate, and new entries |
186
- | `aweskill agent sync` | Remove stale managed projections |
256
+ | `aweskill agent list [--global\|--project [dir]] [--agent <agent>] [--verbose]` | Read-only dry-run view of `doctor sync`: inspect `linked`, `broken`, `duplicate`, `matched`, `new`, and `suspicious` entries; when `--agent` is omitted, print the detected agent set for that scope before the grouped results |
257
+ | `aweskill doctor sync [--apply] [--remove-suspicious] [--global\|--project [dir]] [--agent <agent>] [--verbose]` | Dry-run by default; add `--apply` to repair broken entries and relink duplicate / matched ones, and `--apply --remove-suspicious` to also remove suspicious ones; when `--agent` is omitted, print the detected agent set for that scope first |
187
258
  | `aweskill agent recover` | Convert managed symlinks into full directories |
188
- | `aweskill doctor dedupe [--fix] [--delete]` | Find and optionally clean duplicate skills |
189
-
190
- ## Design Choices
259
+ | `aweskill doctor clean [--apply] [--skills-only] [--bundles-only] [--verbose]` | Find suspicious non-store entries, grouped by `skills` and `bundles`, and optionally remove them |
260
+ | `aweskill doctor dedup [--apply] [--delete]` | Find duplicate skills and optionally move or delete them |
191
261
 
192
- ### No global activation file
193
-
194
- `aweskill` treats the projected filesystem state as the truth. This keeps the model simple and avoids a second layer of activation metadata drifting out of sync.
195
-
196
- ### Bundles are expansion sets
197
-
198
- `agent add bundle <name>` expands the bundle into skill names and projects those skills. There is no separate long-lived "bundle activation" object after projection.
199
-
200
- ### Managed-only removal
201
-
202
- `aweskill` removes only entries it can identify as its own managed symlinks. It does not blindly delete arbitrary skill directories.
262
+ </details>
203
263
 
204
- ## Bundle File Format
264
+ ## Built-in Skills
205
265
 
206
- Bundles are plain YAML under `~/.aweskill/bundles/<name>.yaml`:
266
+ `aweskill` ships with three meta-skills that teach AI coding agents how to operate the CLI directly. Import them into your central store so agents like Codex, Claude Code, or Cursor can run aweskill commands without manual steps.
207
267
 
208
- ```yaml
209
- name: frontend
210
- skills:
211
- - pr-review
212
- - frontend-design
268
+ ```bash
269
+ aweskill store import skills/aweskill
270
+ aweskill store import skills/aweskill-advanced
271
+ aweskill store import skills/aweskill-doctor
213
272
  ```
214
273
 
215
- ## Projection Model
216
-
217
- 1. **Central source of truth for skill content**: `~/.aweskill/skills/<skill-name>/`.
218
- 2. **`agent add`** creates, for each selected agent and supported scope, a **symlink** to that directory.
219
- 3. **`agent remove`** removes only entries that are **managed by aweskill**.
220
- 4. **`agent sync`** removes managed projections whose central skill path is missing.
221
-
222
- There is **no** reconcile pass driven by a global YAML activation list.
223
-
224
- Import behavior:
225
-
226
- - Default `skill import --scan` and batch `skill import` merge only missing files when the central skill already exists; `--override` overwrites.
227
- - When the source is a symlink, aweskill copies from the resolved real path and may print a warning.
228
- - Broken symlinks during batch import are reported; other items continue.
229
- - `restore` automatically creates a fresh backup of the current `skills/` tree before applying the archive.
230
-
231
- Display behavior:
232
-
233
- - `skill list` shows totals and a short preview unless `--verbose`.
234
- - `skill scan` shows per-agent totals by default; `--verbose` lists concrete scanned skills.
235
- - `agent list` categorizes `linked`, `duplicate`, and `new`; `--update` imports and relinks where needed.
236
- - `doctor dedupe` treats `name`, `name-2`, and `name-1.2.3` as one duplicate family and only modifies files when `--fix` is passed.
237
-
238
- Projection examples:
239
-
240
- ```bash
241
- # Global projection for one agent
242
- aweskill agent add skill biopython --global --agent codex
274
+ | Skill | Scope | When to use |
275
+ | --- | --- | --- |
276
+ | `aweskill` | Operations | Day-to-day: init, scan, import, list, remove, bundle CRUD, basic agent projection |
277
+ | `aweskill-advanced` | Maintenance | Low-frequency: cross-agent projection strategy, bundle templates, recover flows, multi-scope planning |
278
+ | `aweskill-doctor` | Diagnostics | Repair: `doctor clean`, `doctor dedup`, `doctor sync`, interpreting broken/duplicate/suspicious entries |
243
279
 
244
- # Project-scoped projection for one agent
245
- aweskill agent add skill pr-review --project /path/to/repo --agent cursor
280
+ See [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md) for the skill directory structure and design principles.
246
281
 
247
- # Bundle expansion writes individual managed projections
248
- aweskill agent add bundle backend --global --agent codex
249
- aweskill agent remove bundle backend --global --agent codex
282
+ ## Contributing
250
283
 
251
- # Convert symlink projections into copied directories
252
- aweskill agent recover --global --agent codex
253
- ```
284
+ If you want to contribute, see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md).
254
285
 
255
- ## Templates And Archives
286
+ That file now covers:
256
287
 
257
- Reference bundle templates now live in [resources/bundle_templates/K-Dense-AI-scientific-skills.yaml](/Users/peng/Desktop/Project/aweskills/resources/bundle_templates/K-Dense-AI-scientific-skills.yaml). Runtime bundles still live under `~/.aweskill/bundles/`.
288
+ - design tradeoffs
289
+ - bundle file format
290
+ - projection model
291
+ - built-in skill structure and design principles
292
+ - development workflow and testing expectations
258
293
 
259
- `resources/skill_archives/` is reserved for repository-level `tar.gz` backups that you want to keep in-tree and share with other users. `aweskill` does not generate or restore these archives automatically.
294
+ Documentation, tests, and small focused improvements are all welcome.
260
295
 
261
296
  For a shareable archive collection maintained outside this repository, see [oh-my-skills](https://github.com/mugpeng/oh-my-skills), a separate backup repository for skill bundles and full-snapshot archives.
262
297
 
@@ -337,7 +372,7 @@ If you are exploring the broader skills ecosystem, these projects are worth usin
337
372
  - open skill ecosystem conventions
338
373
  - cross-agent local developer workflow tooling
339
374
 
340
- ## Development
375
+ ## Development Commands
341
376
 
342
377
  ```bash
343
378
  npm install