agent-skills-standard 1.10.3 → 2.0.0
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 +1 -1
- package/dist/index.js +57 -50
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -143,6 +143,6 @@ No. If you have custom rules in <code>.cursorrules</code> or other files, you ca
|
|
|
143
143
|
|
|
144
144
|
| Version | Date | Skills | Avg Tokens | Savings (%) | Report |
|
|
145
145
|
| --- | --- | --- | --- | --- | --- |
|
|
146
|
+
| v2.0.0 | 2026-03-25 | 235 | 523 | 86% | [Report](benchmarks/archive/v2.0.0.md) |
|
|
146
147
|
| v1.10.3 | 2026-03-21 | 234 | 505 | 86% | [Report](benchmarks/archive/v1.10.3.md) |
|
|
147
148
|
| v1.10.1 | 2026-03-16 | 229 | 428 | 88% | [Report](benchmarks/archive/v1.10.1.md) |
|
|
148
|
-
| v1.10.0 | 2026-03-16 | 229 | 434 | 88% | [Report](benchmarks/archive/v1.10.0.md) |
|
package/dist/index.js
CHANGED
|
@@ -213,71 +213,71 @@ var Framework = /* @__PURE__ */ ((Framework2) => {
|
|
|
213
213
|
const SKILL_DETECTION_REGISTRY = {
|
|
214
214
|
[Framework.Flutter]: [
|
|
215
215
|
{
|
|
216
|
-
id: "riverpod-state-management",
|
|
216
|
+
id: "flutter-riverpod-state-management",
|
|
217
217
|
packages: ["flutter_riverpod", "riverpod"]
|
|
218
218
|
},
|
|
219
219
|
{
|
|
220
|
-
id: "bloc-state-management",
|
|
220
|
+
id: "flutter-bloc-state-management",
|
|
221
221
|
packages: ["flutter_bloc", "bloc"]
|
|
222
222
|
},
|
|
223
223
|
{
|
|
224
|
-
id: "auto-route-navigation",
|
|
224
|
+
id: "flutter-auto-route-navigation",
|
|
225
225
|
packages: ["auto_route"]
|
|
226
226
|
},
|
|
227
227
|
{
|
|
228
|
-
id: "go-router-navigation",
|
|
228
|
+
id: "flutter-go-router-navigation",
|
|
229
229
|
packages: ["go_router"]
|
|
230
230
|
},
|
|
231
231
|
{
|
|
232
|
-
id: "getx-navigation",
|
|
232
|
+
id: "flutter-getx-navigation",
|
|
233
233
|
packages: ["get"]
|
|
234
234
|
// Special handling for exact match required
|
|
235
235
|
},
|
|
236
236
|
{
|
|
237
|
-
id: "getx-state-management",
|
|
237
|
+
id: "flutter-getx-state-management",
|
|
238
238
|
packages: ["get"]
|
|
239
239
|
// Special handling for exact match required
|
|
240
240
|
},
|
|
241
241
|
{
|
|
242
|
-
id: "localization",
|
|
242
|
+
id: "flutter-localization",
|
|
243
243
|
packages: ["easy_localization"]
|
|
244
244
|
},
|
|
245
245
|
{
|
|
246
|
-
id: "retrofit-networking",
|
|
246
|
+
id: "flutter-retrofit-networking",
|
|
247
247
|
packages: ["retrofit"]
|
|
248
248
|
},
|
|
249
249
|
{
|
|
250
|
-
id: "dependency-injection",
|
|
250
|
+
id: "flutter-dependency-injection",
|
|
251
251
|
packages: ["get_it", "injectable"]
|
|
252
252
|
}
|
|
253
253
|
],
|
|
254
254
|
[Framework.NestJS]: [
|
|
255
255
|
{
|
|
256
|
-
id: "caching",
|
|
256
|
+
id: "nestjs-caching",
|
|
257
257
|
packages: ["@nestjs/cache-manager", "cache-manager"]
|
|
258
258
|
},
|
|
259
259
|
{
|
|
260
|
-
id: "database",
|
|
260
|
+
id: "nestjs-database",
|
|
261
261
|
packages: ["@nestjs/typeorm", "@nestjs/prisma", "@nestjs/mongoose"]
|
|
262
262
|
},
|
|
263
263
|
{
|
|
264
|
-
id: "security",
|
|
264
|
+
id: "nestjs-security",
|
|
265
265
|
packages: ["@nestjs/passport", "passport", "helmet"]
|
|
266
266
|
}
|
|
267
267
|
],
|
|
268
268
|
[Framework.Android]: [
|
|
269
269
|
{
|
|
270
|
-
id: "compose",
|
|
270
|
+
id: "android-compose",
|
|
271
271
|
packages: ["androidx.compose.ui"],
|
|
272
272
|
files: ["android", "build.gradle", "build.gradle.kts"]
|
|
273
273
|
},
|
|
274
274
|
{
|
|
275
|
-
id: "navigation",
|
|
275
|
+
id: "android-navigation",
|
|
276
276
|
packages: ["androidx.navigation:navigation-compose"],
|
|
277
277
|
files: ["android", "build.gradle", "build.gradle.kts"]
|
|
278
278
|
},
|
|
279
279
|
{
|
|
280
|
-
id: "legacy-navigation",
|
|
280
|
+
id: "android-legacy-navigation",
|
|
281
281
|
packages: [
|
|
282
282
|
"androidx.navigation:navigation-fragment",
|
|
283
283
|
"androidx.navigation:navigation-ui"
|
|
@@ -285,121 +285,121 @@ const SKILL_DETECTION_REGISTRY = {
|
|
|
285
285
|
files: ["android", "build.gradle", "build.gradle.kts"]
|
|
286
286
|
},
|
|
287
287
|
{
|
|
288
|
-
id: "di",
|
|
288
|
+
id: "android-di",
|
|
289
289
|
packages: ["hilt-android", "dagger-android"],
|
|
290
290
|
files: ["android", "build.gradle", "build.gradle.kts"]
|
|
291
291
|
},
|
|
292
292
|
{
|
|
293
|
-
id: "persistence",
|
|
293
|
+
id: "android-persistence",
|
|
294
294
|
packages: ["androidx.room:room-runtime"],
|
|
295
295
|
files: ["android", "build.gradle", "build.gradle.kts"]
|
|
296
296
|
},
|
|
297
297
|
{
|
|
298
|
-
id: "networking",
|
|
298
|
+
id: "android-networking",
|
|
299
299
|
packages: ["retrofit"],
|
|
300
300
|
files: ["android", "build.gradle", "build.gradle.kts"]
|
|
301
301
|
},
|
|
302
302
|
{
|
|
303
|
-
id: "concurrency",
|
|
303
|
+
id: "android-concurrency",
|
|
304
304
|
packages: ["kotlinx-coroutines-android"],
|
|
305
305
|
files: ["android", "build.gradle", "build.gradle.kts"]
|
|
306
306
|
}
|
|
307
307
|
],
|
|
308
308
|
[Framework.iOS]: [
|
|
309
309
|
{
|
|
310
|
-
id: "networking",
|
|
310
|
+
id: "ios-networking",
|
|
311
311
|
packages: ["Alamofire", "Moya"],
|
|
312
312
|
files: ["ios", "Podfile", "Package.swift"]
|
|
313
313
|
},
|
|
314
314
|
{
|
|
315
|
-
id: "dependency-injection",
|
|
315
|
+
id: "ios-dependency-injection",
|
|
316
316
|
packages: ["Swinject", "Resolver"],
|
|
317
317
|
files: ["ios", "Podfile", "Package.swift"]
|
|
318
318
|
},
|
|
319
319
|
{
|
|
320
|
-
id: "persistence",
|
|
320
|
+
id: "ios-persistence",
|
|
321
321
|
packages: ["Realm", "CoreData", "SQLite.swift"],
|
|
322
322
|
files: ["ios", "Podfile", "Package.swift"]
|
|
323
323
|
},
|
|
324
324
|
{
|
|
325
|
-
id: "state-management",
|
|
325
|
+
id: "ios-state-management",
|
|
326
326
|
packages: ["ComposableArchitecture", "CombineRuntime"],
|
|
327
327
|
files: ["ios", "Podfile", "Package.swift"]
|
|
328
328
|
},
|
|
329
329
|
{
|
|
330
|
-
id: "ui-navigation",
|
|
330
|
+
id: "ios-ui-navigation",
|
|
331
331
|
packages: ["Coordinator", "Router"],
|
|
332
332
|
files: ["ios", "Podfile", "Package.swift"]
|
|
333
333
|
}
|
|
334
334
|
],
|
|
335
335
|
[Framework.ReactNative]: [
|
|
336
336
|
{
|
|
337
|
-
id: "navigation",
|
|
337
|
+
id: "react-native-navigation",
|
|
338
338
|
packages: ["@react-navigation/native"]
|
|
339
339
|
},
|
|
340
340
|
{
|
|
341
|
-
id: "state-management",
|
|
341
|
+
id: "react-native-state-management",
|
|
342
342
|
packages: ["zustand", "@reduxjs/toolkit"]
|
|
343
343
|
},
|
|
344
344
|
{
|
|
345
|
-
id: "deployment",
|
|
345
|
+
id: "react-native-deployment",
|
|
346
346
|
packages: ["react-native-code-push", "expo-updates"]
|
|
347
347
|
},
|
|
348
348
|
{
|
|
349
|
-
id: "security",
|
|
349
|
+
id: "react-native-security",
|
|
350
350
|
packages: ["react-native-keychain", "react-native-ssl-pinning"]
|
|
351
351
|
},
|
|
352
352
|
{
|
|
353
|
-
id: "performance",
|
|
353
|
+
id: "react-native-performance",
|
|
354
354
|
packages: ["react-native-fast-image"]
|
|
355
355
|
}
|
|
356
356
|
],
|
|
357
357
|
[Framework.Laravel]: [
|
|
358
358
|
{
|
|
359
|
-
id: "api",
|
|
359
|
+
id: "laravel-api",
|
|
360
360
|
packages: ["laravel/sanctum", "laravel/passport"]
|
|
361
361
|
},
|
|
362
362
|
{
|
|
363
|
-
id: "background-processing",
|
|
363
|
+
id: "laravel-background-processing",
|
|
364
364
|
packages: ["laravel/horizon"]
|
|
365
365
|
},
|
|
366
366
|
{
|
|
367
|
-
id: "testing",
|
|
367
|
+
id: "laravel-testing",
|
|
368
368
|
packages: ["pestphp/pest", "phpunit/phpunit"]
|
|
369
369
|
},
|
|
370
370
|
{
|
|
371
|
-
id: "tooling",
|
|
371
|
+
id: "laravel-tooling",
|
|
372
372
|
packages: ["laravel/pint", "laravel/sail"]
|
|
373
373
|
},
|
|
374
374
|
{
|
|
375
|
-
id: "database-expert",
|
|
375
|
+
id: "laravel-database-expert",
|
|
376
376
|
packages: ["laravel/framework"]
|
|
377
377
|
// Always present, but used for sub-skill mapping
|
|
378
378
|
}
|
|
379
379
|
],
|
|
380
380
|
[Framework.NextJS]: [
|
|
381
381
|
{
|
|
382
|
-
id: "pages-router",
|
|
382
|
+
id: "nextjs-pages-router",
|
|
383
383
|
packages: [],
|
|
384
384
|
files: ["pages", "src/pages"]
|
|
385
385
|
},
|
|
386
386
|
{
|
|
387
|
-
id: "server-components",
|
|
387
|
+
id: "nextjs-server-components",
|
|
388
388
|
packages: [],
|
|
389
389
|
files: ["app", "src/app"]
|
|
390
390
|
},
|
|
391
391
|
{
|
|
392
|
-
id: "server-actions",
|
|
392
|
+
id: "nextjs-server-actions",
|
|
393
393
|
packages: [],
|
|
394
394
|
files: ["app", "src/app"]
|
|
395
395
|
},
|
|
396
396
|
{
|
|
397
|
-
id: "data-fetching",
|
|
397
|
+
id: "nextjs-data-fetching",
|
|
398
398
|
packages: [],
|
|
399
399
|
files: ["app", "src/app"]
|
|
400
400
|
},
|
|
401
401
|
{
|
|
402
|
-
id: "i18n",
|
|
402
|
+
id: "nextjs-i18n",
|
|
403
403
|
packages: ["next-intl", "react-intl", "next-translate", "i18next"],
|
|
404
404
|
files: [
|
|
405
405
|
"middleware.ts",
|
|
@@ -411,11 +411,11 @@ const SKILL_DETECTION_REGISTRY = {
|
|
|
411
411
|
],
|
|
412
412
|
[Framework.React]: [
|
|
413
413
|
{
|
|
414
|
-
id: "styling",
|
|
414
|
+
id: "react-styling",
|
|
415
415
|
packages: ["tailwind", "antd", "sass", "styled-components", "emotion"]
|
|
416
416
|
},
|
|
417
417
|
{
|
|
418
|
-
id: "state-management",
|
|
418
|
+
id: "react-state-management",
|
|
419
419
|
packages: [
|
|
420
420
|
"redux",
|
|
421
421
|
"@reduxjs/toolkit",
|
|
@@ -426,7 +426,7 @@ const SKILL_DETECTION_REGISTRY = {
|
|
|
426
426
|
]
|
|
427
427
|
},
|
|
428
428
|
{
|
|
429
|
-
id: "testing",
|
|
429
|
+
id: "react-testing",
|
|
430
430
|
packages: [
|
|
431
431
|
"jest",
|
|
432
432
|
"vitest",
|
|
@@ -438,15 +438,15 @@ const SKILL_DETECTION_REGISTRY = {
|
|
|
438
438
|
],
|
|
439
439
|
database: [
|
|
440
440
|
{
|
|
441
|
-
id: "postgresql",
|
|
441
|
+
id: "database-postgresql",
|
|
442
442
|
packages: ["pg", "pgx", "postgres", "sequelize", "typeorm", "prisma"]
|
|
443
443
|
},
|
|
444
444
|
{
|
|
445
|
-
id: "mongodb",
|
|
445
|
+
id: "database-mongodb",
|
|
446
446
|
packages: ["mongodb", "mongoose"]
|
|
447
447
|
},
|
|
448
448
|
{
|
|
449
|
-
id: "redis",
|
|
449
|
+
id: "database-redis",
|
|
450
450
|
packages: ["redis", "ioredis", "predis"]
|
|
451
451
|
}
|
|
452
452
|
]
|
|
@@ -476,15 +476,22 @@ const COMMON_SKILL_EXCLUDES = {
|
|
|
476
476
|
backend: [
|
|
477
477
|
"common-accessibility",
|
|
478
478
|
"common-mobile-animation",
|
|
479
|
-
"common-mobile-ux-core"
|
|
479
|
+
"common-mobile-ux-core",
|
|
480
|
+
"common-store-changelog",
|
|
481
|
+
"common-ui-design"
|
|
480
482
|
],
|
|
481
483
|
frontend: [
|
|
482
484
|
"common-observability",
|
|
483
485
|
"common-mobile-animation",
|
|
484
486
|
"common-mobile-ux-core",
|
|
485
|
-
"common-
|
|
487
|
+
"common-store-changelog"
|
|
486
488
|
],
|
|
487
|
-
mobile: [
|
|
489
|
+
mobile: [
|
|
490
|
+
"common-accessibility",
|
|
491
|
+
"common-api-design",
|
|
492
|
+
"common-observability",
|
|
493
|
+
"common-system-design"
|
|
494
|
+
]
|
|
488
495
|
};
|
|
489
496
|
function getFrameworkType(framework) {
|
|
490
497
|
if (BACKEND_FRAMEWORKS.includes(framework)) return "backend";
|
|
@@ -2529,7 +2536,7 @@ class SyncCommand {
|
|
|
2529
2536
|
}
|
|
2530
2537
|
}
|
|
2531
2538
|
}
|
|
2532
|
-
const version = "
|
|
2539
|
+
const version = "2.0.0";
|
|
2533
2540
|
const pkg = {
|
|
2534
2541
|
version
|
|
2535
2542
|
};
|
|
@@ -3047,7 +3054,7 @@ dotenv.config();
|
|
|
3047
3054
|
const program = new commander.Command();
|
|
3048
3055
|
program.name("agent-skills-standard").description(
|
|
3049
3056
|
"A CLI to manage and sync AI agent skills for Cursor, Claude, Copilot, Windsurf, and more."
|
|
3050
|
-
).version("
|
|
3057
|
+
).version("2.0.0");
|
|
3051
3058
|
program.command("init").description("Initialize a .skillsrc configuration file interactively").action(async () => {
|
|
3052
3059
|
const init = new InitCommand();
|
|
3053
3060
|
await init.run();
|