@arp-protocol/cli 0.0.1 → 0.0.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/CHANGELOG.md +74 -0
- package/LICENSE +26 -0
- package/README.md +19 -8
- package/dist/chunks/backfill-awengrsd.js +1048 -0
- package/dist/chunks/{ccip-qmytgn8e.js → ccip-zxtpc4fx.js} +4 -4
- package/dist/chunks/cli-00qp1sj2.js +116 -0
- package/dist/chunks/{cli-c8568g4c.js → cli-0gsbnq5w.js} +72 -72
- package/dist/chunks/{cli-0z6f3603.js → cli-10wacn76.js} +229 -15
- package/dist/chunks/{cli-zpft011j.js → cli-64fx73kx.js} +3 -3
- package/dist/chunks/{cli-v446mw5v.js → cli-fbwpcfvp.js} +34 -34
- package/dist/chunks/{cli-0hqxver6.js → cli-mhzh9z8k.js} +33 -33
- package/dist/chunks/{cli-tyey74p3.js → cli-n4qagybd.js} +6 -2
- package/dist/chunks/{cli-74hv4etk.js → cli-wev0jgf7.js} +4801 -3898
- package/dist/chunks/{commands-dnk10vze.js → commands-157bms70.js} +77 -16
- package/dist/chunks/{env-s4585w6j.js → env-n5ac8d1z.js} +1 -0
- package/dist/chunks/{index-3a3ssef1.js → index-jrs2shcc.js} +3 -3
- package/dist/chunks/line-691gbaha.js +166 -0
- package/dist/chunks/{node-init-4v2m2vj0.js → node-init-rcepfyeh.js} +6 -6
- package/dist/chunks/{node-0ydee9hy.js → node-m0mx4y5k.js} +6 -6
- package/dist/chunks/{server-jmyjttvv.js → server-59zry2jp.js} +3817 -163
- package/dist/chunks/{share-g8v5qe6r.js → share-vtbkzs5f.js} +8 -5
- package/dist/cli.js +48 -19
- package/dist/hook.js +3542 -232
- package/package.json +10 -3
- package/dist/chunks/backfill-j4hxt1w1.js +0 -262
- package/dist/chunks/line-zy1tc2np.js +0 -45
|
@@ -0,0 +1,1048 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
domain_aliases_default
|
|
4
|
+
} from "./cli-00qp1sj2.js";
|
|
5
|
+
import {
|
|
6
|
+
readRequires
|
|
7
|
+
} from "./cli-wev0jgf7.js";
|
|
8
|
+
import"./cli-0gsbnq5w.js";
|
|
9
|
+
import"./cli-fbwpcfvp.js";
|
|
10
|
+
import"./cli-mhzh9z8k.js";
|
|
11
|
+
import"./cli-d3dy7cxe.js";
|
|
12
|
+
import"./cli-3kbbwfbp.js";
|
|
13
|
+
import"./cli-g5zvr10v.js";
|
|
14
|
+
|
|
15
|
+
// ../hook/src/backfill.ts
|
|
16
|
+
import { readdirSync, readFileSync as readFileSync2, statSync } from "node:fs";
|
|
17
|
+
import { homedir as homedir2 } from "node:os";
|
|
18
|
+
import { basename, join as join2 } from "node:path";
|
|
19
|
+
|
|
20
|
+
// ../hook/src/classify.ts
|
|
21
|
+
var CANCELLED = /\b(interrupted|cancel(l)?ed|aborted) by (the )?user\b|\buser (rejected|denied|declined)\b|\bpermission denied by user\b|\buser doesn't want to (proceed|take this action)\b/i;
|
|
22
|
+
function isCancelled(text) {
|
|
23
|
+
return CANCELLED.test(text);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// ../hook/src/append.ts
|
|
27
|
+
import { closeSync, constants, lstatSync, openSync, writeSync } from "node:fs";
|
|
28
|
+
import { dirname } from "node:path";
|
|
29
|
+
function appendOwn(path, text) {
|
|
30
|
+
if (lstatSync(dirname(path)).isSymbolicLink())
|
|
31
|
+
throw new Error(`${dirname(path)} is a symbolic link`);
|
|
32
|
+
const flags = constants.O_WRONLY | constants.O_APPEND | constants.O_CREAT | (constants.O_NOFOLLOW ?? 0);
|
|
33
|
+
const fd = openSync(path, flags, 384);
|
|
34
|
+
try {
|
|
35
|
+
writeSync(fd, text);
|
|
36
|
+
} finally {
|
|
37
|
+
closeSync(fd);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// ../hook/src/skill-failure.ts
|
|
42
|
+
import { existsSync, mkdirSync, readFileSync } from "node:fs";
|
|
43
|
+
import { homedir } from "node:os";
|
|
44
|
+
import { dirname as dirname2, join } from "node:path";
|
|
45
|
+
|
|
46
|
+
// ../../packages/protocol/src/declare/label.ts
|
|
47
|
+
function normaliseCategoryLabel(raw) {
|
|
48
|
+
return raw.normalize("NFKC").normalize("NFD").replace(/[̀-ͯ]/g, "").toLowerCase().trim().replace(/\s+/g, " ");
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// ../../packages/protocol/src/domain-words.ts
|
|
52
|
+
function tokens(text) {
|
|
53
|
+
return normaliseCategoryLabel(text).split(/[^a-z0-9]+/).filter((t) => t.length > 1);
|
|
54
|
+
}
|
|
55
|
+
function domainInText(text, words) {
|
|
56
|
+
const padded = ` ${tokens(text).join(" ")} `;
|
|
57
|
+
const hit = (phrase) => padded.includes(` ${tokens(phrase).join(" ")} `);
|
|
58
|
+
const label = [...words.labels].filter((l) => tokens(l).length > 0 && hit(l)).sort((a, b) => b.length - a.length)[0];
|
|
59
|
+
if (label !== undefined)
|
|
60
|
+
return label;
|
|
61
|
+
const alias = Object.keys(words.aliases).filter((a) => words.labels.includes(words.aliases[a]) && hit(a)).sort((a, b) => b.length - a.length)[0];
|
|
62
|
+
return alias === undefined ? null : words.aliases[alias];
|
|
63
|
+
}
|
|
64
|
+
// ../../data/catalogue/skill-nodes-13579.json
|
|
65
|
+
var skill_nodes_13579_default = {
|
|
66
|
+
_note: "For the hook's failure record, which reads no network (task 84): the nodes of ARP's testnet tree as written by task 79 (data/catalogue/oasf-tree-13579.json), and the node each skill name is filed at, when the name is filed at one node only. Built by scripts/build/build-skill-nodes.ts from data/catalogue/oasf-skill-tags-proposal-13579.json, rows not reviewed out.",
|
|
67
|
+
chainId: 13579,
|
|
68
|
+
oasfVersion: "1.1.0",
|
|
69
|
+
nodes: [
|
|
70
|
+
"ad copywriting",
|
|
71
|
+
"ad creative production",
|
|
72
|
+
"advertising",
|
|
73
|
+
"agent application building",
|
|
74
|
+
"agent evaluation",
|
|
75
|
+
"agent orchestration",
|
|
76
|
+
"agent tool building",
|
|
77
|
+
"agentic workflow orchestration",
|
|
78
|
+
"ai agent development",
|
|
79
|
+
"ai safety and guardrails",
|
|
80
|
+
"ai/ml engineering",
|
|
81
|
+
"answer engine optimization",
|
|
82
|
+
"api development",
|
|
83
|
+
"api schema understanding",
|
|
84
|
+
"app store release",
|
|
85
|
+
"architecture patterns",
|
|
86
|
+
"architecture review",
|
|
87
|
+
"article and blog writing",
|
|
88
|
+
"audio & speech processing",
|
|
89
|
+
"audio generation",
|
|
90
|
+
"audio to audio",
|
|
91
|
+
"authentication implementation",
|
|
92
|
+
"authorization and access control",
|
|
93
|
+
"benchmark execution",
|
|
94
|
+
"branding",
|
|
95
|
+
"browser automation",
|
|
96
|
+
"build, packaging and dev tooling",
|
|
97
|
+
"business and professional",
|
|
98
|
+
"business and professional writing",
|
|
99
|
+
"business operations",
|
|
100
|
+
"business strategy",
|
|
101
|
+
"calendar and scheduling",
|
|
102
|
+
"campaign planning",
|
|
103
|
+
"ci/cd configuration",
|
|
104
|
+
"ci/cd pipelines",
|
|
105
|
+
"cli and terminal app development",
|
|
106
|
+
"cloud architecture design",
|
|
107
|
+
"cloud cost optimization",
|
|
108
|
+
"cloud networking",
|
|
109
|
+
"cloud platform operations",
|
|
110
|
+
"cloud resource management",
|
|
111
|
+
"code comprehension",
|
|
112
|
+
"code debugging",
|
|
113
|
+
"code generation",
|
|
114
|
+
"code migration and modernization",
|
|
115
|
+
"code quality and maintenance",
|
|
116
|
+
"code refactoring and optimization",
|
|
117
|
+
"code review",
|
|
118
|
+
"collaboration and communication",
|
|
119
|
+
"commit authoring",
|
|
120
|
+
"competitive analysis",
|
|
121
|
+
"competitive intelligence",
|
|
122
|
+
"compliance assessment",
|
|
123
|
+
"computer vision",
|
|
124
|
+
"configuration management",
|
|
125
|
+
"container orchestration",
|
|
126
|
+
"container workload management",
|
|
127
|
+
"containerization",
|
|
128
|
+
"content strategy",
|
|
129
|
+
"content writing",
|
|
130
|
+
"content, writing and marketing",
|
|
131
|
+
"context window management",
|
|
132
|
+
"controllable image generation",
|
|
133
|
+
"conversion optimization",
|
|
134
|
+
"copy editing",
|
|
135
|
+
"copywriting",
|
|
136
|
+
"crm management",
|
|
137
|
+
"cross-platform mobile development",
|
|
138
|
+
"customer support and success",
|
|
139
|
+
"cybersecurity",
|
|
140
|
+
"data analytics",
|
|
141
|
+
"data engineering and analytics",
|
|
142
|
+
"data modeling",
|
|
143
|
+
"data modeling and design",
|
|
144
|
+
"data pipelines",
|
|
145
|
+
"data visualization",
|
|
146
|
+
"data warehousing",
|
|
147
|
+
"databases",
|
|
148
|
+
"deep learning training",
|
|
149
|
+
"deep research",
|
|
150
|
+
"dependency management",
|
|
151
|
+
"deployment and release management",
|
|
152
|
+
"deployment orchestration",
|
|
153
|
+
"design",
|
|
154
|
+
"dev environment setup",
|
|
155
|
+
"devops and cloud infrastructure",
|
|
156
|
+
"document authoring",
|
|
157
|
+
"document collaboration",
|
|
158
|
+
"document or database question answering",
|
|
159
|
+
"document processing",
|
|
160
|
+
"editing and proofreading",
|
|
161
|
+
"email campaign creation",
|
|
162
|
+
"email management",
|
|
163
|
+
"email marketing",
|
|
164
|
+
"employee lifecycle",
|
|
165
|
+
"end-to-end and ui testing",
|
|
166
|
+
"error handling implementation",
|
|
167
|
+
"experiment tracking",
|
|
168
|
+
"face swapping",
|
|
169
|
+
"frontend development",
|
|
170
|
+
"full-stack development",
|
|
171
|
+
"game development",
|
|
172
|
+
"git workflow",
|
|
173
|
+
"governance, compliance and ethics",
|
|
174
|
+
"graph database operations",
|
|
175
|
+
"growth strategy",
|
|
176
|
+
"human resources",
|
|
177
|
+
"iac authoring",
|
|
178
|
+
"identity administration",
|
|
179
|
+
"identity and access management",
|
|
180
|
+
"image editing",
|
|
181
|
+
"image generation",
|
|
182
|
+
"image inpainting",
|
|
183
|
+
"image outpainting",
|
|
184
|
+
"image to image",
|
|
185
|
+
"image to video",
|
|
186
|
+
"incident response",
|
|
187
|
+
"inference and serving",
|
|
188
|
+
"infrastructure as code",
|
|
189
|
+
"instructed image editing",
|
|
190
|
+
"interactive visualization",
|
|
191
|
+
"issue tracking",
|
|
192
|
+
"knowledge base management",
|
|
193
|
+
"knowledge management",
|
|
194
|
+
"landing page and sales copy",
|
|
195
|
+
"language generation",
|
|
196
|
+
"language processing",
|
|
197
|
+
"lead generation",
|
|
198
|
+
"llm evaluation",
|
|
199
|
+
"llm observability",
|
|
200
|
+
"llm tracing and instrumentation",
|
|
201
|
+
"logging and log analysis",
|
|
202
|
+
"logical reasoning",
|
|
203
|
+
"market and competitive intelligence",
|
|
204
|
+
"market research",
|
|
205
|
+
"marketing copywriting",
|
|
206
|
+
"marketing strategy",
|
|
207
|
+
"meeting intelligence",
|
|
208
|
+
"ml experimentation and lifecycle",
|
|
209
|
+
"mobile development",
|
|
210
|
+
"model and agent evaluation",
|
|
211
|
+
"model fine-tuning",
|
|
212
|
+
"model serving",
|
|
213
|
+
"model training and fine-tuning",
|
|
214
|
+
"monitoring and alerting",
|
|
215
|
+
"multi-agent coordination",
|
|
216
|
+
"native mobile development",
|
|
217
|
+
"network configuration",
|
|
218
|
+
"nosql database operations",
|
|
219
|
+
"note-taking",
|
|
220
|
+
"observability",
|
|
221
|
+
"observability instrumentation",
|
|
222
|
+
"office productivity",
|
|
223
|
+
"orm and data access",
|
|
224
|
+
"paid ads management",
|
|
225
|
+
"paper analysis",
|
|
226
|
+
"pdf manipulation",
|
|
227
|
+
"performance monitoring",
|
|
228
|
+
"postmortem authoring",
|
|
229
|
+
"presentation authoring",
|
|
230
|
+
"problem solving",
|
|
231
|
+
"process operations",
|
|
232
|
+
"product analytics",
|
|
233
|
+
"product management",
|
|
234
|
+
"product marketing and gtm",
|
|
235
|
+
"product strategy",
|
|
236
|
+
"production llm monitoring",
|
|
237
|
+
"project and task management",
|
|
238
|
+
"project scaffolding",
|
|
239
|
+
"prompt design",
|
|
240
|
+
"prompt engineering",
|
|
241
|
+
"prompt optimization",
|
|
242
|
+
"pull request management",
|
|
243
|
+
"quality evaluation",
|
|
244
|
+
"reasoning and planning",
|
|
245
|
+
"relational database operations",
|
|
246
|
+
"release management",
|
|
247
|
+
"requirements and prd authoring",
|
|
248
|
+
"research and scholarship",
|
|
249
|
+
"research ideation",
|
|
250
|
+
"research, knowledge and productivity",
|
|
251
|
+
"responsible ai governance",
|
|
252
|
+
"retention management",
|
|
253
|
+
"retrieval-augmented generation",
|
|
254
|
+
"roadmapping and prioritization",
|
|
255
|
+
"role assignment",
|
|
256
|
+
"root-cause debugging",
|
|
257
|
+
"runtime guardrails",
|
|
258
|
+
"sales and crm",
|
|
259
|
+
"sales enablement",
|
|
260
|
+
"sales outreach",
|
|
261
|
+
"script integration",
|
|
262
|
+
"search engine optimization",
|
|
263
|
+
"security hardening",
|
|
264
|
+
"security operations",
|
|
265
|
+
"seo auditing",
|
|
266
|
+
"seo content optimization",
|
|
267
|
+
"serverless and edge computing",
|
|
268
|
+
"serverless function development",
|
|
269
|
+
"site reliability engineering",
|
|
270
|
+
"social content creation",
|
|
271
|
+
"social media management",
|
|
272
|
+
"social media marketing",
|
|
273
|
+
"software architecture and design",
|
|
274
|
+
"software engineering",
|
|
275
|
+
"software testing",
|
|
276
|
+
"specialized application development",
|
|
277
|
+
"spreadsheet authoring",
|
|
278
|
+
"static analysis and linting",
|
|
279
|
+
"stream processing",
|
|
280
|
+
"structured data markup",
|
|
281
|
+
"styling and responsive layout",
|
|
282
|
+
"support operations",
|
|
283
|
+
"system design",
|
|
284
|
+
"talking avatar generation",
|
|
285
|
+
"task decomposition",
|
|
286
|
+
"task management",
|
|
287
|
+
"team messaging",
|
|
288
|
+
"technical writing",
|
|
289
|
+
"test strategy and tdd",
|
|
290
|
+
"text paraphrasing",
|
|
291
|
+
"text style transfer",
|
|
292
|
+
"text to audio",
|
|
293
|
+
"text to code",
|
|
294
|
+
"text to image",
|
|
295
|
+
"text to video",
|
|
296
|
+
"third-party integration",
|
|
297
|
+
"threat detection",
|
|
298
|
+
"tool use and automation",
|
|
299
|
+
"tool use planning",
|
|
300
|
+
"trace analysis and debugging",
|
|
301
|
+
"ux writing and microcopy",
|
|
302
|
+
"version control and collaboration",
|
|
303
|
+
"video",
|
|
304
|
+
"video editing",
|
|
305
|
+
"vulnerability analysis",
|
|
306
|
+
"vulnerability management",
|
|
307
|
+
"web accessibility",
|
|
308
|
+
"web animation",
|
|
309
|
+
"web development",
|
|
310
|
+
"web search",
|
|
311
|
+
"web search research",
|
|
312
|
+
"workflow automation"
|
|
313
|
+
],
|
|
314
|
+
skills: {
|
|
315
|
+
"ab-test-setup": "product analytics",
|
|
316
|
+
"ab-testing": "product analytics",
|
|
317
|
+
"academy-guide": "support operations",
|
|
318
|
+
"ace-step": "text to audio",
|
|
319
|
+
"ad-creative": "ad copywriting",
|
|
320
|
+
adapt: "styling and responsive layout",
|
|
321
|
+
ads: "paid ads management",
|
|
322
|
+
"agent-browser": "browser automation",
|
|
323
|
+
"agent-tools": "script integration",
|
|
324
|
+
"agents-sdk": "agent application building",
|
|
325
|
+
"ai-avatar-video": "talking avatar generation",
|
|
326
|
+
"ai-image-generation": "text to image",
|
|
327
|
+
"ai-music": "text to audio",
|
|
328
|
+
"ai-paper-reproduction": "research and scholarship",
|
|
329
|
+
"ai-research-explore": "research ideation",
|
|
330
|
+
"ai-research-reproduction": "research and scholarship",
|
|
331
|
+
"ai-seo": "answer engine optimization",
|
|
332
|
+
"ai-video-generation": "text to video",
|
|
333
|
+
"airunway-aks-setup": "model serving",
|
|
334
|
+
"algorithmic-art": "image generation",
|
|
335
|
+
analytics: "product analytics",
|
|
336
|
+
"analytics-tracking": "product analytics",
|
|
337
|
+
"analyze-project": "code comprehension",
|
|
338
|
+
"analyze-test-run": "software testing",
|
|
339
|
+
animate: "web animation",
|
|
340
|
+
"animate-expo": "web animation",
|
|
341
|
+
"animation-performance": "web animation",
|
|
342
|
+
"animation-vocabulary": "web animation",
|
|
343
|
+
animejs: "web animation",
|
|
344
|
+
"app-store-screenshots": "app store release",
|
|
345
|
+
"appinsights-instrumentation": "observability instrumentation",
|
|
346
|
+
"apple-design": "design",
|
|
347
|
+
arrange: "design",
|
|
348
|
+
"ask-matt": "tool use planning",
|
|
349
|
+
"ask-sonner": "frontend development",
|
|
350
|
+
aso: "seo auditing",
|
|
351
|
+
"aso-audit": "seo auditing",
|
|
352
|
+
attribution: "product analytics",
|
|
353
|
+
audit: "web accessibility",
|
|
354
|
+
"azure-ai": "cloud platform operations",
|
|
355
|
+
"azure-aigateway": "runtime guardrails",
|
|
356
|
+
"azure-app-onboard": "deployment orchestration",
|
|
357
|
+
"azure-app-onboard-prereq": "deployment orchestration",
|
|
358
|
+
"azure-cloud-migrate": "code migration and modernization",
|
|
359
|
+
"azure-compliance": "compliance assessment",
|
|
360
|
+
"azure-compute": "cloud resource management",
|
|
361
|
+
"azure-cost": "cloud cost optimization",
|
|
362
|
+
"azure-cost-optimization": "cloud cost optimization",
|
|
363
|
+
"azure-deploy": "deployment orchestration",
|
|
364
|
+
"azure-diagnostics": "incident response",
|
|
365
|
+
"azure-enterprise-infra-planner": "cloud architecture design",
|
|
366
|
+
"azure-hosted-copilot-sdk": "agent application building",
|
|
367
|
+
"azure-kubernetes": "container workload management",
|
|
368
|
+
"azure-kusto": "logging and log analysis",
|
|
369
|
+
"azure-kusto-graph": "graph database operations",
|
|
370
|
+
"azure-kusto-irql": "threat detection",
|
|
371
|
+
"azure-kusto-irql-graph": "interactive visualization",
|
|
372
|
+
"azure-messaging": "code debugging",
|
|
373
|
+
"azure-observability": "observability",
|
|
374
|
+
"azure-postgres": "relational database operations",
|
|
375
|
+
"azure-prepare": "iac authoring",
|
|
376
|
+
"azure-quotas": "cloud resource management",
|
|
377
|
+
"azure-rbac": "authorization and access control",
|
|
378
|
+
"azure-reliability": "site reliability engineering",
|
|
379
|
+
"azure-resource-lookup": "cloud resource management",
|
|
380
|
+
"azure-resource-visualizer": "cloud architecture design",
|
|
381
|
+
"azure-storage": "cloud resource management",
|
|
382
|
+
"azure-upgrade": "code migration and modernization",
|
|
383
|
+
"azure-validate": "ci/cd configuration",
|
|
384
|
+
basin: "data warehousing",
|
|
385
|
+
"batch-grill-me": "problem solving",
|
|
386
|
+
bolder: "design",
|
|
387
|
+
brainstorming: "reasoning and planning",
|
|
388
|
+
"brand-guidelines": "branding",
|
|
389
|
+
"break-ui": "end-to-end and ui testing",
|
|
390
|
+
"building-ai-agent-on-cloudflare": "agent application building",
|
|
391
|
+
"building-mcp-server-on-cloudflare": "agent tool building",
|
|
392
|
+
"canopy-part-title": "video editing",
|
|
393
|
+
"canvas-design": "image generation",
|
|
394
|
+
"captions-overlay": "video editing",
|
|
395
|
+
cavecrew: "role assignment",
|
|
396
|
+
caveman: "text style transfer",
|
|
397
|
+
"caveman-commit": "commit authoring",
|
|
398
|
+
"caveman-compress": "context window management",
|
|
399
|
+
"caveman-discover": "llm tracing and instrumentation",
|
|
400
|
+
"caveman-es": "text style transfer",
|
|
401
|
+
"caveman-evidence-review": "trace analysis and debugging",
|
|
402
|
+
"caveman-explore": "code comprehension",
|
|
403
|
+
"caveman-help": "text style transfer",
|
|
404
|
+
"caveman-learn": "prompt optimization",
|
|
405
|
+
"caveman-manage": "release management",
|
|
406
|
+
"caveman-optimize": "llm evaluation",
|
|
407
|
+
"caveman-review": "code review",
|
|
408
|
+
"caveman-setup": "llm tracing and instrumentation",
|
|
409
|
+
"caveman-stats": "production llm monitoring",
|
|
410
|
+
"cf-cli": "cloud resource management",
|
|
411
|
+
"changelog-video": "video editing",
|
|
412
|
+
"character-design-sheet": "controllable image generation",
|
|
413
|
+
"chief-of-staff": "agentic workflow orchestration",
|
|
414
|
+
"churn-prevention": "retention management",
|
|
415
|
+
clarify: "ux writing and microcopy",
|
|
416
|
+
"claude-api": "third-party integration",
|
|
417
|
+
"claude-design-hyperframes": "video editing",
|
|
418
|
+
"claude-handoff": "multi-agent coordination",
|
|
419
|
+
cloudflare: "cloud architecture design",
|
|
420
|
+
"cloudflare-email-service": "third-party integration",
|
|
421
|
+
"cloudflare-one": "network configuration",
|
|
422
|
+
"cloudflare-one-migrations": "network configuration",
|
|
423
|
+
"co-marketing": "campaign planning",
|
|
424
|
+
"code-review": "code review",
|
|
425
|
+
"code-slice-hero": "video editing",
|
|
426
|
+
"codebase-design": "architecture patterns",
|
|
427
|
+
"codex-pet": "image to image",
|
|
428
|
+
"cold-email": "sales outreach",
|
|
429
|
+
colorize: "design",
|
|
430
|
+
"community-marketing": "growth strategy",
|
|
431
|
+
"competitor-alternatives": "landing page and sales copy",
|
|
432
|
+
"competitor-profiling": "competitive intelligence",
|
|
433
|
+
"competitor-teardown": "competitive analysis",
|
|
434
|
+
competitors: "landing page and sales copy",
|
|
435
|
+
compress: "context window management",
|
|
436
|
+
"content-strategy": "content strategy",
|
|
437
|
+
"contribute-catalog": "video editing",
|
|
438
|
+
"controlnet-pose": "image to video",
|
|
439
|
+
"conversion-tracking": "product analytics",
|
|
440
|
+
"copy-editing": "copy editing",
|
|
441
|
+
copywriting: "marketing copywriting",
|
|
442
|
+
critique: "design",
|
|
443
|
+
cro: "conversion optimization",
|
|
444
|
+
"css-animations": "web animation",
|
|
445
|
+
"cuboid-carousel": "video editing",
|
|
446
|
+
"customer-research": "market research",
|
|
447
|
+
"cut-the-curve": "video editing",
|
|
448
|
+
"decision-mapping": "task decomposition",
|
|
449
|
+
delight: "design",
|
|
450
|
+
"deploy-to-vercel": "deployment orchestration",
|
|
451
|
+
"design-an-interface": "system design",
|
|
452
|
+
"design-mobile-apps": "design",
|
|
453
|
+
"design-taste-frontend": "design",
|
|
454
|
+
"design-taste-frontend-v1": "design",
|
|
455
|
+
"design-taste-frontend-v2-experimental": "design",
|
|
456
|
+
"developing-genkit-dart": "agent application building",
|
|
457
|
+
"developing-genkit-go": "agent application building",
|
|
458
|
+
"developing-genkit-js": "agent application building",
|
|
459
|
+
"developing-genkit-python": "agent application building",
|
|
460
|
+
diagnose: "root-cause debugging",
|
|
461
|
+
"diagnosing-bugs": "root-cause debugging",
|
|
462
|
+
"diagnosing-superpowers": "trace analysis and debugging",
|
|
463
|
+
"directory-submissions": "search engine optimization",
|
|
464
|
+
"discernment-nudge": "responsible ai governance",
|
|
465
|
+
"discover-azure-skills": "tool use planning",
|
|
466
|
+
"dispatching-parallel-agents": "multi-agent coordination",
|
|
467
|
+
distill: "design",
|
|
468
|
+
"doc-coauthoring": "technical writing",
|
|
469
|
+
docx: "document authoring",
|
|
470
|
+
"domain-modeling": "data modeling",
|
|
471
|
+
"durable-objects": "serverless function development",
|
|
472
|
+
"edit-article": "editing and proofreading",
|
|
473
|
+
"elevenlabs-music-generation": "text to audio",
|
|
474
|
+
"email-sequence": "email campaign creation",
|
|
475
|
+
emails: "email campaign creation",
|
|
476
|
+
"embedded-captions": "video editing",
|
|
477
|
+
"emil-design-eng": "design",
|
|
478
|
+
"entra-agent-id": "identity administration",
|
|
479
|
+
"entra-app-registration": "authentication implementation",
|
|
480
|
+
"env-and-assets-bootstrap": "dev environment setup",
|
|
481
|
+
events: "campaign planning",
|
|
482
|
+
"executing-plans": "task management",
|
|
483
|
+
"explore-code": "deep learning training",
|
|
484
|
+
"explore-run": "experiment tracking",
|
|
485
|
+
"extension-to-functions-codebase": "code migration and modernization",
|
|
486
|
+
extract: "design",
|
|
487
|
+
"face-swap": "face swapping",
|
|
488
|
+
"faceless-explainer": "text to video",
|
|
489
|
+
figma: "video editing",
|
|
490
|
+
"file-test-bug": "issue tracking",
|
|
491
|
+
"find-animation-opportunities": "web animation",
|
|
492
|
+
"find-skills": "tool use planning",
|
|
493
|
+
"finishing-a-development-branch": "git workflow",
|
|
494
|
+
"firebase-ai-logic": "third-party integration",
|
|
495
|
+
"firebase-ai-logic-basics": "third-party integration",
|
|
496
|
+
"firebase-app-hosting-basics": "deployment orchestration",
|
|
497
|
+
"firebase-auth-basics": "authentication implementation",
|
|
498
|
+
"firebase-basics": "dev environment setup",
|
|
499
|
+
"firebase-crashlytics": "monitoring and alerting",
|
|
500
|
+
"firebase-data-connect": "relational database operations",
|
|
501
|
+
"firebase-firestore": "nosql database operations",
|
|
502
|
+
"firebase-firestore-basics": "nosql database operations",
|
|
503
|
+
"firebase-firestore-enterprise-native-mode": "nosql database operations",
|
|
504
|
+
"firebase-firestore-standard": "nosql database operations",
|
|
505
|
+
"firebase-hosting-basics": "deployment orchestration",
|
|
506
|
+
"firebase-local-env-setup": "dev environment setup",
|
|
507
|
+
"firebase-remote-config-basics": "configuration management",
|
|
508
|
+
"firebase-security-rules-auditor": "vulnerability analysis",
|
|
509
|
+
"firestore-rules-creation": "authorization and access control",
|
|
510
|
+
"firestore-security-rules-auditor": "vulnerability analysis",
|
|
511
|
+
"flux-2-klein": "text to image",
|
|
512
|
+
"flux-kontext": "instructed image editing",
|
|
513
|
+
"form-cro": "conversion optimization",
|
|
514
|
+
"free-tool-strategy": "growth strategy",
|
|
515
|
+
"free-tools": "growth strategy",
|
|
516
|
+
"frontend-design": "design",
|
|
517
|
+
"frost-sequence-camera-orbit": "video editing",
|
|
518
|
+
"full-output-enforcement": "prompt design",
|
|
519
|
+
"gateway-workers": "serverless function development",
|
|
520
|
+
"general-video": "video editing",
|
|
521
|
+
"git-guardrails-claude-code": "git workflow",
|
|
522
|
+
"glass-shard-title": "video editing",
|
|
523
|
+
"google-agents-cli-adk-code": "agent application building",
|
|
524
|
+
"google-agents-cli-deploy": "deployment orchestration",
|
|
525
|
+
"google-agents-cli-eval": "agent evaluation",
|
|
526
|
+
"google-agents-cli-observability": "llm tracing and instrumentation",
|
|
527
|
+
"google-agents-cli-publish": "release management",
|
|
528
|
+
"google-agents-cli-scaffold": "project scaffolding",
|
|
529
|
+
"google-agents-cli-workflow": "agent application building",
|
|
530
|
+
"gpt-image": "text to image",
|
|
531
|
+
"gpt-image-2": "text to image",
|
|
532
|
+
"gpt-image-edit": "instructed image editing",
|
|
533
|
+
"gpt-taste": "design",
|
|
534
|
+
"graphic-overlays": "video editing",
|
|
535
|
+
"grill-me": "problem solving",
|
|
536
|
+
"grill-with-docs": "problem solving",
|
|
537
|
+
grilling: "problem solving",
|
|
538
|
+
gsap: "web animation",
|
|
539
|
+
handoff: "context window management",
|
|
540
|
+
happyhorse: "text to video",
|
|
541
|
+
"happyhorse-1-0": "text to video",
|
|
542
|
+
harden: "error handling implementation",
|
|
543
|
+
"higgsfield-brandkit": "branding",
|
|
544
|
+
"higgsfield-faceless-video": "text to video",
|
|
545
|
+
"higgsfield-game-generation": "game development",
|
|
546
|
+
"higgsfield-generate": "text to image",
|
|
547
|
+
"higgsfield-marketplace-cards": "ad creative production",
|
|
548
|
+
"higgsfield-product-photoshoot": "text to image",
|
|
549
|
+
"higgsfield-soul-id": "model fine-tuning",
|
|
550
|
+
"higgsfield-websites": "full-stack development",
|
|
551
|
+
"higgsfield-youtube-thumbnail": "text to image",
|
|
552
|
+
"high-end-visual-design": "design",
|
|
553
|
+
hyperframes: "video",
|
|
554
|
+
"hyperframes-animation": "web animation",
|
|
555
|
+
"hyperframes-audio": "audio to audio",
|
|
556
|
+
"hyperframes-cli": "video editing",
|
|
557
|
+
"hyperframes-core": "video editing",
|
|
558
|
+
"hyperframes-creative": "video editing",
|
|
559
|
+
"hyperframes-keyframes": "video editing",
|
|
560
|
+
"hyperframes-media": "audio generation",
|
|
561
|
+
"hyperframes-read-first": "video",
|
|
562
|
+
"hyperframes-registry": "video editing",
|
|
563
|
+
"hyperframes-studio": "video editing",
|
|
564
|
+
image: "image generation",
|
|
565
|
+
"image-edit": "instructed image editing",
|
|
566
|
+
"image-inpainting": "image inpainting",
|
|
567
|
+
"image-outpainting": "image outpainting",
|
|
568
|
+
"image-taste-frontend": "design",
|
|
569
|
+
"image-to-video": "image to video",
|
|
570
|
+
impeccable: "design",
|
|
571
|
+
implement: "text to code",
|
|
572
|
+
"implement-spec": "text to code",
|
|
573
|
+
"improve-animations": "web animation",
|
|
574
|
+
"improve-codebase-architecture": "architecture review",
|
|
575
|
+
"industrial-brutalist-ui": "design",
|
|
576
|
+
"influencer-marketing": "campaign planning",
|
|
577
|
+
"infsh-cli": "script integration",
|
|
578
|
+
"internal-comms": "business and professional writing",
|
|
579
|
+
"investigate-first": "root-cause debugging",
|
|
580
|
+
k2: "stream processing",
|
|
581
|
+
"kling-3-0": "text to video",
|
|
582
|
+
"landing-page-design": "conversion optimization",
|
|
583
|
+
"lark-approval": "process operations",
|
|
584
|
+
"lark-apps": "full-stack development",
|
|
585
|
+
"lark-attendance": "employee lifecycle",
|
|
586
|
+
"lark-base": "spreadsheet authoring",
|
|
587
|
+
"lark-calendar": "calendar and scheduling",
|
|
588
|
+
"lark-contact": "team messaging",
|
|
589
|
+
"lark-doc": "document collaboration",
|
|
590
|
+
"lark-drive": "document collaboration",
|
|
591
|
+
"lark-event": "workflow automation",
|
|
592
|
+
"lark-im": "team messaging",
|
|
593
|
+
"lark-mail": "email management",
|
|
594
|
+
"lark-markdown": "document collaboration",
|
|
595
|
+
"lark-meeting": "meeting intelligence",
|
|
596
|
+
"lark-minutes": "meeting intelligence",
|
|
597
|
+
"lark-note": "meeting intelligence",
|
|
598
|
+
"lark-okr": "roadmapping and prioritization",
|
|
599
|
+
"lark-openapi-explorer": "api schema understanding",
|
|
600
|
+
"lark-shared": "authentication implementation",
|
|
601
|
+
"lark-sheets": "spreadsheet authoring",
|
|
602
|
+
"lark-skill-maker": "agent tool building",
|
|
603
|
+
"lark-slides": "presentation authoring",
|
|
604
|
+
"lark-task": "task management",
|
|
605
|
+
"lark-vc": "meeting intelligence",
|
|
606
|
+
"lark-vc-agent": "meeting intelligence",
|
|
607
|
+
"lark-whiteboard": "document collaboration",
|
|
608
|
+
"lark-whiteboard-cli": "document collaboration",
|
|
609
|
+
"lark-wiki": "knowledge base management",
|
|
610
|
+
"lark-workflow-meeting-summary": "meeting intelligence",
|
|
611
|
+
"lark-workflow-standup-report": "task management",
|
|
612
|
+
launch: "product marketing and gtm",
|
|
613
|
+
"launch-strategy": "product marketing and gtm",
|
|
614
|
+
layout: "design",
|
|
615
|
+
"lead-magnets": "lead generation",
|
|
616
|
+
"lean-build": "text to code",
|
|
617
|
+
"link-building": "search engine optimization",
|
|
618
|
+
lipsync: "talking avatar generation",
|
|
619
|
+
"loop-me": "requirements and prd authoring",
|
|
620
|
+
lottie: "web animation",
|
|
621
|
+
"markdown-token-optimizer": "context window management",
|
|
622
|
+
"marketing-council": "marketing strategy",
|
|
623
|
+
"marketing-ideas": "growth strategy",
|
|
624
|
+
"marketing-loops": "workflow automation",
|
|
625
|
+
"marketing-plan": "marketing strategy",
|
|
626
|
+
"marketing-psychology": "marketing strategy",
|
|
627
|
+
"mcp-builder": "agent tool building",
|
|
628
|
+
"media-use": "video",
|
|
629
|
+
mediabunny: "video",
|
|
630
|
+
megacave: "text style transfer",
|
|
631
|
+
"microsoft-foundry": "agent application building",
|
|
632
|
+
"migrate-to-shoehorn": "code migration and modernization",
|
|
633
|
+
migration: "code migration and modernization",
|
|
634
|
+
"minimal-run-and-audit": "benchmark execution",
|
|
635
|
+
"minimalist-ui": "design",
|
|
636
|
+
"mobile-native": "styling and responsive layout",
|
|
637
|
+
"motion-doctrine": "video editing",
|
|
638
|
+
"motion-graphics": "video editing",
|
|
639
|
+
"music-to-video": "video editing",
|
|
640
|
+
"nano-banana-2": "text to image",
|
|
641
|
+
"nano-banana-edit": "instructed image editing",
|
|
642
|
+
"nextjs-on-cloudflare": "deployment orchestration",
|
|
643
|
+
normalize: "design",
|
|
644
|
+
"obsidian-vault": "note-taking",
|
|
645
|
+
offers: "product marketing and gtm",
|
|
646
|
+
onboard: "design",
|
|
647
|
+
onboarding: "conversion optimization",
|
|
648
|
+
"onboarding-cro": "conversion optimization",
|
|
649
|
+
optimize: "code refactoring and optimization",
|
|
650
|
+
"orbit-card": "video editing",
|
|
651
|
+
overdrive: "web animation",
|
|
652
|
+
"oversized-cursor": "video editing",
|
|
653
|
+
"p-image": "text to image",
|
|
654
|
+
"p-video": "text to video",
|
|
655
|
+
"p-video-avatar": "talking avatar generation",
|
|
656
|
+
"page-cro": "conversion optimization",
|
|
657
|
+
"paid-ads": "paid ads management",
|
|
658
|
+
"paper-context-resolver": "paper analysis",
|
|
659
|
+
"paywall-upgrade-cro": "conversion optimization",
|
|
660
|
+
paywalls: "conversion optimization",
|
|
661
|
+
pdf: "pdf manipulation",
|
|
662
|
+
"pick-ui-library": "frontend development",
|
|
663
|
+
polish: "design",
|
|
664
|
+
"popup-cro": "conversion optimization",
|
|
665
|
+
popups: "conversion optimization",
|
|
666
|
+
pptx: "presentation authoring",
|
|
667
|
+
pr: "pull request management",
|
|
668
|
+
"pr-to-video": "video editing",
|
|
669
|
+
pricing: "product strategy",
|
|
670
|
+
"pricing-strategy": "product strategy",
|
|
671
|
+
"prisma-cli": "orm and data access",
|
|
672
|
+
"prisma-client-api": "orm and data access",
|
|
673
|
+
"prisma-compute": "deployment orchestration",
|
|
674
|
+
"prisma-database-setup": "orm and data access",
|
|
675
|
+
"prisma-driver-adapter-implementation": "orm and data access",
|
|
676
|
+
"prisma-mongodb-upgrade": "code migration and modernization",
|
|
677
|
+
"prisma-orm-setup": "orm and data access",
|
|
678
|
+
"prisma-postgres": "relational database operations",
|
|
679
|
+
"prisma-postgres-setup": "relational database operations",
|
|
680
|
+
"prisma-upgrade-v7": "code migration and modernization",
|
|
681
|
+
"product-hunt-launch": "product marketing and gtm",
|
|
682
|
+
"product-launch-video": "ad creative production",
|
|
683
|
+
"product-marketing": "product marketing and gtm",
|
|
684
|
+
"product-marketing-context": "product marketing and gtm",
|
|
685
|
+
"product-photography": "text to image",
|
|
686
|
+
"programmatic-seo": "seo content optimization",
|
|
687
|
+
prospecting: "lead generation",
|
|
688
|
+
"public-relations": "marketing strategy",
|
|
689
|
+
"python-appservice-deploy": "deployment orchestration",
|
|
690
|
+
"python-executor": "script integration",
|
|
691
|
+
qa: "issue tracking",
|
|
692
|
+
quieter: "design",
|
|
693
|
+
"receiving-code-review": "code review",
|
|
694
|
+
"reddit-automation": "social content creation",
|
|
695
|
+
"redesign-existing-projects": "design",
|
|
696
|
+
"referral-program": "growth strategy",
|
|
697
|
+
referrals: "growth strategy",
|
|
698
|
+
relight: "instructed image editing",
|
|
699
|
+
"remotion-best-practices": "video",
|
|
700
|
+
"remotion-captions": "video editing",
|
|
701
|
+
"remotion-create": "video",
|
|
702
|
+
"remotion-docs": "document or database question answering",
|
|
703
|
+
"remotion-interactivity": "video",
|
|
704
|
+
"remotion-maps": "video",
|
|
705
|
+
"remotion-markup": "video",
|
|
706
|
+
"remotion-multimedia": "video",
|
|
707
|
+
"remotion-render": "video",
|
|
708
|
+
"remotion-saas": "full-stack development",
|
|
709
|
+
"remotion-studio": "video",
|
|
710
|
+
"remotion-to-hyperframes": "code migration and modernization",
|
|
711
|
+
"remotion-upgrade": "dependency management",
|
|
712
|
+
"remove-animations": "web animation",
|
|
713
|
+
"repo-intake-and-plan": "code comprehension",
|
|
714
|
+
"request-refactor-plan": "code refactoring and optimization",
|
|
715
|
+
"requesting-code-review": "code review",
|
|
716
|
+
research: "deep research",
|
|
717
|
+
"resolving-merge-conflicts": "git workflow",
|
|
718
|
+
retro: "postmortem authoring",
|
|
719
|
+
review: "code review",
|
|
720
|
+
"review-animations": "web animation",
|
|
721
|
+
revops: "crm management",
|
|
722
|
+
"run-train": "deep learning training",
|
|
723
|
+
"runcomfy-cli": "script integration",
|
|
724
|
+
"safe-debug": "root-cause debugging",
|
|
725
|
+
"safe-refactor": "code refactoring and optimization",
|
|
726
|
+
"sales-enablement": "sales enablement",
|
|
727
|
+
"sandbox-migrate-to-next": "code migration and modernization",
|
|
728
|
+
"sandbox-next": "containerization",
|
|
729
|
+
"sandbox-sdk": "containerization",
|
|
730
|
+
"sandbox-stable": "containerization",
|
|
731
|
+
"scaffold-exercises": "project scaffolding",
|
|
732
|
+
schema: "structured data markup",
|
|
733
|
+
"schema-markup": "structured data markup",
|
|
734
|
+
"seam-craft": "video editing",
|
|
735
|
+
seedance: "text to video",
|
|
736
|
+
"seedance-v2": "text to video",
|
|
737
|
+
sensei: "agent tool building",
|
|
738
|
+
"seo-audit": "seo auditing",
|
|
739
|
+
"setup-matt-pocock-skills": "dev environment setup",
|
|
740
|
+
"setup-pre-commit": "dev environment setup",
|
|
741
|
+
"setup-ts-deep-modules": "static analysis and linting",
|
|
742
|
+
shape: "design",
|
|
743
|
+
signup: "conversion optimization",
|
|
744
|
+
"signup-flow-cro": "conversion optimization",
|
|
745
|
+
"site-architecture": "search engine optimization",
|
|
746
|
+
"skill-authoring": "agent tool building",
|
|
747
|
+
"skill-creator": "agent tool building",
|
|
748
|
+
"slack-gif-creator": "image generation",
|
|
749
|
+
slideshow: "presentation authoring",
|
|
750
|
+
sms: "email marketing",
|
|
751
|
+
social: "social media management",
|
|
752
|
+
"social-content": "social content creation",
|
|
753
|
+
"stitch-design-taste": "design",
|
|
754
|
+
"storyboard-creation": "video",
|
|
755
|
+
"subagent-driven-development": "agentic workflow orchestration",
|
|
756
|
+
"surgical-patch": "root-cause debugging",
|
|
757
|
+
"systematic-debugging": "root-cause debugging",
|
|
758
|
+
tailwind: "styling and responsive layout",
|
|
759
|
+
"talking-head-recut": "video editing",
|
|
760
|
+
tdd: "test strategy and tdd",
|
|
761
|
+
teach: "research and scholarship",
|
|
762
|
+
"template-skill": "agent tool building",
|
|
763
|
+
"test-driven-development": "test strategy and tdd",
|
|
764
|
+
"theme-factory": "design",
|
|
765
|
+
three: "web animation",
|
|
766
|
+
"to-issues": "issue tracking",
|
|
767
|
+
"to-prd": "requirements and prd authoring",
|
|
768
|
+
"to-questionnaire": "reasoning and planning",
|
|
769
|
+
"to-spec": "requirements and prd authoring",
|
|
770
|
+
"to-tickets": "issue tracking",
|
|
771
|
+
triage: "issue tracking",
|
|
772
|
+
"turnstile-spin": "security hardening",
|
|
773
|
+
"twitter-automation": "social media management",
|
|
774
|
+
typegpu: "web animation",
|
|
775
|
+
typeset: "design",
|
|
776
|
+
"ubiquitous-language": "data modeling",
|
|
777
|
+
ultracave: "text style transfer",
|
|
778
|
+
"using-git-worktrees": "git workflow",
|
|
779
|
+
"using-superpowers": "tool use planning",
|
|
780
|
+
"vercel-cli-with-tokens": "deployment orchestration",
|
|
781
|
+
"vercel-composition-patterns": "frontend development",
|
|
782
|
+
"vercel-deploy": "deployment orchestration",
|
|
783
|
+
"vercel-optimize": "cloud cost optimization",
|
|
784
|
+
"vercel-react-best-practices": "code refactoring and optimization",
|
|
785
|
+
"vercel-react-native-skills": "cross-platform mobile development",
|
|
786
|
+
"vercel-react-view-transitions": "web animation",
|
|
787
|
+
"verification-before-completion": "quality evaluation",
|
|
788
|
+
"verify-and-stop": "software testing",
|
|
789
|
+
video: "video",
|
|
790
|
+
"video-ad-specs": "ad creative production",
|
|
791
|
+
"video-edit": "video editing",
|
|
792
|
+
"video-extend": "video editing",
|
|
793
|
+
"video-inpainting": "video editing",
|
|
794
|
+
"video-outpainting": "video editing",
|
|
795
|
+
waapi: "web animation",
|
|
796
|
+
"wait-what": "text paraphrasing",
|
|
797
|
+
"wan-2-7": "text to video",
|
|
798
|
+
wayfinder: "task decomposition",
|
|
799
|
+
"web-artifacts-builder": "frontend development",
|
|
800
|
+
"web-design-guidelines": "design",
|
|
801
|
+
"web-perf": "code refactoring and optimization",
|
|
802
|
+
"web-search": "web search research",
|
|
803
|
+
"webapp-testing": "end-to-end and ui testing",
|
|
804
|
+
"website-to-hyperframes": "video editing",
|
|
805
|
+
"website-to-video": "video editing",
|
|
806
|
+
"wireframe-portal-title": "video editing",
|
|
807
|
+
wizard: "cli and terminal app development",
|
|
808
|
+
"workers-best-practices": "serverless function development",
|
|
809
|
+
"workers-profiling": "performance monitoring",
|
|
810
|
+
wrangler: "deployment orchestration",
|
|
811
|
+
"write-a-skill": "agent tool building",
|
|
812
|
+
"write-swift": "native mobile development",
|
|
813
|
+
"writing-beats": "content writing",
|
|
814
|
+
"writing-for-agents": "technical writing",
|
|
815
|
+
"writing-fragments": "content writing",
|
|
816
|
+
"writing-great-skills": "agent tool building",
|
|
817
|
+
"writing-guidelines": "copy editing",
|
|
818
|
+
"writing-plans": "task decomposition",
|
|
819
|
+
"writing-shape": "article and blog writing",
|
|
820
|
+
"writing-skills": "agent tool building",
|
|
821
|
+
"xcode-project-setup": "dependency management",
|
|
822
|
+
xlsx: "spreadsheet authoring",
|
|
823
|
+
"youtube-thumbnail-design": "image generation",
|
|
824
|
+
"zoom-out": "code comprehension"
|
|
825
|
+
}
|
|
826
|
+
};
|
|
827
|
+
|
|
828
|
+
// ../hook/src/skill-failure.ts
|
|
829
|
+
var MISSING_KEY = /\b(api[ _-]?key|access[ _-]?token|credentials?)\b.{0,40}\b(missing|not set|not found|required|invalid|expired)\b|(?<!\bnot )\b(missing|no|invalid|expired)\b.{0,20}\b(api[ _-]?key|access[ _-]?token|credentials?)\b|\b(HTTP|status)(\/[\d.]+| code)?[ :=]*(401|403)\b|\b(401|403) (unauthori[sz]ed|forbidden)\b|\bunauthori[sz]ed\b|not authenticated|not logged in/i;
|
|
830
|
+
var MISSING_KEY_VARIABLE = /\b[A-Z0-9_]*(API_KEY|TOKEN|SECRET)\b.{0,30}\b(not set|missing|required|unset)\b/;
|
|
831
|
+
var MISSING_PROGRAM = /command not found|executable file not found|\bnot installed\b|No module named|spawn \S+ ENOENT|Cannot find module/i;
|
|
832
|
+
var MISSING_FILE = /No such file or directory|\bENOENT\b|file not found|\b(file|path|directory|folder)\b(?!\.).{0,80}\bdoes not exist\b/i;
|
|
833
|
+
function failureReason(text) {
|
|
834
|
+
if (MISSING_PROGRAM.test(text))
|
|
835
|
+
return "missing-program";
|
|
836
|
+
if (MISSING_KEY.test(text) || MISSING_KEY_VARIABLE.test(text))
|
|
837
|
+
return "missing-key";
|
|
838
|
+
if (MISSING_FILE.test(text))
|
|
839
|
+
return "missing-file";
|
|
840
|
+
return null;
|
|
841
|
+
}
|
|
842
|
+
var RUNNERS = new Set(["bash", "bun", "bunx", "node", "npx", "python", "python3", "sh", "uv", "uvx", "zsh"]);
|
|
843
|
+
function programsOf(command) {
|
|
844
|
+
const found = [];
|
|
845
|
+
for (const part of command.split(/&&|\|\||[;|\n]/)) {
|
|
846
|
+
const words = part.trim().split(/\s+/).filter((word) => !/^[A-Za-z_][A-Za-z0-9_]*=/.test(word));
|
|
847
|
+
const first = words[0];
|
|
848
|
+
if (first === undefined || first === "")
|
|
849
|
+
continue;
|
|
850
|
+
const program = first.split("/").pop() ?? first;
|
|
851
|
+
if (!RUNNERS.has(program)) {
|
|
852
|
+
found.push(program);
|
|
853
|
+
continue;
|
|
854
|
+
}
|
|
855
|
+
const target = words.slice(1).find((word) => !word.startsWith("-") && word !== "run");
|
|
856
|
+
if (target !== undefined)
|
|
857
|
+
found.push(target.split("/").pop() ?? target);
|
|
858
|
+
}
|
|
859
|
+
return found;
|
|
860
|
+
}
|
|
861
|
+
var escaped = (text) => text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
862
|
+
function askedBySkill(command, markdown, directory) {
|
|
863
|
+
if (new RegExp(`${escaped(directory)}(?=[/\\s'"]|$)`).test(command))
|
|
864
|
+
return true;
|
|
865
|
+
const { cli, runs } = readRequires(markdown);
|
|
866
|
+
const named = new Set([...cli, ...runs]);
|
|
867
|
+
return programsOf(command).some((program) => named.has(program) || program.includes(".") && new RegExp(`(?:^|[\\s\`'"/(])${escaped(program)}(?=[\\s\`'")]|$)`, "m").test(markdown));
|
|
868
|
+
}
|
|
869
|
+
var NODES = skill_nodes_13579_default.nodes;
|
|
870
|
+
var WORDS = { labels: NODES, aliases: domain_aliases_default.aliases };
|
|
871
|
+
var SKILL_NODE = skill_nodes_13579_default.skills;
|
|
872
|
+
function contextOf(words, skill) {
|
|
873
|
+
return domainInText(words, WORDS) ?? SKILL_NODE[skill.split(":").pop() ?? skill] ?? null;
|
|
874
|
+
}
|
|
875
|
+
function skillDirectory(name, cwd) {
|
|
876
|
+
const roots = [join(cwd, ".claude", "skills"), join(homedir(), ".claude", "skills")];
|
|
877
|
+
const given = process.env["ARP_SKILLS_DIR"];
|
|
878
|
+
if (given !== undefined && given !== "")
|
|
879
|
+
roots.unshift(given);
|
|
880
|
+
return roots.map((root) => join(root, name)).find((dir) => existsSync(join(dir, "SKILL.md"))) ?? null;
|
|
881
|
+
}
|
|
882
|
+
function arpHome() {
|
|
883
|
+
const given = process.env["ARP_HOME"]?.trim();
|
|
884
|
+
return given !== undefined && given !== "" ? given : join(homedir(), ".arp");
|
|
885
|
+
}
|
|
886
|
+
function appendFailure(line) {
|
|
887
|
+
const path = join(arpHome(), "failures.jsonl");
|
|
888
|
+
const seen = existsSync(path) ? readFileSync(path, "utf8") : "";
|
|
889
|
+
const key = `"session":${JSON.stringify(line.session)},"skill":${JSON.stringify(line.skill)},`;
|
|
890
|
+
if (seen.split(`
|
|
891
|
+
`).some((row) => row.includes(key) && row.includes(`"reason":"${line.reason}"`)))
|
|
892
|
+
return false;
|
|
893
|
+
mkdirSync(dirname2(path), { recursive: true });
|
|
894
|
+
appendOwn(path, `${JSON.stringify(line)}
|
|
895
|
+
`);
|
|
896
|
+
return true;
|
|
897
|
+
}
|
|
898
|
+
|
|
899
|
+
// ../hook/src/backfill.ts
|
|
900
|
+
var BODY = /^Base directory for this skill: ([^\n]+)/;
|
|
901
|
+
function blocksOf(content) {
|
|
902
|
+
return Array.isArray(content) ? content : [];
|
|
903
|
+
}
|
|
904
|
+
function textOf(content) {
|
|
905
|
+
if (typeof content === "string")
|
|
906
|
+
return content;
|
|
907
|
+
return blocksOf(content).map((block) => typeof block?.text === "string" ? block.text : "").join(`
|
|
908
|
+
`);
|
|
909
|
+
}
|
|
910
|
+
var lastPart = (name) => name.split(":").pop() ?? name;
|
|
911
|
+
function fromDisk(name, cwd) {
|
|
912
|
+
try {
|
|
913
|
+
const directory = skillDirectory(name, cwd);
|
|
914
|
+
return directory === null ? null : { name, directory, markdown: readFileSync2(join2(directory, "SKILL.md"), "utf8") };
|
|
915
|
+
} catch {
|
|
916
|
+
return null;
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
function readTranscript(text, fallback) {
|
|
920
|
+
const active = [];
|
|
921
|
+
const commands = new Map;
|
|
922
|
+
const pending = new Map;
|
|
923
|
+
const failures = [];
|
|
924
|
+
let uses = 0;
|
|
925
|
+
let words = "";
|
|
926
|
+
for (const line of text.split(`
|
|
927
|
+
`)) {
|
|
928
|
+
if (!/tool_use|tool_result|Base directory for this skill|"user"/.test(line))
|
|
929
|
+
continue;
|
|
930
|
+
let entry;
|
|
931
|
+
try {
|
|
932
|
+
entry = JSON.parse(line);
|
|
933
|
+
} catch {
|
|
934
|
+
continue;
|
|
935
|
+
}
|
|
936
|
+
if (entry["isSidechain"] === true)
|
|
937
|
+
continue;
|
|
938
|
+
const message = entry["message"];
|
|
939
|
+
const content = message?.content;
|
|
940
|
+
const session = typeof entry["sessionId"] === "string" ? entry["sessionId"] : fallback;
|
|
941
|
+
const cwd = typeof entry["cwd"] === "string" ? entry["cwd"] : "";
|
|
942
|
+
const at = typeof entry["timestamp"] === "string" ? entry["timestamp"] : "";
|
|
943
|
+
if (entry["type"] === "assistant") {
|
|
944
|
+
for (const block of blocksOf(content)) {
|
|
945
|
+
if (block?.type !== "tool_use" || typeof block.id !== "string")
|
|
946
|
+
continue;
|
|
947
|
+
const input = block.input ?? {};
|
|
948
|
+
if (block.name === "Skill" && typeof input["skill"] === "string") {
|
|
949
|
+
uses += 1;
|
|
950
|
+
pending.set(block.id, input["skill"]);
|
|
951
|
+
const known = fromDisk(input["skill"], cwd);
|
|
952
|
+
if (known !== null)
|
|
953
|
+
active.unshift(known);
|
|
954
|
+
} else if (block.name === "Bash" && typeof input["command"] === "string") {
|
|
955
|
+
commands.set(block.id, input["command"]);
|
|
956
|
+
}
|
|
957
|
+
}
|
|
958
|
+
continue;
|
|
959
|
+
}
|
|
960
|
+
if (entry["type"] !== "user")
|
|
961
|
+
continue;
|
|
962
|
+
const typed = textOf(content);
|
|
963
|
+
if (entry["isMeta"] !== true && typed.trim() !== "" && !typed.trimStart().startsWith("<"))
|
|
964
|
+
words = typed;
|
|
965
|
+
const directory = BODY.exec(textOf(content))?.[1]?.trim();
|
|
966
|
+
if (entry["isMeta"] === true && directory !== undefined) {
|
|
967
|
+
const folder = basename(directory);
|
|
968
|
+
const call = [...pending].find(([, name2]) => lastPart(name2) === folder);
|
|
969
|
+
if (call === undefined)
|
|
970
|
+
uses += 1;
|
|
971
|
+
else
|
|
972
|
+
pending.delete(call[0]);
|
|
973
|
+
const name = call?.[1] ?? folder;
|
|
974
|
+
const known = active.findIndex((skill) => skill.name === name);
|
|
975
|
+
if (known !== -1)
|
|
976
|
+
active.splice(known, 1);
|
|
977
|
+
active.unshift({ name, directory, markdown: textOf(content) });
|
|
978
|
+
continue;
|
|
979
|
+
}
|
|
980
|
+
for (const block of blocksOf(content)) {
|
|
981
|
+
if (block?.type !== "tool_result" || typeof block.tool_use_id !== "string")
|
|
982
|
+
continue;
|
|
983
|
+
if (block.is_error === true)
|
|
984
|
+
pending.delete(block.tool_use_id);
|
|
985
|
+
if (block.is_error !== true)
|
|
986
|
+
continue;
|
|
987
|
+
const command = commands.get(block.tool_use_id);
|
|
988
|
+
if (command === undefined)
|
|
989
|
+
continue;
|
|
990
|
+
const output = textOf(block.content).slice(0, 4000);
|
|
991
|
+
if (isCancelled(output))
|
|
992
|
+
continue;
|
|
993
|
+
const reason = failureReason(output);
|
|
994
|
+
if (reason === null)
|
|
995
|
+
continue;
|
|
996
|
+
const skill = active.find((candidate) => askedBySkill(command, candidate.markdown, candidate.directory));
|
|
997
|
+
if (skill === undefined)
|
|
998
|
+
continue;
|
|
999
|
+
const domain = contextOf(words, skill.name);
|
|
1000
|
+
failures.push({ at, session, skill: skill.name, source: null, ...domain === null ? {} : { domain }, reason });
|
|
1001
|
+
}
|
|
1002
|
+
}
|
|
1003
|
+
return { uses, failures };
|
|
1004
|
+
}
|
|
1005
|
+
function transcripts(root) {
|
|
1006
|
+
const found = [];
|
|
1007
|
+
let names;
|
|
1008
|
+
try {
|
|
1009
|
+
names = readdirSync(root);
|
|
1010
|
+
} catch {
|
|
1011
|
+
return found;
|
|
1012
|
+
}
|
|
1013
|
+
for (const name of names) {
|
|
1014
|
+
const path = join2(root, name);
|
|
1015
|
+
try {
|
|
1016
|
+
if (statSync(path).isDirectory())
|
|
1017
|
+
found.push(...transcripts(path));
|
|
1018
|
+
else if (name.endsWith(".jsonl"))
|
|
1019
|
+
found.push(path);
|
|
1020
|
+
} catch {
|
|
1021
|
+
continue;
|
|
1022
|
+
}
|
|
1023
|
+
}
|
|
1024
|
+
return found;
|
|
1025
|
+
}
|
|
1026
|
+
function backfill(root = join2(homedir2(), ".claude", "projects")) {
|
|
1027
|
+
const files = transcripts(root);
|
|
1028
|
+
let uses = 0;
|
|
1029
|
+
let added = 0;
|
|
1030
|
+
for (const file of files) {
|
|
1031
|
+
let text;
|
|
1032
|
+
try {
|
|
1033
|
+
text = readFileSync2(file, "utf8");
|
|
1034
|
+
} catch {
|
|
1035
|
+
continue;
|
|
1036
|
+
}
|
|
1037
|
+
const read = readTranscript(text, basename(file, ".jsonl"));
|
|
1038
|
+
uses += read.uses;
|
|
1039
|
+
for (const failure of read.failures)
|
|
1040
|
+
if (appendFailure(failure))
|
|
1041
|
+
added += 1;
|
|
1042
|
+
}
|
|
1043
|
+
return { transcripts: files.length, uses, added, file: join2(arpHome(), "failures.jsonl") };
|
|
1044
|
+
}
|
|
1045
|
+
export {
|
|
1046
|
+
readTranscript,
|
|
1047
|
+
backfill
|
|
1048
|
+
};
|