drskill 0.1.0__py3-none-any.whl
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.
- drskill/__init__.py +0 -0
- drskill/checks/__init__.py +69 -0
- drskill/checks/budget.py +40 -0
- drskill/checks/duplicates.py +103 -0
- drskill/checks/filesystem.py +36 -0
- drskill/checks/lockfile.py +129 -0
- drskill/checks/shadowing.py +64 -0
- drskill/checks/spec.py +108 -0
- drskill/cli.py +182 -0
- drskill/data/__init__.py +0 -0
- drskill/data/harnesses.toml +880 -0
- drskill/discovery.py +96 -0
- drskill/harnesses.py +58 -0
- drskill/ledger.py +79 -0
- drskill/models.py +67 -0
- drskill/pipeline.py +45 -0
- drskill/report.py +124 -0
- drskill/resolution.py +158 -0
- drskill/tokens.py +28 -0
- drskill-0.1.0.dist-info/METADATA +130 -0
- drskill-0.1.0.dist-info/RECORD +24 -0
- drskill-0.1.0.dist-info/WHEEL +4 -0
- drskill-0.1.0.dist-info/entry_points.txt +2 -0
- drskill-0.1.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,880 @@
|
|
|
1
|
+
# Harness definition table.
|
|
2
|
+
# verified = true means these rules were confirmed against the harness's own
|
|
3
|
+
# docs or source. Unverified entries are best effort and labeled so in reports.
|
|
4
|
+
#
|
|
5
|
+
# The entries below marked "vendored" are seeded from the agent -> directory
|
|
6
|
+
# mapping in vercel-labs/skills (MIT license), src/agents.ts, upstream commit
|
|
7
|
+
# 777599e1159e401b11ce4c8a57c20f09a8f1596e (cloned and inspected 2026-07-19).
|
|
8
|
+
# They are best-effort convenience data, not independently confirmed against
|
|
9
|
+
# each harness's own docs or source, and stay verified = false. detect markers
|
|
10
|
+
# are a best-effort simplification of that file's detectInstalled() checks
|
|
11
|
+
# (drskill's detect schema only supports OR'd existence markers, not the
|
|
12
|
+
# compound / cwd+package.json conditions some upstream entries use). Global
|
|
13
|
+
# paths derived from `join(configHome, ...)` assume the XDG default
|
|
14
|
+
# ~/.config since the actual value is environment-dependent upstream.
|
|
15
|
+
|
|
16
|
+
[[harness]]
|
|
17
|
+
id = "claude-code"
|
|
18
|
+
display_name = "Claude Code"
|
|
19
|
+
verified = true
|
|
20
|
+
detect = [".claude", "~/.claude"]
|
|
21
|
+
project_paths = [".claude/skills"]
|
|
22
|
+
global_paths = ["~/.claude/skills"]
|
|
23
|
+
search_order = "project-first"
|
|
24
|
+
recursive = true
|
|
25
|
+
root_md_paths = []
|
|
26
|
+
|
|
27
|
+
# Verified against pi docs (packages/coding-agent/docs/skills.md):
|
|
28
|
+
# global paths load first and first-found wins; bare .md files count as
|
|
29
|
+
# skills only in the two pi-native directories.
|
|
30
|
+
[[harness]]
|
|
31
|
+
id = "pi"
|
|
32
|
+
display_name = "Pi"
|
|
33
|
+
verified = true
|
|
34
|
+
detect = [".pi", "~/.pi"]
|
|
35
|
+
project_paths = [".pi/skills", ".agents/skills"]
|
|
36
|
+
global_paths = ["~/.pi/agent/skills", "~/.agents/skills"]
|
|
37
|
+
search_order = "global-first"
|
|
38
|
+
recursive = true
|
|
39
|
+
root_md_paths = [".pi/skills", "~/.pi/agent/skills"]
|
|
40
|
+
|
|
41
|
+
# Verified against https://cursor.com/docs/skills.md and
|
|
42
|
+
# https://cursor.com/help/customization/skills, 2026-07-19:
|
|
43
|
+
# project dirs are .cursor/skills and .agents/skills; global dirs are
|
|
44
|
+
# ~/.cursor/skills and ~/.agents/skills; discovery is recursive ("Cursor
|
|
45
|
+
# walks the skills root recursively and picks up any SKILL.md it finds"),
|
|
46
|
+
# and nested .cursor/skills folders in monorepo subdirectories are also
|
|
47
|
+
# picked up and scoped to that subtree.
|
|
48
|
+
# NOT verified: which path wins when a project skill and a global skill
|
|
49
|
+
# share a name. Neither page documents precedence/override behavior for
|
|
50
|
+
# that case, so search_order below is the seeded guess, not a confirmed
|
|
51
|
+
# fact -- kept verified = false for the whole entry on that basis.
|
|
52
|
+
[[harness]]
|
|
53
|
+
id = "cursor"
|
|
54
|
+
display_name = "Cursor"
|
|
55
|
+
verified = false
|
|
56
|
+
detect = [".cursor", "~/.cursor"]
|
|
57
|
+
project_paths = [".cursor/skills", ".agents/skills"]
|
|
58
|
+
global_paths = ["~/.cursor/skills", "~/.agents/skills"]
|
|
59
|
+
search_order = "project-first"
|
|
60
|
+
recursive = true
|
|
61
|
+
root_md_paths = []
|
|
62
|
+
|
|
63
|
+
# Verified against source, 2026-07-19: github.com/openai/codex
|
|
64
|
+
# (commit 678157acaa819d5510adfe359abb5d0392cfe461),
|
|
65
|
+
# codex-rs/config/src/state.rs ConfigLayer::config_folder() confirms the
|
|
66
|
+
# project layer folder is literally `.codex/` (dot_codex_folder) and the
|
|
67
|
+
# user layer folder defaults to `~/.codex/`; codex-rs/core-skills/src/
|
|
68
|
+
# loader.rs skill_roots_from_layer_stack_inner() + repo_agents_skill_roots()
|
|
69
|
+
# confirm four roots: project .codex/skills, project .agents/skills (walked
|
|
70
|
+
# from cwd up to the repo root), global ~/.codex/skills (deprecated but
|
|
71
|
+
# still read), and global ~/.agents/skills. codex-rs/core-skills/src/
|
|
72
|
+
# loader/discovery.rs discover_skills() walks each root recursively via
|
|
73
|
+
# ExecutorFileSystem::walk with MAX_SCAN_DEPTH = 6, so recursive = true.
|
|
74
|
+
# Collision handling differs from claude-code/pi: layers are iterated
|
|
75
|
+
# ConfigLayerStackOrdering::HighestPrecedenceFirst (project before user),
|
|
76
|
+
# but codex-rs/core-skills does not remove either skill on a name clash --
|
|
77
|
+
# per developers.openai.com/codex/skills ("If two skills share the same
|
|
78
|
+
# `name`, Codex doesn't merge them; both can appear in skill selectors"),
|
|
79
|
+
# both instances remain visible rather than one shadowing the other.
|
|
80
|
+
# search_order = "project-first" reflects the confirmed scan order (project
|
|
81
|
+
# roots are the higher-precedence layer), not a strict override guarantee.
|
|
82
|
+
# Controller ruling 2026-07-19: kept verified = false despite the above --
|
|
83
|
+
# the brief's bar requires all three facts (dirs, recursion, collision
|
|
84
|
+
# winner) confirmed, and codex's real collision behavior cannot be
|
|
85
|
+
# expressed by our binary search_order. Encoding search_order =
|
|
86
|
+
# "project-first" here is an approximation, not a confirmed winner rule;
|
|
87
|
+
# revisit once the schema supports search_order = "none" for harnesses
|
|
88
|
+
# that don't shadow on name collisions. Paths and recursion above remain
|
|
89
|
+
# source-confirmed.
|
|
90
|
+
[[harness]]
|
|
91
|
+
id = "codex"
|
|
92
|
+
display_name = "Codex CLI"
|
|
93
|
+
verified = false
|
|
94
|
+
detect = [".codex", "~/.codex"]
|
|
95
|
+
project_paths = [".codex/skills", ".agents/skills"]
|
|
96
|
+
global_paths = ["~/.codex/skills", "~/.agents/skills"]
|
|
97
|
+
search_order = "project-first"
|
|
98
|
+
recursive = true
|
|
99
|
+
root_md_paths = []
|
|
100
|
+
|
|
101
|
+
# Verified against https://docs.github.com/en/copilot/concepts/agents/about-agent-skills
|
|
102
|
+
# and https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-skills,
|
|
103
|
+
# 2026-07-19: project dirs are .github/skills, .claude/skills, and
|
|
104
|
+
# .agents/skills; personal/global dirs are ~/.copilot/skills and
|
|
105
|
+
# ~/.agents/skills.
|
|
106
|
+
# NOT verified: GitHub's own docs do not say whether discovery is
|
|
107
|
+
# recursive within a skill directory, and do not state which location
|
|
108
|
+
# wins when a project skill and a personal skill share a name. The CLI
|
|
109
|
+
# is closed source (github/copilot-cli only ships install scripts), so
|
|
110
|
+
# there was no source to check either. Kept verified = false; recursive
|
|
111
|
+
# and search_order below are unconfirmed seed defaults.
|
|
112
|
+
[[harness]]
|
|
113
|
+
id = "copilot"
|
|
114
|
+
display_name = "GitHub Copilot CLI"
|
|
115
|
+
verified = false
|
|
116
|
+
detect = [".github/copilot-instructions.md", "~/.copilot"]
|
|
117
|
+
project_paths = [".github/skills", ".claude/skills", ".agents/skills"]
|
|
118
|
+
global_paths = ["~/.copilot/skills", "~/.agents/skills"]
|
|
119
|
+
search_order = "project-first"
|
|
120
|
+
recursive = true
|
|
121
|
+
root_md_paths = []
|
|
122
|
+
|
|
123
|
+
# Verified against source, 2026-07-19: github.com/google-gemini/gemini-cli
|
|
124
|
+
# (commit acae7124bdd849e554eaa5e090199a0cf08cd782).
|
|
125
|
+
# packages/core/src/config/storage.ts: getUserSkillsDir() = ~/.gemini/skills,
|
|
126
|
+
# getUserAgentSkillsDir() = ~/.agents/skills, getProjectSkillsDir() =
|
|
127
|
+
# <project>/.gemini/skills, getProjectAgentSkillsDir() = <project>/.agents/skills
|
|
128
|
+
# (GEMINI_DIR = '.gemini' in packages/core/src/utils/paths.ts).
|
|
129
|
+
# packages/core/src/skills/skillLoader.ts loadSkillsFromDir() globs only
|
|
130
|
+
# `SKILL.md` and `*/SKILL.md` under each root -- not arbitrarily nested --
|
|
131
|
+
# so recursive = false.
|
|
132
|
+
# packages/core/src/skills/skillManager.ts discoverSkills() loads built-in,
|
|
133
|
+
# then extension, then user (~/.gemini/skills then ~/.agents/skills), then
|
|
134
|
+
# workspace (.gemini/skills then .agents/skills) last; addSkillsWithPrecedence()
|
|
135
|
+
# overwrites same-named entries in a Map, so whatever loads last wins --
|
|
136
|
+
# workspace/project beats user, confirming search_order = "project-first".
|
|
137
|
+
[[harness]]
|
|
138
|
+
id = "gemini-cli"
|
|
139
|
+
display_name = "Gemini CLI"
|
|
140
|
+
verified = true
|
|
141
|
+
detect = [".gemini", "~/.gemini"]
|
|
142
|
+
project_paths = [".gemini/skills", ".agents/skills"]
|
|
143
|
+
global_paths = ["~/.gemini/skills", "~/.agents/skills"]
|
|
144
|
+
search_order = "project-first"
|
|
145
|
+
recursive = false
|
|
146
|
+
root_md_paths = []
|
|
147
|
+
|
|
148
|
+
# --- Vendored from vercel-labs/skills (MIT), commit 777599e1159e401b11ce4c8a57c20f09a8f1596e ---
|
|
149
|
+
# All entries below are verified = false; see header comment for provenance.
|
|
150
|
+
|
|
151
|
+
[[harness]]
|
|
152
|
+
id = "adal"
|
|
153
|
+
display_name = "AdaL"
|
|
154
|
+
verified = false
|
|
155
|
+
detect = ["~/.adal"]
|
|
156
|
+
project_paths = [".adal/skills"]
|
|
157
|
+
global_paths = ["~/.adal/skills"]
|
|
158
|
+
search_order = "project-first"
|
|
159
|
+
recursive = true
|
|
160
|
+
root_md_paths = []
|
|
161
|
+
|
|
162
|
+
[[harness]]
|
|
163
|
+
id = "aider-desk"
|
|
164
|
+
display_name = "AiderDesk"
|
|
165
|
+
verified = false
|
|
166
|
+
detect = ["~/.aider-desk"]
|
|
167
|
+
project_paths = [".aider-desk/skills"]
|
|
168
|
+
global_paths = ["~/.aider-desk/skills"]
|
|
169
|
+
search_order = "project-first"
|
|
170
|
+
recursive = true
|
|
171
|
+
root_md_paths = []
|
|
172
|
+
|
|
173
|
+
[[harness]]
|
|
174
|
+
id = "amp"
|
|
175
|
+
display_name = "Amp"
|
|
176
|
+
verified = false
|
|
177
|
+
detect = ["~/.config/amp"]
|
|
178
|
+
project_paths = [".agents/skills"]
|
|
179
|
+
global_paths = ["~/.config/agents/skills"]
|
|
180
|
+
search_order = "project-first"
|
|
181
|
+
recursive = true
|
|
182
|
+
root_md_paths = []
|
|
183
|
+
|
|
184
|
+
[[harness]]
|
|
185
|
+
id = "antigravity"
|
|
186
|
+
display_name = "Antigravity"
|
|
187
|
+
verified = false
|
|
188
|
+
detect = ["~/.gemini/antigravity"]
|
|
189
|
+
project_paths = [".agents/skills"]
|
|
190
|
+
global_paths = ["~/.gemini/antigravity/skills"]
|
|
191
|
+
search_order = "project-first"
|
|
192
|
+
recursive = true
|
|
193
|
+
root_md_paths = []
|
|
194
|
+
|
|
195
|
+
[[harness]]
|
|
196
|
+
id = "antigravity-cli"
|
|
197
|
+
display_name = "Antigravity CLI"
|
|
198
|
+
verified = false
|
|
199
|
+
detect = ["~/.gemini/antigravity-cli"]
|
|
200
|
+
project_paths = [".agents/skills"]
|
|
201
|
+
global_paths = ["~/.gemini/antigravity-cli/skills"]
|
|
202
|
+
search_order = "project-first"
|
|
203
|
+
recursive = true
|
|
204
|
+
root_md_paths = []
|
|
205
|
+
|
|
206
|
+
[[harness]]
|
|
207
|
+
id = "astrbot"
|
|
208
|
+
display_name = "AstrBot"
|
|
209
|
+
verified = false
|
|
210
|
+
detect = ["~/.astrbot", "data/skills"]
|
|
211
|
+
project_paths = ["data/skills"]
|
|
212
|
+
global_paths = ["~/.astrbot/data/skills"]
|
|
213
|
+
search_order = "project-first"
|
|
214
|
+
recursive = true
|
|
215
|
+
root_md_paths = []
|
|
216
|
+
|
|
217
|
+
[[harness]]
|
|
218
|
+
id = "augment"
|
|
219
|
+
display_name = "Augment"
|
|
220
|
+
verified = false
|
|
221
|
+
detect = ["~/.augment"]
|
|
222
|
+
project_paths = [".augment/skills"]
|
|
223
|
+
global_paths = ["~/.augment/skills"]
|
|
224
|
+
search_order = "project-first"
|
|
225
|
+
recursive = true
|
|
226
|
+
root_md_paths = []
|
|
227
|
+
|
|
228
|
+
[[harness]]
|
|
229
|
+
id = "autohand-code"
|
|
230
|
+
display_name = "Autohand Code CLI"
|
|
231
|
+
verified = false
|
|
232
|
+
detect = ["~/.autohand"]
|
|
233
|
+
project_paths = [".autohand/skills"]
|
|
234
|
+
global_paths = ["~/.autohand/skills"]
|
|
235
|
+
search_order = "project-first"
|
|
236
|
+
recursive = true
|
|
237
|
+
root_md_paths = []
|
|
238
|
+
|
|
239
|
+
[[harness]]
|
|
240
|
+
id = "bob"
|
|
241
|
+
display_name = "IBM Bob"
|
|
242
|
+
verified = false
|
|
243
|
+
detect = ["~/.bob"]
|
|
244
|
+
project_paths = [".bob/skills"]
|
|
245
|
+
global_paths = ["~/.bob/skills"]
|
|
246
|
+
search_order = "project-first"
|
|
247
|
+
recursive = true
|
|
248
|
+
root_md_paths = []
|
|
249
|
+
|
|
250
|
+
[[harness]]
|
|
251
|
+
id = "cline"
|
|
252
|
+
display_name = "Cline"
|
|
253
|
+
verified = false
|
|
254
|
+
detect = ["~/.cline"]
|
|
255
|
+
project_paths = [".agents/skills"]
|
|
256
|
+
global_paths = ["~/.agents/skills"]
|
|
257
|
+
search_order = "project-first"
|
|
258
|
+
recursive = true
|
|
259
|
+
root_md_paths = []
|
|
260
|
+
|
|
261
|
+
[[harness]]
|
|
262
|
+
id = "codearts-agent"
|
|
263
|
+
display_name = "CodeArts Agent"
|
|
264
|
+
verified = false
|
|
265
|
+
detect = ["~/.codeartsdoer"]
|
|
266
|
+
project_paths = [".codeartsdoer/skills"]
|
|
267
|
+
global_paths = ["~/.codeartsdoer/skills"]
|
|
268
|
+
search_order = "project-first"
|
|
269
|
+
recursive = true
|
|
270
|
+
root_md_paths = []
|
|
271
|
+
|
|
272
|
+
[[harness]]
|
|
273
|
+
id = "codebuddy"
|
|
274
|
+
display_name = "CodeBuddy"
|
|
275
|
+
verified = false
|
|
276
|
+
detect = ["~/.codebuddy", ".codebuddy"]
|
|
277
|
+
project_paths = [".codebuddy/skills"]
|
|
278
|
+
global_paths = ["~/.codebuddy/skills"]
|
|
279
|
+
search_order = "project-first"
|
|
280
|
+
recursive = true
|
|
281
|
+
root_md_paths = []
|
|
282
|
+
|
|
283
|
+
[[harness]]
|
|
284
|
+
id = "codemaker"
|
|
285
|
+
display_name = "Codemaker"
|
|
286
|
+
verified = false
|
|
287
|
+
detect = ["~/.codemaker"]
|
|
288
|
+
project_paths = [".codemaker/skills"]
|
|
289
|
+
global_paths = ["~/.codemaker/skills"]
|
|
290
|
+
search_order = "project-first"
|
|
291
|
+
recursive = true
|
|
292
|
+
root_md_paths = []
|
|
293
|
+
|
|
294
|
+
[[harness]]
|
|
295
|
+
id = "codestudio"
|
|
296
|
+
display_name = "Code Studio"
|
|
297
|
+
verified = false
|
|
298
|
+
detect = ["~/.codestudio"]
|
|
299
|
+
project_paths = [".codestudio/skills"]
|
|
300
|
+
global_paths = ["~/.codestudio/skills"]
|
|
301
|
+
search_order = "project-first"
|
|
302
|
+
recursive = true
|
|
303
|
+
root_md_paths = []
|
|
304
|
+
|
|
305
|
+
[[harness]]
|
|
306
|
+
id = "command-code"
|
|
307
|
+
display_name = "Command Code"
|
|
308
|
+
verified = false
|
|
309
|
+
detect = ["~/.commandcode"]
|
|
310
|
+
project_paths = [".commandcode/skills"]
|
|
311
|
+
global_paths = ["~/.commandcode/skills"]
|
|
312
|
+
search_order = "project-first"
|
|
313
|
+
recursive = true
|
|
314
|
+
root_md_paths = []
|
|
315
|
+
|
|
316
|
+
[[harness]]
|
|
317
|
+
id = "continue"
|
|
318
|
+
display_name = "Continue"
|
|
319
|
+
verified = false
|
|
320
|
+
detect = ["~/.continue", ".continue"]
|
|
321
|
+
project_paths = [".continue/skills"]
|
|
322
|
+
global_paths = ["~/.continue/skills"]
|
|
323
|
+
search_order = "project-first"
|
|
324
|
+
recursive = true
|
|
325
|
+
root_md_paths = []
|
|
326
|
+
|
|
327
|
+
[[harness]]
|
|
328
|
+
id = "cortex"
|
|
329
|
+
display_name = "Cortex Code"
|
|
330
|
+
verified = false
|
|
331
|
+
detect = ["~/.snowflake/cortex"]
|
|
332
|
+
project_paths = [".cortex/skills"]
|
|
333
|
+
global_paths = ["~/.snowflake/cortex/skills"]
|
|
334
|
+
search_order = "project-first"
|
|
335
|
+
recursive = true
|
|
336
|
+
root_md_paths = []
|
|
337
|
+
|
|
338
|
+
[[harness]]
|
|
339
|
+
id = "crush"
|
|
340
|
+
display_name = "Crush"
|
|
341
|
+
verified = false
|
|
342
|
+
detect = ["~/.config/crush"]
|
|
343
|
+
project_paths = [".crush/skills"]
|
|
344
|
+
global_paths = ["~/.config/crush/skills"]
|
|
345
|
+
search_order = "project-first"
|
|
346
|
+
recursive = true
|
|
347
|
+
root_md_paths = []
|
|
348
|
+
|
|
349
|
+
[[harness]]
|
|
350
|
+
id = "deepagents"
|
|
351
|
+
display_name = "Deep Agents"
|
|
352
|
+
verified = false
|
|
353
|
+
detect = ["~/.deepagents"]
|
|
354
|
+
project_paths = [".agents/skills"]
|
|
355
|
+
global_paths = ["~/.deepagents/agent/skills"]
|
|
356
|
+
search_order = "project-first"
|
|
357
|
+
recursive = true
|
|
358
|
+
root_md_paths = []
|
|
359
|
+
|
|
360
|
+
[[harness]]
|
|
361
|
+
id = "devin"
|
|
362
|
+
display_name = "Devin for Terminal"
|
|
363
|
+
verified = false
|
|
364
|
+
detect = ["~/.config/devin"]
|
|
365
|
+
project_paths = [".devin/skills"]
|
|
366
|
+
global_paths = ["~/.config/devin/skills"]
|
|
367
|
+
search_order = "project-first"
|
|
368
|
+
recursive = true
|
|
369
|
+
root_md_paths = []
|
|
370
|
+
|
|
371
|
+
[[harness]]
|
|
372
|
+
id = "dexto"
|
|
373
|
+
display_name = "Dexto"
|
|
374
|
+
verified = false
|
|
375
|
+
detect = ["~/.dexto"]
|
|
376
|
+
project_paths = [".agents/skills"]
|
|
377
|
+
global_paths = ["~/.agents/skills"]
|
|
378
|
+
search_order = "project-first"
|
|
379
|
+
recursive = true
|
|
380
|
+
root_md_paths = []
|
|
381
|
+
|
|
382
|
+
[[harness]]
|
|
383
|
+
id = "droid"
|
|
384
|
+
display_name = "Droid"
|
|
385
|
+
verified = false
|
|
386
|
+
detect = ["~/.factory"]
|
|
387
|
+
project_paths = [".factory/skills"]
|
|
388
|
+
global_paths = ["~/.factory/skills"]
|
|
389
|
+
search_order = "project-first"
|
|
390
|
+
recursive = true
|
|
391
|
+
root_md_paths = []
|
|
392
|
+
|
|
393
|
+
[[harness]]
|
|
394
|
+
id = "eve"
|
|
395
|
+
display_name = "Eve"
|
|
396
|
+
verified = false
|
|
397
|
+
detect = ["agent"]
|
|
398
|
+
project_paths = ["agent/skills"]
|
|
399
|
+
global_paths = []
|
|
400
|
+
search_order = "project-first"
|
|
401
|
+
recursive = true
|
|
402
|
+
root_md_paths = []
|
|
403
|
+
|
|
404
|
+
[[harness]]
|
|
405
|
+
id = "firebender"
|
|
406
|
+
display_name = "Firebender"
|
|
407
|
+
verified = false
|
|
408
|
+
detect = ["~/.firebender"]
|
|
409
|
+
project_paths = [".agents/skills"]
|
|
410
|
+
global_paths = ["~/.firebender/skills"]
|
|
411
|
+
search_order = "project-first"
|
|
412
|
+
recursive = true
|
|
413
|
+
root_md_paths = []
|
|
414
|
+
|
|
415
|
+
[[harness]]
|
|
416
|
+
id = "forgecode"
|
|
417
|
+
display_name = "ForgeCode"
|
|
418
|
+
verified = false
|
|
419
|
+
detect = ["~/.forge"]
|
|
420
|
+
project_paths = [".forge/skills"]
|
|
421
|
+
global_paths = ["~/.forge/skills"]
|
|
422
|
+
search_order = "project-first"
|
|
423
|
+
recursive = true
|
|
424
|
+
root_md_paths = []
|
|
425
|
+
|
|
426
|
+
[[harness]]
|
|
427
|
+
id = "goose"
|
|
428
|
+
display_name = "Goose"
|
|
429
|
+
verified = false
|
|
430
|
+
detect = ["~/.config/goose"]
|
|
431
|
+
project_paths = [".goose/skills"]
|
|
432
|
+
global_paths = ["~/.config/goose/skills"]
|
|
433
|
+
search_order = "project-first"
|
|
434
|
+
recursive = true
|
|
435
|
+
root_md_paths = []
|
|
436
|
+
|
|
437
|
+
[[harness]]
|
|
438
|
+
id = "hermes-agent"
|
|
439
|
+
display_name = "Hermes Agent"
|
|
440
|
+
verified = false
|
|
441
|
+
detect = ["~/.hermes"]
|
|
442
|
+
project_paths = [".hermes/skills"]
|
|
443
|
+
global_paths = ["~/.hermes/skills"]
|
|
444
|
+
search_order = "project-first"
|
|
445
|
+
recursive = true
|
|
446
|
+
root_md_paths = []
|
|
447
|
+
|
|
448
|
+
[[harness]]
|
|
449
|
+
id = "iflow-cli"
|
|
450
|
+
display_name = "iFlow CLI"
|
|
451
|
+
verified = false
|
|
452
|
+
detect = ["~/.iflow"]
|
|
453
|
+
project_paths = [".iflow/skills"]
|
|
454
|
+
global_paths = ["~/.iflow/skills"]
|
|
455
|
+
search_order = "project-first"
|
|
456
|
+
recursive = true
|
|
457
|
+
root_md_paths = []
|
|
458
|
+
|
|
459
|
+
[[harness]]
|
|
460
|
+
id = "inference-sh"
|
|
461
|
+
display_name = "inference.sh"
|
|
462
|
+
verified = false
|
|
463
|
+
detect = ["~/.inferencesh"]
|
|
464
|
+
project_paths = [".inferencesh/skills"]
|
|
465
|
+
global_paths = ["~/.inferencesh/skills"]
|
|
466
|
+
search_order = "project-first"
|
|
467
|
+
recursive = true
|
|
468
|
+
root_md_paths = []
|
|
469
|
+
|
|
470
|
+
[[harness]]
|
|
471
|
+
id = "jazz"
|
|
472
|
+
display_name = "Jazz"
|
|
473
|
+
verified = false
|
|
474
|
+
detect = ["~/.jazz", ".jazz"]
|
|
475
|
+
project_paths = [".jazz/skills"]
|
|
476
|
+
global_paths = ["~/.jazz/skills"]
|
|
477
|
+
search_order = "project-first"
|
|
478
|
+
recursive = true
|
|
479
|
+
root_md_paths = []
|
|
480
|
+
|
|
481
|
+
[[harness]]
|
|
482
|
+
id = "junie"
|
|
483
|
+
display_name = "Junie"
|
|
484
|
+
verified = false
|
|
485
|
+
detect = ["~/.junie"]
|
|
486
|
+
project_paths = [".junie/skills"]
|
|
487
|
+
global_paths = ["~/.junie/skills"]
|
|
488
|
+
search_order = "project-first"
|
|
489
|
+
recursive = true
|
|
490
|
+
root_md_paths = []
|
|
491
|
+
|
|
492
|
+
[[harness]]
|
|
493
|
+
id = "kilo"
|
|
494
|
+
display_name = "Kilo Code"
|
|
495
|
+
verified = false
|
|
496
|
+
detect = ["~/.kilocode"]
|
|
497
|
+
project_paths = [".kilocode/skills"]
|
|
498
|
+
global_paths = ["~/.kilocode/skills"]
|
|
499
|
+
search_order = "project-first"
|
|
500
|
+
recursive = true
|
|
501
|
+
root_md_paths = []
|
|
502
|
+
|
|
503
|
+
[[harness]]
|
|
504
|
+
id = "kimi-code-cli"
|
|
505
|
+
display_name = "Kimi Code CLI"
|
|
506
|
+
verified = false
|
|
507
|
+
detect = ["~/.kimi-code", "~/.kimi"]
|
|
508
|
+
project_paths = [".agents/skills"]
|
|
509
|
+
global_paths = ["~/.agents/skills"]
|
|
510
|
+
search_order = "project-first"
|
|
511
|
+
recursive = true
|
|
512
|
+
root_md_paths = []
|
|
513
|
+
|
|
514
|
+
[[harness]]
|
|
515
|
+
id = "kiro-cli"
|
|
516
|
+
display_name = "Kiro CLI"
|
|
517
|
+
verified = false
|
|
518
|
+
detect = ["~/.kiro"]
|
|
519
|
+
project_paths = [".kiro/skills"]
|
|
520
|
+
global_paths = ["~/.kiro/skills"]
|
|
521
|
+
search_order = "project-first"
|
|
522
|
+
recursive = true
|
|
523
|
+
root_md_paths = []
|
|
524
|
+
|
|
525
|
+
[[harness]]
|
|
526
|
+
id = "kode"
|
|
527
|
+
display_name = "Kode"
|
|
528
|
+
verified = false
|
|
529
|
+
detect = ["~/.kode"]
|
|
530
|
+
project_paths = [".kode/skills"]
|
|
531
|
+
global_paths = ["~/.kode/skills"]
|
|
532
|
+
search_order = "project-first"
|
|
533
|
+
recursive = true
|
|
534
|
+
root_md_paths = []
|
|
535
|
+
|
|
536
|
+
[[harness]]
|
|
537
|
+
id = "lingma"
|
|
538
|
+
display_name = "Lingma"
|
|
539
|
+
verified = false
|
|
540
|
+
detect = ["~/.lingma"]
|
|
541
|
+
project_paths = [".lingma/skills"]
|
|
542
|
+
global_paths = ["~/.lingma/skills"]
|
|
543
|
+
search_order = "project-first"
|
|
544
|
+
recursive = true
|
|
545
|
+
root_md_paths = []
|
|
546
|
+
|
|
547
|
+
[[harness]]
|
|
548
|
+
id = "loaf"
|
|
549
|
+
display_name = "Loaf"
|
|
550
|
+
verified = false
|
|
551
|
+
detect = ["~/.loaf"]
|
|
552
|
+
project_paths = [".agents/skills"]
|
|
553
|
+
global_paths = ["~/.agents/skills"]
|
|
554
|
+
search_order = "project-first"
|
|
555
|
+
recursive = true
|
|
556
|
+
root_md_paths = []
|
|
557
|
+
|
|
558
|
+
[[harness]]
|
|
559
|
+
id = "mcpjam"
|
|
560
|
+
display_name = "MCPJam"
|
|
561
|
+
verified = false
|
|
562
|
+
detect = ["~/.mcpjam"]
|
|
563
|
+
project_paths = [".mcpjam/skills"]
|
|
564
|
+
global_paths = ["~/.mcpjam/skills"]
|
|
565
|
+
search_order = "project-first"
|
|
566
|
+
recursive = true
|
|
567
|
+
root_md_paths = []
|
|
568
|
+
|
|
569
|
+
[[harness]]
|
|
570
|
+
id = "mistral-vibe"
|
|
571
|
+
display_name = "Mistral Vibe"
|
|
572
|
+
verified = false
|
|
573
|
+
detect = ["~/.vibe"]
|
|
574
|
+
project_paths = [".vibe/skills"]
|
|
575
|
+
global_paths = ["~/.vibe/skills"]
|
|
576
|
+
search_order = "project-first"
|
|
577
|
+
recursive = true
|
|
578
|
+
root_md_paths = []
|
|
579
|
+
|
|
580
|
+
[[harness]]
|
|
581
|
+
id = "moxby"
|
|
582
|
+
display_name = "Moxby"
|
|
583
|
+
verified = false
|
|
584
|
+
detect = ["~/.moxby"]
|
|
585
|
+
project_paths = [".moxby/skills"]
|
|
586
|
+
global_paths = ["~/.moxby/skills"]
|
|
587
|
+
search_order = "project-first"
|
|
588
|
+
recursive = true
|
|
589
|
+
root_md_paths = []
|
|
590
|
+
|
|
591
|
+
[[harness]]
|
|
592
|
+
id = "mux"
|
|
593
|
+
display_name = "Mux"
|
|
594
|
+
verified = false
|
|
595
|
+
detect = ["~/.mux"]
|
|
596
|
+
project_paths = [".mux/skills"]
|
|
597
|
+
global_paths = ["~/.mux/skills"]
|
|
598
|
+
search_order = "project-first"
|
|
599
|
+
recursive = true
|
|
600
|
+
root_md_paths = []
|
|
601
|
+
|
|
602
|
+
[[harness]]
|
|
603
|
+
id = "neovate"
|
|
604
|
+
display_name = "Neovate"
|
|
605
|
+
verified = false
|
|
606
|
+
detect = ["~/.neovate"]
|
|
607
|
+
project_paths = [".neovate/skills"]
|
|
608
|
+
global_paths = ["~/.neovate/skills"]
|
|
609
|
+
search_order = "project-first"
|
|
610
|
+
recursive = true
|
|
611
|
+
root_md_paths = []
|
|
612
|
+
|
|
613
|
+
[[harness]]
|
|
614
|
+
id = "ona"
|
|
615
|
+
display_name = "Ona"
|
|
616
|
+
verified = false
|
|
617
|
+
detect = ["~/.ona"]
|
|
618
|
+
project_paths = [".ona/skills"]
|
|
619
|
+
global_paths = ["~/.ona/skills"]
|
|
620
|
+
search_order = "project-first"
|
|
621
|
+
recursive = true
|
|
622
|
+
root_md_paths = []
|
|
623
|
+
|
|
624
|
+
[[harness]]
|
|
625
|
+
id = "openclaw"
|
|
626
|
+
display_name = "OpenClaw"
|
|
627
|
+
verified = false
|
|
628
|
+
detect = ["~/.openclaw", "~/.clawdbot", "~/.moltbot"]
|
|
629
|
+
project_paths = ["skills"]
|
|
630
|
+
global_paths = ["~/.openclaw/skills"]
|
|
631
|
+
search_order = "project-first"
|
|
632
|
+
recursive = true
|
|
633
|
+
root_md_paths = []
|
|
634
|
+
|
|
635
|
+
[[harness]]
|
|
636
|
+
id = "opencode"
|
|
637
|
+
display_name = "OpenCode"
|
|
638
|
+
verified = false
|
|
639
|
+
detect = ["~/.config/opencode"]
|
|
640
|
+
project_paths = [".agents/skills"]
|
|
641
|
+
global_paths = ["~/.config/opencode/skills"]
|
|
642
|
+
search_order = "project-first"
|
|
643
|
+
recursive = true
|
|
644
|
+
root_md_paths = []
|
|
645
|
+
|
|
646
|
+
[[harness]]
|
|
647
|
+
id = "openhands"
|
|
648
|
+
display_name = "OpenHands"
|
|
649
|
+
verified = false
|
|
650
|
+
detect = ["~/.openhands"]
|
|
651
|
+
project_paths = [".openhands/skills"]
|
|
652
|
+
global_paths = ["~/.openhands/skills"]
|
|
653
|
+
search_order = "project-first"
|
|
654
|
+
recursive = true
|
|
655
|
+
root_md_paths = []
|
|
656
|
+
|
|
657
|
+
[[harness]]
|
|
658
|
+
id = "pochi"
|
|
659
|
+
display_name = "Pochi"
|
|
660
|
+
verified = false
|
|
661
|
+
detect = ["~/.pochi"]
|
|
662
|
+
project_paths = [".pochi/skills"]
|
|
663
|
+
global_paths = ["~/.pochi/skills"]
|
|
664
|
+
search_order = "project-first"
|
|
665
|
+
recursive = true
|
|
666
|
+
root_md_paths = []
|
|
667
|
+
|
|
668
|
+
[[harness]]
|
|
669
|
+
id = "promptscript"
|
|
670
|
+
display_name = "PromptScript"
|
|
671
|
+
verified = false
|
|
672
|
+
detect = [".promptscript", "promptscript.yaml"]
|
|
673
|
+
project_paths = [".agents/skills"]
|
|
674
|
+
global_paths = []
|
|
675
|
+
search_order = "project-first"
|
|
676
|
+
recursive = true
|
|
677
|
+
root_md_paths = []
|
|
678
|
+
|
|
679
|
+
[[harness]]
|
|
680
|
+
id = "qoder"
|
|
681
|
+
display_name = "Qoder"
|
|
682
|
+
verified = false
|
|
683
|
+
detect = ["~/.qoder"]
|
|
684
|
+
project_paths = [".qoder/skills"]
|
|
685
|
+
global_paths = ["~/.qoder/skills"]
|
|
686
|
+
search_order = "project-first"
|
|
687
|
+
recursive = true
|
|
688
|
+
root_md_paths = []
|
|
689
|
+
|
|
690
|
+
[[harness]]
|
|
691
|
+
id = "qoder-cn"
|
|
692
|
+
display_name = "Qoder CN"
|
|
693
|
+
verified = false
|
|
694
|
+
detect = ["~/.qoder-cn"]
|
|
695
|
+
project_paths = [".qoder/skills"]
|
|
696
|
+
global_paths = ["~/.qoder-cn/skills"]
|
|
697
|
+
search_order = "project-first"
|
|
698
|
+
recursive = true
|
|
699
|
+
root_md_paths = []
|
|
700
|
+
|
|
701
|
+
[[harness]]
|
|
702
|
+
id = "qwen-code"
|
|
703
|
+
display_name = "Qwen Code"
|
|
704
|
+
verified = false
|
|
705
|
+
detect = ["~/.qwen"]
|
|
706
|
+
project_paths = [".qwen/skills"]
|
|
707
|
+
global_paths = ["~/.qwen/skills"]
|
|
708
|
+
search_order = "project-first"
|
|
709
|
+
recursive = true
|
|
710
|
+
root_md_paths = []
|
|
711
|
+
|
|
712
|
+
[[harness]]
|
|
713
|
+
id = "reasonix"
|
|
714
|
+
display_name = "Reasonix"
|
|
715
|
+
verified = false
|
|
716
|
+
detect = ["~/.reasonix"]
|
|
717
|
+
project_paths = [".reasonix/skills"]
|
|
718
|
+
global_paths = ["~/.reasonix/skills"]
|
|
719
|
+
search_order = "project-first"
|
|
720
|
+
recursive = true
|
|
721
|
+
root_md_paths = []
|
|
722
|
+
|
|
723
|
+
[[harness]]
|
|
724
|
+
id = "replit"
|
|
725
|
+
display_name = "Replit"
|
|
726
|
+
verified = false
|
|
727
|
+
detect = [".replit"]
|
|
728
|
+
project_paths = [".agents/skills"]
|
|
729
|
+
global_paths = ["~/.config/agents/skills"]
|
|
730
|
+
search_order = "project-first"
|
|
731
|
+
recursive = true
|
|
732
|
+
root_md_paths = []
|
|
733
|
+
|
|
734
|
+
[[harness]]
|
|
735
|
+
id = "roo"
|
|
736
|
+
display_name = "Roo Code"
|
|
737
|
+
verified = false
|
|
738
|
+
detect = ["~/.roo"]
|
|
739
|
+
project_paths = [".roo/skills"]
|
|
740
|
+
global_paths = ["~/.roo/skills"]
|
|
741
|
+
search_order = "project-first"
|
|
742
|
+
recursive = true
|
|
743
|
+
root_md_paths = []
|
|
744
|
+
|
|
745
|
+
[[harness]]
|
|
746
|
+
id = "rovodev"
|
|
747
|
+
display_name = "Rovo Dev"
|
|
748
|
+
verified = false
|
|
749
|
+
detect = ["~/.rovodev"]
|
|
750
|
+
project_paths = [".rovodev/skills"]
|
|
751
|
+
global_paths = ["~/.rovodev/skills"]
|
|
752
|
+
search_order = "project-first"
|
|
753
|
+
recursive = true
|
|
754
|
+
root_md_paths = []
|
|
755
|
+
|
|
756
|
+
[[harness]]
|
|
757
|
+
id = "tabnine-cli"
|
|
758
|
+
display_name = "Tabnine CLI"
|
|
759
|
+
verified = false
|
|
760
|
+
detect = ["~/.tabnine"]
|
|
761
|
+
project_paths = [".tabnine/agent/skills"]
|
|
762
|
+
global_paths = ["~/.tabnine/agent/skills"]
|
|
763
|
+
search_order = "project-first"
|
|
764
|
+
recursive = true
|
|
765
|
+
root_md_paths = []
|
|
766
|
+
|
|
767
|
+
[[harness]]
|
|
768
|
+
id = "terramind"
|
|
769
|
+
display_name = "Terramind"
|
|
770
|
+
verified = false
|
|
771
|
+
detect = ["~/.terramind"]
|
|
772
|
+
project_paths = [".terramind/skills"]
|
|
773
|
+
global_paths = ["~/.terramind/skills"]
|
|
774
|
+
search_order = "project-first"
|
|
775
|
+
recursive = true
|
|
776
|
+
root_md_paths = []
|
|
777
|
+
|
|
778
|
+
[[harness]]
|
|
779
|
+
id = "tinycloud"
|
|
780
|
+
display_name = "Tinycloud"
|
|
781
|
+
verified = false
|
|
782
|
+
detect = ["~/.tinycloud"]
|
|
783
|
+
project_paths = [".tinycloud/skills"]
|
|
784
|
+
global_paths = ["~/.tinycloud/skills"]
|
|
785
|
+
search_order = "project-first"
|
|
786
|
+
recursive = true
|
|
787
|
+
root_md_paths = []
|
|
788
|
+
|
|
789
|
+
[[harness]]
|
|
790
|
+
id = "trae"
|
|
791
|
+
display_name = "Trae"
|
|
792
|
+
verified = false
|
|
793
|
+
detect = ["~/.trae"]
|
|
794
|
+
project_paths = [".trae/skills"]
|
|
795
|
+
global_paths = ["~/.trae/skills"]
|
|
796
|
+
search_order = "project-first"
|
|
797
|
+
recursive = true
|
|
798
|
+
root_md_paths = []
|
|
799
|
+
|
|
800
|
+
[[harness]]
|
|
801
|
+
id = "trae-cn"
|
|
802
|
+
display_name = "Trae CN"
|
|
803
|
+
verified = false
|
|
804
|
+
detect = ["~/.trae-cn"]
|
|
805
|
+
project_paths = [".trae/skills"]
|
|
806
|
+
global_paths = ["~/.trae-cn/skills"]
|
|
807
|
+
search_order = "project-first"
|
|
808
|
+
recursive = true
|
|
809
|
+
root_md_paths = []
|
|
810
|
+
|
|
811
|
+
[[harness]]
|
|
812
|
+
id = "warp"
|
|
813
|
+
display_name = "Warp"
|
|
814
|
+
verified = false
|
|
815
|
+
detect = ["~/.warp"]
|
|
816
|
+
project_paths = [".agents/skills"]
|
|
817
|
+
global_paths = ["~/.agents/skills"]
|
|
818
|
+
search_order = "project-first"
|
|
819
|
+
recursive = true
|
|
820
|
+
root_md_paths = []
|
|
821
|
+
|
|
822
|
+
[[harness]]
|
|
823
|
+
id = "windsurf"
|
|
824
|
+
display_name = "Windsurf"
|
|
825
|
+
verified = false
|
|
826
|
+
detect = ["~/.codeium/windsurf"]
|
|
827
|
+
project_paths = [".windsurf/skills"]
|
|
828
|
+
global_paths = ["~/.codeium/windsurf/skills"]
|
|
829
|
+
search_order = "project-first"
|
|
830
|
+
recursive = true
|
|
831
|
+
root_md_paths = []
|
|
832
|
+
|
|
833
|
+
[[harness]]
|
|
834
|
+
id = "zcode"
|
|
835
|
+
display_name = "ZCode"
|
|
836
|
+
verified = false
|
|
837
|
+
detect = ["~/.zcode"]
|
|
838
|
+
project_paths = [".zcode/skills"]
|
|
839
|
+
global_paths = ["~/.zcode/skills"]
|
|
840
|
+
search_order = "project-first"
|
|
841
|
+
recursive = true
|
|
842
|
+
root_md_paths = []
|
|
843
|
+
|
|
844
|
+
[[harness]]
|
|
845
|
+
id = "zed"
|
|
846
|
+
display_name = "Zed"
|
|
847
|
+
verified = false
|
|
848
|
+
detect = ["~/.config/zed"]
|
|
849
|
+
project_paths = [".agents/skills"]
|
|
850
|
+
global_paths = ["~/.agents/skills"]
|
|
851
|
+
search_order = "project-first"
|
|
852
|
+
recursive = true
|
|
853
|
+
root_md_paths = []
|
|
854
|
+
|
|
855
|
+
[[harness]]
|
|
856
|
+
id = "zencoder"
|
|
857
|
+
display_name = "Zencoder"
|
|
858
|
+
verified = false
|
|
859
|
+
detect = ["~/.zencoder"]
|
|
860
|
+
project_paths = [".zencoder/skills"]
|
|
861
|
+
global_paths = ["~/.zencoder/skills"]
|
|
862
|
+
search_order = "project-first"
|
|
863
|
+
recursive = true
|
|
864
|
+
root_md_paths = []
|
|
865
|
+
|
|
866
|
+
# zenflow genuinely shares .zencoder dirs with the zencoder entry above in
|
|
867
|
+
# upstream vercel-labs/skills src/agents.ts lines 675-683 (zenflow's
|
|
868
|
+
# skillsDir/globalSkillsDir/detectInstalled are byte-identical to
|
|
869
|
+
# zencoder's) -- not an extraction slip, re-checked against the scratch
|
|
870
|
+
# clone 2026-07-19.
|
|
871
|
+
[[harness]]
|
|
872
|
+
id = "zenflow"
|
|
873
|
+
display_name = "Zenflow"
|
|
874
|
+
verified = false
|
|
875
|
+
detect = ["~/.zencoder"]
|
|
876
|
+
project_paths = [".zencoder/skills"]
|
|
877
|
+
global_paths = ["~/.zencoder/skills"]
|
|
878
|
+
search_order = "project-first"
|
|
879
|
+
recursive = true
|
|
880
|
+
root_md_paths = []
|