@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.
- package/README.md +93 -0
- package/README.uk.md +93 -0
- 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` під час створення проєкту.
|