@warpgogol/forge 2.21.5 → 2.21.6

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.
Files changed (3) hide show
  1. package/README.md +93 -0
  2. package/README.uk.md +93 -0
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -447,6 +447,99 @@ Forge provides the tools — `forge doctor`, `forge rfc.validate`, `forge skill.
447
447
 
448
448
  ---
449
449
 
450
+ ## Skill packs
451
+
452
+ Skill packs let you create project-local skills under your own prefix, separate from Forge's portable `fo-` skills. This is useful when your project has domain-specific workflows that don't belong in Forge's portable skill set.
453
+
454
+ ### Declaring a pack
455
+
456
+ Add a `skillPacks` entry to `forge.yaml`:
457
+
458
+ ```yaml
459
+ skillPacks:
460
+ - prefix: wg
461
+ dir: packages/my-skills/skills
462
+ ```
463
+
464
+ - `prefix` — short identifier used as a skill name prefix (e.g. `wg-deploy`, `wg-content-check`). Cannot be `fo` (reserved for Forge).
465
+ - `dir` — directory containing your pack skills. Each skill is a subdirectory with a `SKILL.md` file.
466
+
467
+ ### Pack manifest (`forge.plugin.yaml`)
468
+
469
+ Each pack directory must contain a `forge.plugin.yaml` manifest:
470
+
471
+ ```yaml
472
+ id: my-pack
473
+ version: 1.0.0
474
+ ```
475
+
476
+ - `id` — kebab-case identifier for the pack.
477
+ - `version` — semver version string.
478
+
479
+ `forge init` auto-creates this manifest if it's missing. You can also create it manually.
480
+
481
+ ### Skill structure
482
+
483
+ Skills follow the same structure as Forge skills:
484
+
485
+ ```
486
+ packages/my-skills/skills/
487
+ forge.plugin.yaml # pack manifest
488
+ wg-deploy/
489
+ SKILL.md # skill definition with frontmatter
490
+ wg-content-check/
491
+ SKILL.md
492
+ ```
493
+
494
+ Each `SKILL.md` has standardized frontmatter (name, description, category, concerns, dependsOn) — the same format as Forge's `fo-` skills.
495
+
496
+ ### Validation commands
497
+
498
+ ```sh
499
+ # Validate all pack manifests
500
+ pnpm exec forge plugin.validate
501
+
502
+ # List discovered packs
503
+ pnpm exec forge plugin.discover
504
+
505
+ # Validate individual skills (including pack skills)
506
+ pnpm exec forge skill.validate
507
+
508
+ # List all skills (pack skills annotated with pack:<prefix>)
509
+ pnpm exec forge skill.list
510
+ ```
511
+
512
+ ### Extension points (Compass contract blocks)
513
+
514
+ Packs can declare custom Compass contract blocks — source-file markers that `compass.validate` enforces. This lets your pack define its own `<MY_CONTRACT>` blocks with required tags:
515
+
516
+ ```yaml
517
+ id: my-pack
518
+ version: 1.0.0
519
+ extensionPoints:
520
+ compass:
521
+ contract:
522
+ blocks:
523
+ - blockId: api-contract
524
+ requiredFor:
525
+ - "packages/my-pack/**/*.ts"
526
+ requiredTags:
527
+ - name: purpose
528
+ minWords: 3
529
+ ```
530
+
531
+ `compass.validate` will emit `COMPASS-PLUGIN-01` (missing block), `COMPASS-PLUGIN-02` (missing required tag), and `COMPASS-PLUGIN-03` (tag below minWords) for files matching `requiredFor` that don't carry the block.
532
+
533
+ ### Rules
534
+
535
+ - Pack skill names must start with the pack prefix (e.g. `wg-deploy` for prefix `wg`).
536
+ - Pack skills cannot use the `fo-` prefix (reserved for Forge).
537
+ - Pack skills cannot reference platform RFC/ADR ids or platform names.
538
+ - Pack skills may depend on Forge skills, but Forge skills may not depend on pack skills (preserves portability).
539
+ - If a pack skill name conflicts with a Forge skill name, the pack skill is skipped during sync.
540
+
541
+ ---
542
+
450
543
  ## Stack profiles
451
544
 
452
545
  A stack profile defines the project scaffold: directory structure, dependencies, CI config, and first workspace. Choose a profile with `--profile` when creating a new project.
package/README.uk.md CHANGED
@@ -438,6 +438,99 @@ Forge надає інструменти — `forge doctor`, `forge rfc.validate`
438
438
 
439
439
  ---
440
440
 
441
+ ## Пакети навичок
442
+
443
+ Пакети навичок (skill packs) дозволяють створювати навички проєкту під власним префіксом, окремо від портативних `fo-` навичок Forge. Це корисно, коли ваш проєкт має домен-специфічні робочі процеси, які не належать до портативного набору Forge.
444
+
445
+ ### Оголошення пакету
446
+
447
+ Додайте запис `skillPacks` у `forge.yaml`:
448
+
449
+ ```yaml
450
+ skillPacks:
451
+ - prefix: wg
452
+ dir: packages/my-skills/skills
453
+ ```
454
+
455
+ - `prefix` — короткий ідентифікатор, що використовується як префікс імені навички (наприклад `wg-deploy`, `wg-content-check`). Не може бути `fo` (зарезервовано для Forge).
456
+ - `dir` — директорія, що містить навички вашого пакету. Кожна навичка — піддиректорія з файлом `SKILL.md`.
457
+
458
+ ### Маніфест пакету (`forge.plugin.yaml`)
459
+
460
+ Кожна директорія пакету повинна містити маніфест `forge.plugin.yaml`:
461
+
462
+ ```yaml
463
+ id: my-pack
464
+ version: 1.0.0
465
+ ```
466
+
467
+ - `id` — ідентифікатор пакету в kebab-case.
468
+ - `version` — рядок версії у форматі semver.
469
+
470
+ `forge init` автоматично створює цей маніфест, якщо він відсутній. Ви також можете створити його вручну.
471
+
472
+ ### Структура навичок
473
+
474
+ Навички мають ту саму структуру, що й навички Forge:
475
+
476
+ ```
477
+ packages/my-skills/skills/
478
+ forge.plugin.yaml # маніфест пакету
479
+ wg-deploy/
480
+ SKILL.md # визначення навички з frontmatter
481
+ wg-content-check/
482
+ SKILL.md
483
+ ```
484
+
485
+ Кожен `SKILL.md` має стандартизований frontmatter (name, description, category, concerns, dependsOn) — той самий формат, що й у `fo-` навичок Forge.
486
+
487
+ ### Команди валідації
488
+
489
+ ```sh
490
+ # Валідувати всі маніфести пакетів
491
+ pnpm exec forge plugin.validate
492
+
493
+ # Перелічити виявлені пакети
494
+ pnpm exec forge plugin.discover
495
+
496
+ # Валідувати окремі навички (включно з навичками пакетів)
497
+ pnpm exec forge skill.validate
498
+
499
+ # Перелічити всі навички (навички пакетів позначені pack:<prefix>)
500
+ pnpm exec forge skill.list
501
+ ```
502
+
503
+ ### Точки розширення (блоки Compass-контракту)
504
+
505
+ Пакети можуть оголошувати власні блоки Compass-контракту — маркери у вихідних файлах, які `compass.validate` перевіряє. Це дозволяє вашому пакету визначати власні `<MY_CONTRACT>` блоки з обов'язковими тегами:
506
+
507
+ ```yaml
508
+ id: my-pack
509
+ version: 1.0.0
510
+ extensionPoints:
511
+ compass:
512
+ contract:
513
+ blocks:
514
+ - blockId: api-contract
515
+ requiredFor:
516
+ - "packages/my-pack/**/*.ts"
517
+ requiredTags:
518
+ - name: purpose
519
+ minWords: 3
520
+ ```
521
+
522
+ `compass.validate` видаватиме `COMPASS-PLUGIN-01` (відсутній блок), `COMPASS-PLUGIN-02` (відсутній обов'язковий тег) та `COMPASS-PLUGIN-03` (тег з меншою кількістю слів) для файлів, що відповідають `requiredFor`, але не містять блок.
523
+
524
+ ### Правила
525
+
526
+ - Імена навичок пакету повинні починатися з префіксу пакету (наприклад `wg-deploy` для префіксу `wg`).
527
+ - Навички пакету не можуть використовувати префікс `fo-` (зарезервовано для Forge).
528
+ - Навички пакету не можуть посилатися на ідентифікатори платформених RFC/ADR або назви платформи.
529
+ - Навички пакету можуть залежати від навичок Forge, але навички Forge не можуть залежати від навичок пакету (зберігає портативність).
530
+ - Якщо ім'я навички пакету конфліктує з іменем навички Forge, навичка пакету пропускається під час синхронізації.
531
+
532
+ ---
533
+
441
534
  ## Профілі стеку
442
535
 
443
536
  Профіль стеку визначає каркас проєкту: структуру директорій, залежності, конфігурацію CI та перший робочий простір. Оберіть профіль прапорцем `--profile` під час створення проєкту.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warpgogol/forge",
3
- "version": "2.21.5",
3
+ "version": "2.21.6",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",