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 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-ui-design"
487
+ "common-store-changelog"
486
488
  ],
487
- mobile: ["common-accessibility", "common-api-design", "common-observability"]
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 = "1.10.3";
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("1.10.3");
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();