@warpgogol/forge 0.17.0 → 0.17.1

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 +251 -36
  2. package/README.uk.md +490 -0
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,26 +1,223 @@
1
1
  # @warpgogol/forge
2
2
 
3
+ [Українська](README.uk.md) | English
4
+
3
5
  Portable governance engine for AI-assisted project development. Provides skills, RFC/ADR workflows, naming conventions, spec vendoring, and a CLI — all framework-agnostic and dependency-free (only `yaml` + `zod`).
4
6
 
5
- ## Install
7
+ ## What you can build with Forge
8
+
9
+ Forge supports four kinds of projects. You pick one when you start — everything else is automatic.
10
+
11
+ | Project type | What it is | Example ideas |
12
+ | --- | --- | --- |
13
+ | **Website** | A public website or web app — pages, blog, portfolio, landing page, online store | Photography studio site, restaurant website, SaaS landing page |
14
+ | **Browser game** | An interactive game that runs in a web browser — 2D, arcade, puzzle, adventure | Catch falling stars, tile-matching puzzle, platformer |
15
+ | **Video** | A programmatic video composition — animated logo, intro, product showcase, motion design | Brand intro video, product demo, social media ad clip |
16
+ | **Governance / library** | A code library or governance-only project — no website, no game, no video, just structure and documentation | npm package, internal toolkit, documentation hub |
17
+
18
+ Each project type gets its own scaffold: the right folder structure, the right dependencies, the right tools. You don't need to know what any of those are — Forge sets them up for you.
19
+
20
+ ---
21
+
22
+ ## Complete installation guide (from zero)
23
+
24
+ If you've never programmed before, this section takes you from a completely empty computer to a working Forge setup. Follow the steps for your operating system.
25
+
26
+ ### What you need
27
+
28
+ You need two free programs:
29
+
30
+ - **Node.js** (version 22 or newer) — lets your computer run JavaScript tools.
31
+ - **pnpm** — the package manager Forge uses to install dependencies. It's built into Node.js and just needs to be switched on.
32
+
33
+ Both are free. You install Node.js first, then enable pnpm with a single command.
34
+
35
+ ### Ubuntu
36
+
37
+ #### Step 1 — Install Node.js
38
+
39
+ 1. Open the **Terminal** app (press `Ctrl + Alt + T`, or search for "Terminal" in your applications).
40
+
41
+ 2. Download and install Node.js 22 (LTS) by pasting this command and pressing Enter:
42
+
43
+ ```sh
44
+ curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt-get install -y nodejs
45
+ ```
46
+
47
+ You'll be asked for your password — type it (you won't see the characters as you type, that's normal) and press Enter.
48
+
49
+ 3. Verify it worked:
50
+
51
+ ```sh
52
+ node --version
53
+ ```
54
+
55
+ You should see a version number like `v22.x.x`, not an error message.
56
+
57
+ #### Step 2 — Enable pnpm
58
+
59
+ Node.js includes a tool called **Corepack** that manages package managers. Enable pnpm with:
60
+
61
+ ```sh
62
+ corepack enable pnpm
63
+ ```
64
+
65
+ Verify:
66
+
67
+ ```sh
68
+ pnpm --version
69
+ ```
70
+
71
+ You should see a version number like `10.x.x`.
72
+
73
+ #### Step 3 — Install Forge globally
74
+
75
+ Installing Forge globally means the `forge` command is available everywhere on your computer, not just inside one project:
76
+
77
+ ```sh
78
+ pnpm add -g @warpgogol/forge
79
+ ```
80
+
81
+ Verify:
82
+
83
+ ```sh
84
+ forge --version
85
+ ```
86
+
87
+ You should see a version number. Forge is now installed and ready.
88
+
89
+ #### Step 4 — Install an AI-powered IDE
90
+
91
+ Forge works through conversation with an AI agent. You need an IDE that supports AI agents. We recommend **Windsurf** (tested with Forge):
92
+
93
+ 1. Go to [windsurf.com](https://windsurf.com) and download the Linux version.
94
+ 2. Open the downloaded file and follow the installer.
95
+ 3. Launch Windsurf.
96
+
97
+ You can also use **Cursor** ([cursor.com](https://cursor.com)) or any IDE that supports AI agent skills.
98
+
99
+ ### Windows
100
+
101
+ #### Step 1 — Install Node.js
102
+
103
+ 1. Go to [nodejs.org](https://nodejs.org) in your web browser.
104
+ 2. Download the **LTS version** (it will say "LTS" and "Recommended for Most Users"). It should be version 22.x or newer.
105
+ 3. Run the downloaded installer (`.msi` file). Accept all default options by clicking **Next** through each screen, then **Install**. If Windows asks for permission, click **Yes**.
106
+
107
+ 4. Verify it worked. Open **PowerShell** (search for "PowerShell" in the Start menu) and type:
108
+
109
+ ```sh
110
+ node --version
111
+ ```
112
+
113
+ You should see a version number like `v22.x.x`, not an error message.
114
+
115
+ #### Step 2 — Enable pnpm
116
+
117
+ Node.js includes a tool called **Corepack** that manages package managers. Enable pnpm with:
118
+
119
+ ```sh
120
+ corepack enable pnpm
121
+ ```
122
+
123
+ Verify:
124
+
125
+ ```sh
126
+ pnpm --version
127
+ ```
128
+
129
+ You should see a version number like `10.x.x`.
130
+
131
+ #### Step 3 — Install Forge globally
132
+
133
+ Installing Forge globally means the `forge` command is available everywhere on your computer, not just inside one project:
134
+
135
+ ```sh
136
+ pnpm add -g @warpgogol/forge
137
+ ```
138
+
139
+ Verify:
140
+
141
+ ```sh
142
+ forge --version
143
+ ```
144
+
145
+ You should see a version number. Forge is now installed and ready.
146
+
147
+ #### Step 4 — Install an AI-powered IDE
148
+
149
+ Forge works through conversation with an AI agent. You need an IDE that supports AI agents. We recommend **Windsurf** (tested with Forge):
150
+
151
+ 1. Go to [windsurf.com](https://windsurf.com) and download the Windows version.
152
+ 2. Run the downloaded installer and follow the setup wizard.
153
+ 3. Launch Windsurf.
154
+
155
+ You can also use **Cursor** ([cursor.com](https://cursor.com)) or any IDE that supports AI agent skills.
156
+
157
+ ### Optional — Install FFmpeg (only for video projects)
158
+
159
+ If you're planning to create **video** projects (the `editframe` profile), you need **FFmpeg** — a free tool for processing video and audio.
160
+
161
+ **Ubuntu:**
6
162
 
7
163
  ```sh
8
- npm install @warpgogol/forge
9
- # or
10
- pnpm add @warpgogol/forge
164
+ sudo apt-get install -y ffmpeg
165
+ ffmpeg -version
11
166
  ```
12
167
 
168
+ **Windows:**
169
+
170
+ 1. Go to [ffmpeg.org/download.html](https://ffmpeg.org/download.html) in your browser.
171
+ 2. Download a Windows build (look for "Windows builds" — the gyan.dev or BtbN builds are good choices).
172
+ 3. Extract the downloaded `.zip` file to a folder, e.g. `C:\ffmpeg`.
173
+ 4. Add FFmpeg to your system PATH:
174
+ - Open the Start menu, search for "Environment Variables", and click "Edit the system environment variables".
175
+ - Click **Environment Variables**.
176
+ - Under "System variables" (or "User variables"), find **Path**, select it, and click **Edit**.
177
+ - Click **New** and type `C:\ffmpeg\bin` (or wherever you extracted FFmpeg, in the `bin` subfolder).
178
+ - Click **OK** on all three windows.
179
+ 5. Close and reopen PowerShell, then verify:
180
+
181
+ ```sh
182
+ ffmpeg -version
183
+ ```
184
+
185
+ You should see version information, not an error.
186
+
187
+ ### Troubleshooting
188
+
189
+ - **"command not found" after installing Node.js** — Close and reopen your terminal (Ubuntu) or PowerShell (Windows). The system needs to reload the list of available commands.
190
+ - **"EACCES permission denied" on Ubuntu when installing Forge globally** — Run `sudo pnpm add -g @warpgogol/forge` instead.
191
+ - **"corepack: command not found"** — Your Node.js version is too old. Install Node.js 22+ using the steps above.
192
+ - **Windsurf can't find `forge`** — Close and reopen Windsurf after installing Forge. IDEs need to restart to pick up new global commands.
193
+ - **AI agent doesn't know about Forge** — You opened an empty folder, but the AI agent has no Forge context. Run `forge create my-project --profile editframe` (or the appropriate profile) in a terminal first, then open the created folder in your IDE. The `forge create` command populates the folder with skills, configuration, and `AGENTS.md` — without it, the AI agent can't discover Forge.
194
+
195
+ ---
196
+
13
197
  ## Quick start
14
198
 
15
- ### For creative operators — no terminal needed
199
+ ### For creative operators — one command, then just talk
16
200
 
17
- You don't need to know what a terminal is. You don't need to type a single command. If you have an AI-powered IDE (like Windsurf, Devin, or Cursor), Forge works entirely through conversation.
201
+ You need to run one command in the terminal to create your project. After that, everything works through conversation with an AI agent no more commands.
18
202
 
19
203
  #### Start a new project from scratch
20
204
 
21
- 1. **Create an empty folder** on your computer anywhere you like. Name it whatever you want your project to be called (use lowercase letters and hyphens, e.g. `my-brand-video`).
205
+ 1. **Create a Forge project.** Open a terminal (PowerShell on Windows, Terminal on Ubuntu) and run:
206
+
207
+ ```sh
208
+ forge create my-brand-video --profile editframe
209
+ ```
210
+
211
+ Replace `my-brand-video` with your project name (lowercase letters and hyphens). This creates a new folder with everything Forge needs — skills, configuration, and project structure. For other project types, use a different `--profile`:
22
212
 
23
- 2. **Open that folder in your AI IDE.** The folder is empty — that's exactly what we want.
213
+ | What you want to build | Profile flag |
214
+ | ----------------------------------------- | -------------------------------------- |
215
+ | Video (brand video, intro, motion design) | `--profile editframe` |
216
+ | Website (landing page, blog, portfolio) | `--profile astro-typescript-turborepo` |
217
+ | Browser game (2D, arcade, puzzle) | `--profile phaser-turborepo` |
218
+ | Library or governance-only project | `--profile forge-shell` |
219
+
220
+ 2. **Open the project folder in your AI IDE.** Open the folder that was created in step 1 in Windsurf or your preferred IDE.
24
221
 
25
222
  3. **Tell the AI agent what you want to build.** Just type it in the chat, in your own words. For example:
26
223
 
@@ -34,33 +231,44 @@ You don't need to know what a terminal is. You don't need to type a single comma
34
231
 
35
232
  > I want to make a browser game where you catch falling stars.
36
233
 
234
+ Or:
235
+
236
+ > I want to create a TypeScript library for calculating astrology charts.
237
+
37
238
  That's it. The AI agent will do everything else:
38
- - Install Forge and all necessary tools
39
- - Set up the project structure based on what you described (video, website, game, etc.)
239
+ - Set up the project structure based on what you described (video, website, game, library, etc.)
40
240
  - Configure language preferences and project settings
41
- - Start a live preview so you can see your work
241
+ - Start a live preview so you can see your work (for websites, games, and videos)
42
242
  - Tell you the URL to open in your browser
43
243
 
44
- 4. **Watch the preview.** The AI agent will give you a localhost link. Click it — your project is already running. As you describe changes, the agent updates the project and the preview refreshes automatically.
244
+ 4. **Watch the preview.** For websites, games, and videos, the AI agent will give you a localhost link. Click it — your project is already running. As you describe changes, the agent updates the project and the preview refreshes automatically.
245
+
246
+ For governance and library projects, there's no visual preview — the agent will set up the project structure and tell you when it's ready.
45
247
 
46
- 5. **Create together.** From here on, you just talk. Want a different color? Want to add a scene? Want to change the music? Just say it. The agent handles all the technical work.
248
+ 5. **Create together.** From here on, you just talk. Want a different color? Want to add a scene? Want to change the music? Want to add a new function to your library? Just say it. The agent handles all the technical work.
47
249
 
48
250
  #### Bring an existing project into Forge
49
251
 
50
252
  If you already have a project somewhere else and want to move it into Forge:
51
253
 
52
- 1. **Create an empty folder** and open it in your AI IDE.
254
+ 1. **Create a Forge project.** Open a terminal and run:
255
+
256
+ ```sh
257
+ forge create my-project
258
+ ```
259
+
260
+ Then open the created folder in your AI IDE.
53
261
 
54
262
  2. **Tell the AI agent:**
55
263
 
56
264
  > I want to bring my existing project into Forge. It's located at /path/to/my/project.
57
265
 
58
266
  The agent will:
59
- - Detect what kind of project it is (website, video, game, etc.)
267
+ - Detect what kind of project it is (website, video, game, library, etc.)
60
268
  - Move all your files into the new Forge project — including hidden files like `.env`
61
269
  - Optionally bring your git history
62
270
  - Verify everything builds correctly
63
- - Start a live preview
271
+ - Start a live preview (for visual project types)
64
272
 
65
273
  #### What if something goes wrong?
66
274
 
@@ -74,15 +282,20 @@ Just tell the AI agent. It can check the project's health, fix issues, and expla
74
282
 
75
283
  ```sh
76
284
  # Create a new project (scaffold + init + skills + AGENTS.md in one command)
77
- npx forge create my-project
285
+ forge create my-project
78
286
 
79
287
  # With a specific stack profile
80
- npx forge create my-site --profile astro-typescript-turborepo
81
- npx forge create my-game --profile phaser-turborepo
82
- npx forge create my-video --profile editframe
288
+ forge create my-site --profile astro-typescript-turborepo
289
+ forge create my-game --profile phaser-turborepo
290
+ forge create my-video --profile editframe
291
+ forge create my-library --profile forge-shell
292
+
293
+ ```
83
294
 
84
- # With a non-default package manager
85
- npx forge create my-project --package-manager npm
295
+ If Forge is not installed globally, use `pnpm dlx` instead:
296
+
297
+ ```sh
298
+ pnpm dlx @warpgogol/forge create my-project
86
299
  ```
87
300
 
88
301
  #### Bring an existing project into Forge
@@ -91,7 +304,7 @@ There is no CLI command for transplant — it is an interactive, AI-guided proce
91
304
 
92
305
  ```sh
93
306
  # 1. Create a new empty Forge project
94
- npx forge create my-project
307
+ forge create my-project
95
308
 
96
309
  # 2. Open the project in Windsurf (tested with forge) or your preferred IDE
97
310
 
@@ -108,29 +321,31 @@ npx forge create my-project
108
321
 
109
322
  ```sh
110
323
  # Check project health
111
- npx forge doctor
324
+ forge doctor
112
325
 
113
326
  # Validate RFCs
114
- npx forge rfc.validate
327
+ forge rfc.validate
115
328
 
116
329
  # List available skills
117
- npx forge skill.list
330
+ forge skill.list
118
331
  ```
119
332
 
120
333
  ## Stack profiles
121
334
 
122
335
  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.
123
336
 
124
- | Profile | Description | First workspace | Use case |
125
- | --- | --- | --- | --- |
126
- | `forge-shell` | Minimal Forge shell (default) | — | Governance-only projects, libraries, non-web projects |
127
- | `astro-typescript-turborepo` | Astro + TypeScript + pnpm + Turborepo | `sites/my-site` | Websites, web apps, content-driven sites |
128
- | `phaser-turborepo` | Phaser + TypeScript + pnpm + Turborepo | `games/my-game` | Browser games, interactive experiences |
129
- | `editframe` | Editframe React + Vite + TailwindCSS | `compositions/my-first-video` | Video compositions, brand videos, motion design |
337
+ | Profile | Project type | Description | First workspace | Use case |
338
+ | --- | --- | --- | --- | --- |
339
+ | `forge-shell` | Governance / library | Minimal Forge shell (default) | — | Governance-only projects, libraries, non-web projects |
340
+ | `astro-typescript-turborepo` | Website | Astro + TypeScript + pnpm + Turborepo | `sites/my-site` | Websites, web apps, content-driven sites |
341
+ | `phaser-turborepo` | Browser game | Phaser + TypeScript + pnpm + Turborepo | `games/my-game` | Browser games, interactive experiences |
342
+ | `editframe` | Video | Editframe React + Vite + TailwindCSS | `compositions/my-first-video` | Video compositions, brand videos, motion design |
343
+
344
+ The `editframe` profile also supports an **HTML template** (instead of React) for users who prefer web components over JSX. Choose between the two during project setup.
130
345
 
131
346
  ```sh
132
347
  # List available profiles (after install)
133
- npx forge profile.validate
348
+ forge profile.validate
134
349
  ```
135
350
 
136
351
  When you bring an existing project through the `/forge-bootstrap` transplant mode, Forge detects the matching profile automatically by checking for marker files (`astro.config.*`, `phaser.config.*`, `editframe.config.*`, etc.).
@@ -141,13 +356,13 @@ When a new version of `@warpgogol/forge` is published, consumers upgrade additiv
141
356
 
142
357
  ```sh
143
358
  # 1. Install the latest version
144
- npm install @warpgogol/forge@latest
359
+ pnpm add -g @warpgogol/forge@latest
145
360
 
146
361
  # 2. Sync skills and binding defaults from the installed version
147
- npx forge upgrade
362
+ forge upgrade
148
363
 
149
364
  # 3. Check project health
150
- npx forge doctor
365
+ forge doctor
151
366
  ```
152
367
 
153
368
  `forge upgrade` is additive — it never overwrites operator-set bindings, never deletes files, and is idempotent. It updates `forge.syncedVersion` in `forge.yaml` to track the last synced version. Use `--dry-run` to preview changes.
package/README.uk.md ADDED
@@ -0,0 +1,490 @@
1
+ # @warpgogol/forge
2
+
3
+ Українська | [English](README.md)
4
+
5
+ Портативний рушій управління для розробки проєктів за допомогою ШІ. Надає навички, RFC/ADR робочі процеси, угоди про найменування, вендоринг специфікацій та CLI — все незалежне від фреймворку та без зайвих залежностей (тільки `yaml` + `zod`).
6
+
7
+ ## Що можна створити за допомогою Forge
8
+
9
+ Forge підтримує чотири типи проєктів. Ви обираєте один на старті — все інше відбувається автоматично.
10
+
11
+ | Тип проєкту | Що це | Приклади |
12
+ | --- | --- | --- |
13
+ | **Вебсайт** | Публічний сайт або вебзастосунок — сторінки, блог, портфоліо, лендінг, інтернет-магазин | Сайт фотостудії, сайт ресторану, лендінг SaaS |
14
+ | **Браузерна гра** | Інтерактивна гра, що працює в браузері — 2D, аркада, головоломка, пригода | Лови зірки, головоломка з плитками, платформер |
15
+ | **Відео** | Програмна відеокомпозиція — анімований логотип, інтро, презентація продукту, motion-дизайн | Брендове інтро, демо продукту, реклама для соцмереж |
16
+ | **Управління / бібліотека** | Бібліотека коду або проєкт лише з управлінською структурою — без сайту, без гри, без відео, лише структура та документація | npm-пакет, внутрішній інструмент, центр документації |
17
+
18
+ Кожен тип проєкту отримує власний каркас: правильну структуру папок, правильні залежності, правильні інструменти. Вам не потрібно знати, що це таке — Forge налаштує все за вас.
19
+
20
+ ---
21
+
22
+ ## Повний посібник зі встановлення (з нуля)
23
+
24
+ Якщо ви ніколи раніше не програмували, цей розділ проведе вас від абсолютно порожнього комп'ютера до робочого налаштування Forge. Виконайте кроки для вашої операційної системи.
25
+
26
+ ### Що вам потрібно
27
+
28
+ Потрібні дві безкоштовні програми:
29
+
30
+ - **Node.js** (версія 22 або новіша) — дозволяє вашому комп'ютеру запускати JavaScript-інструменти.
31
+ - **pnpm** — менеджер пакетів, який Forge використовує для встановлення залежностей. Він вбудований у Node.js і його лише треба увімкнути.
32
+
33
+ Обидві програми безкоштовні. Спочатку встановлюєте Node.js, потім вмикаєте pnpm однією командою.
34
+
35
+ ### Ubuntu
36
+
37
+ #### Крок 1 — Встановлення Node.js
38
+
39
+ 1. Відкрийте програму **Термінал** (натисніть `Ctrl + Alt + T` або знайдіть «Термінал» у ваших програмах).
40
+
41
+ 2. Завантажте та встановіть Node.js 22 (LTS), вставивши цю команду та натиснувши Enter:
42
+
43
+ ```sh
44
+ curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt-get install -y nodejs
45
+ ```
46
+
47
+ Вас попросять ввести пароль — введіть його (символи не відображатимуться під час введення, це нормально) і натисніть Enter.
48
+
49
+ 3. Перевірте, чи все працює:
50
+
51
+ ```sh
52
+ node --version
53
+ ```
54
+
55
+ Ви маєте побачити номер версії, наприклад `v22.x.x`, а не повідомлення про помилку.
56
+
57
+ #### Крок 2 — Увімкнення pnpm
58
+
59
+ Node.js містить інструмент **Corepack**, який керує менеджерами пакетів. Увімкніть pnpm командою:
60
+
61
+ ```sh
62
+ corepack enable pnpm
63
+ ```
64
+
65
+ Перевірте:
66
+
67
+ ```sh
68
+ pnpm --version
69
+ ```
70
+
71
+ Ви маєте побачити номер версії, наприклад `10.x.x`.
72
+
73
+ #### Крок 3 — Глобальне встановлення Forge
74
+
75
+ Глобальне встановлення означає, що команда `forge` доступна скрізь на вашому комп'ютері, а не лише в одному проєкті:
76
+
77
+ ```sh
78
+ pnpm add -g @warpgogol/forge
79
+ ```
80
+
81
+ Перевірте:
82
+
83
+ ```sh
84
+ forge --version
85
+ ```
86
+
87
+ Ви маєте побачити номер версії. Forge встановлено та готовий до роботи.
88
+
89
+ #### Крок 4 — Встановлення IDE зі штучним інтелектом
90
+
91
+ Forge працює через розмову з ШІ-агентом. Вам потрібне IDE, що підтримує ШІ-агентів. Рекомендуємо **Windsurf** (протестовано з Forge):
92
+
93
+ 1. Перейдіть на [windsurf.com](https://windsurf.com) та завантажте версію для Linux.
94
+ 2. Відкрийте завантажений файл і дотримуйтесь інструкцій установника.
95
+ 3. Запустіть Windsurf.
96
+
97
+ Можете також використовувати **Cursor** ([cursor.com](https://cursor.com)) або будь-яке IDE, що підтримує навички ШІ-агентів.
98
+
99
+ ### Windows
100
+
101
+ #### Крок 1 — Встановлення Node.js
102
+
103
+ 1. Відкрийте [nodejs.org](https://nodejs.org) у вашому браузері.
104
+ 2. Завантажте **LTS-версію** (на ній буде написано «LTS» та «Recommended for Most Users»). Версія має бути 22.x або новіша.
105
+ 3. Запустіть завантажений установник (файл `.msi`). Прийміть усі стандартні параметри, натискаючи **Next** на кожному екрані, потім **Install**. Якщо Windows попросить дозвіл, натисніть **Yes**.
106
+
107
+ 4. Перевірте, чи все працює. Відкрийте **PowerShell** (знайдіть «PowerShell» у меню Пуск) і введіть:
108
+
109
+ ```sh
110
+ node --version
111
+ ```
112
+
113
+ Ви маєте побачити номер версії, наприклад `v22.x.x`, а не повідомлення про помилку.
114
+
115
+ #### Крок 2 — Увімкнення pnpm
116
+
117
+ Node.js містить інструмент **Corepack**, який керує менеджерами пакетів. Увімкніть pnpm командою:
118
+
119
+ ```sh
120
+ corepack enable pnpm
121
+ ```
122
+
123
+ Перевірте:
124
+
125
+ ```sh
126
+ pnpm --version
127
+ ```
128
+
129
+ Ви маєте побачити номер версії, наприклад `10.x.x`.
130
+
131
+ #### Крок 3 — Глобальне встановлення Forge
132
+
133
+ Глобальне встановлення означає, що команда `forge` доступна скрізь на вашому комп'ютері, а не лише в одному проєкті:
134
+
135
+ ```sh
136
+ pnpm add -g @warpgogol/forge
137
+ ```
138
+
139
+ Перевірте:
140
+
141
+ ```sh
142
+ forge --version
143
+ ```
144
+
145
+ Ви маєте побачити номер версії. Forge встановлено та готовий до роботи.
146
+
147
+ #### Крок 4 — Встановлення IDE зі штучним інтелектом
148
+
149
+ Forge працює через розмову з ШІ-агентом. Вам потрібне IDE, що підтримує ШІ-агентів. Рекомендуємо **Windsurf** (протестовано з Forge):
150
+
151
+ 1. Перейдіть на [windsurf.com](https://windsurf.com) та завантажте версію для Windows.
152
+ 2. Запустіть завантажений установник і дотримуйтесь майстра налаштування.
153
+ 3. Запустіть Windsurf.
154
+
155
+ Можете також використовувати **Cursor** ([cursor.com](https://cursor.com)) або будь-яке IDE, що підтримує навички ШІ-агентів.
156
+
157
+ ### Додатково — Встановлення FFmpeg (лише для відеопроєктів)
158
+
159
+ Якщо ви плануєте створювати **відеопроєкти** (профіль `editframe`), вам потрібен **FFmpeg** — безкоштовний інструмент для обробки відео та аудіо.
160
+
161
+ **Ubuntu:**
162
+
163
+ ```sh
164
+ sudo apt-get install -y ffmpeg
165
+ ffmpeg -version
166
+ ```
167
+
168
+ **Windows:**
169
+
170
+ 1. Відкрийте [ffmpeg.org/download.html](https://ffmpeg.org/download.html) у браузері.
171
+ 2. Завантажте збірку для Windows (шукайте «Windows builds» — збірки gyan.dev або BtbN — хороші варіанти).
172
+ 3. Розпакуйте завантажений `.zip` файл у папку, наприклад `C:\ffmpeg`.
173
+ 4. Додайте FFmpeg до системної змінної PATH:
174
+ - Відкрийте меню Пуск, знайдіть «Environment Variables» і натисніть «Edit the system environment variables».
175
+ - Натисніть **Environment Variables**.
176
+ - У розділі «System variables» (або «User variables») знайдіть **Path**, виберіть його та натисніть **Edit**.
177
+ - Натисніть **New** і введіть `C:\ffmpeg\bin` (або туди, куди ви розпакували FFmpeg, у підпапку `bin`).
178
+ - Натисніть **OK** у всіх трьох вікнах.
179
+ 5. Закрийте та знову відкрийте PowerShell, потім перевірте:
180
+
181
+ ```sh
182
+ ffmpeg -version
183
+ ```
184
+
185
+ Ви маєте побачити інформацію про версію, а не помилку.
186
+
187
+ ### Усунення проблем
188
+
189
+ - **«command not found» після встановлення Node.js** — Закрийте та знову відкрийте термінал (Ubuntu) або PowerShell (Windows). Системі потрібно перезавантажити список доступних команд.
190
+ - **«EACCES permission denied» в Ubuntu під час глобального встановлення Forge** — Виконайте `sudo pnpm add -g @warpgogol/forge`.
191
+ - **«corepack: command not found»** — Ваша версія Node.js занадто стара. Встановіть Node.js 22+ за кроками вище.
192
+ - **Windsurf не бачить `forge`** — Закрийте та знову відкрийте Windsurf після встановлення Forge. IDE потрібно перезапустити, щоб підхопити нові глобальні команди.
193
+ - **ШІ-агент не знає про Forge** — Ви відкрили порожню папку, але ШІ-агент не має контексту Forge. Спочатку виконайте `forge create my-project --profile editframe` (або відповідний профіль) у терміналі, потім відкрийте створену папку в вашому IDE. Команда `forge create` наповнює папку навичками, конфігурацією та `AGENTS.md` — без цього ШІ-агент не може виявити Forge.
194
+
195
+ ---
196
+
197
+ ## Швидкий старт
198
+
199
+ ### Для креативних операторів — одна команда, потім просто розмовляйте
200
+
201
+ Потрібно виконати одну команду в терміналі для створення проєкту. Після цього все працює через розмову з ШІ-агентом — більше команд не потрібно.
202
+
203
+ #### Створення нового проєкту з нуля
204
+
205
+ 1. **Створіть проєкт Forge.** Відкрийте термінал (PowerShell на Windows, Термінал на Ubuntu) і виконайте:
206
+
207
+ ```sh
208
+ forge create my-brand-video --profile editframe
209
+ ```
210
+
211
+ Замініть `my-brand-video` на назву вашого проєкту (малі літери та дефіси). Це створить нову папку з усьом, що потрібно Forge — навичками, конфігурацією та структурою проєкту. Для інших типів проєктів використовуйте інший `--profile`:
212
+
213
+ | Що ви хочете створити | Прапорець профілю |
214
+ | -------------------------------------------- | -------------------------------------- |
215
+ | Відео (брендове відео, інтро, motion-дизайн) | `--profile editframe` |
216
+ | Вебсайт (лендінг, блог, портфоліо) | `--profile astro-typescript-turborepo` |
217
+ | Браузерна гра (2D, аркада, головоломка) | `--profile phaser-turborepo` |
218
+ | Бібліотека або проєкт лише з управлінням | `--profile forge-shell` |
219
+
220
+ 2. **Відкрийте папку проєкту в вашому IDE.** Відкрийте папку, створену на кроці 1, у Windsurf або вашому IDE.
221
+
222
+ 3. **Скажіть ШІ-агенту, що ви хочете створити.** Просто напишіть це в чаті своїми словами. Наприклад:
223
+
224
+ > Я хочу створити брендове відео для своєї кав'ярні. Воно має мати анімований логотип, коротке інтро та презентацію продукту.
225
+
226
+ Або:
227
+
228
+ > Я хочу зробити вебсайт для своєї фотостудії.
229
+
230
+ Або:
231
+
232
+ > Я хочу створити браузерну гру, де ловиш зірки, що падають.
233
+
234
+ Або:
235
+
236
+ > Я хочу створити TypeScript-бібліотеку для розрахунку астрологічних карт.
237
+
238
+ Це все. ШІ-агент зробить усе інше:
239
+ - Налаштує структуру проєкту залежно від того, що ви описали (відео, вебсайт, гра, бібліотека тощо)
240
+ - Налаштує мовні вподобання та параметри проєкту
241
+ - Запустить живий попередній перегляд, щоб ви бачили свою роботу (для вебсайтів, ігор та відео)
242
+ - Скаже вам URL для відкриття в браузері
243
+
244
+ 4. **Дивіться попередній перегляд.** Для вебсайтів, ігор та відео ШІ-агент дасть вам посилання localhost. Натисніть його — ваш проєкт уже запущений. Коли ви описуєте зміни, агент оновлює проєкт, а попередній перегляд оновлюється автоматично.
245
+
246
+ Для проєктів управління та бібліотек візуального попереднього перегляду немає — агент налаштує структуру проєкту та скаже, коли все готово.
247
+
248
+ 5. **Створюйте разом.** Далі ви просто розмовляєте. Хочете інший колір? Хочете додати сцену? Хочете змінити музику? Хочете додати нову функцію до бібліотеки? Просто скажіть. Агент виконає всю технічну роботу.
249
+
250
+ #### Перенесення наявного проєкту у Forge
251
+
252
+ Якщо ви вже маєте проєкт десь інше і хочете перенести його у Forge:
253
+
254
+ 1. **Створіть проєкт Forge.** Відкрийте термінал і виконайте:
255
+
256
+ ```sh
257
+ forge create my-project
258
+ ```
259
+
260
+ Потім відкрийте створену папку в вашому IDE.
261
+
262
+ 2. **Скажіть ШІ-агенту:**
263
+
264
+ > Я хочу перенести свій наявний проєкт у Forge. Він знаходиться за шляхом /path/to/my/project.
265
+
266
+ Агент:
267
+ - Визначить, який це тип проєкту (вебсайт, відео, гра, бібліотека тощо)
268
+ - Перемістить усі ваші файли у новий проєкт Forge — включно з прихованими файлами на кшталт `.env`
269
+ - За бажанням перенесе вашу історію git
270
+ - Перевірить, чи все коректно збирається
271
+ - Запустить живий попередній перегляд (для візуальних типів проєктів)
272
+
273
+ #### Що робити, якщо щось пішло не так?
274
+
275
+ Просто скажіть ШІ-агенту. Він може перевірити стан проєкту, виправити проблеми та пояснити, що сталося — все простою мовою. Вам ніколи не потрібно відкривати термінал або вводити команди самостійно.
276
+
277
+ ---
278
+
279
+ ### Для розробників — CLI-команди
280
+
281
+ #### Створення нового проєкту
282
+
283
+ ```sh
284
+ # Створити новий проєкт (каркас + ініціалізація + навички + AGENTS.md однією командою)
285
+ forge create my-project
286
+
287
+ # З конкретним профілем стеку
288
+ forge create my-site --profile astro-typescript-turborepo
289
+ forge create my-game --profile phaser-turborepo
290
+ forge create my-video --profile editframe
291
+ forge create my-library --profile forge-shell
292
+
293
+ ```
294
+
295
+ Якщо Forge не встановлено глобально, використовуйте `pnpm dlx`:
296
+
297
+ ```sh
298
+ pnpm dlx @warpgogol/forge create my-project
299
+ ```
300
+
301
+ #### Перенесення наявного проєкту у Forge
302
+
303
+ CLI-команди для перенесення немає — це інтерактивний процес під керівництвом ШІ:
304
+
305
+ ```sh
306
+ # 1. Створіть новий порожній проєкт Forge
307
+ forge create my-project
308
+
309
+ # 2. Відкрийте проєкт у Windsurf (протестовано з Forge) або вашому IDE
310
+
311
+ # 3. Запустіть навичку /forge-bootstrap і оберіть режим "transplant"
312
+ # Навичка:
313
+ # - Запитає шлях до вашого наявного коду
314
+ # - Автоматично визначить стек (Astro, Phaser, Editframe тощо)
315
+ # - Перенесе всі файли (включно з .env та git-ігнорованими)
316
+ # - За бажанням перенесе історію git
317
+ # - Перевірить збірку
318
+ ```
319
+
320
+ #### Діагностика та перевірка
321
+
322
+ ```sh
323
+ # Перевірити стан проєкту
324
+ forge doctor
325
+
326
+ # Валідувати RFC
327
+ forge rfc.validate
328
+
329
+ # Список доступних навичок
330
+ forge skill.list
331
+ ```
332
+
333
+ ## Профілі стеку
334
+
335
+ Профіль стеку визначає каркас проєкту: структуру директорій, залежності, конфігурацію CI та перший робочий простір. Оберіть профіль прапорцем `--profile` під час створення проєкту.
336
+
337
+ | Профіль | Тип проєкту | Опис | Перший робочий простір | Призначення |
338
+ | --- | --- | --- | --- | --- |
339
+ | `forge-shell` | Управління / бібліотека | Мінімальний каркас Forge (за замовчуванням) | — | Проєкти лише з управлінням, бібліотеки, невеб-проєкти |
340
+ | `astro-typescript-turborepo` | Вебсайт | Astro + TypeScript + pnpm + Turborepo | `sites/my-site` | Вебсайти, вебзастосунки, контентні сайти |
341
+ | `phaser-turborepo` | Браузерна гра | Phaser + TypeScript + pnpm + Turborepo | `games/my-game` | Браузерні ігри, інтерактивні досвіди |
342
+ | `editframe` | Відео | Editframe React + Vite + TailwindCSS | `compositions/my-first-video` | Відеокомпозиції, брендові відео, motion-дизайн |
343
+
344
+ Профіль `editframe` також підтримує **HTML-шаблон** (замість React) для користувачів, які віддають перевагу веб-компонентам замість JSX. Оберіть між ними під час налаштування проєкту.
345
+
346
+ ```sh
347
+ # Список доступних профілів (після встановлення)
348
+ forge profile.validate
349
+ ```
350
+
351
+ Коли ви переносите наявний проєкт через режим `/forge-bootstrap` transplant, Forge автоматично визначає відповідний профіль, перевіряючи файли-маркери (`astro.config.*`, `phaser.config.*`, `editframe.config.*` тощо).
352
+
353
+ ## Процес оновлення
354
+
355
+ Коли публікується нова версія `@warpgogol/forge`, споживачі оновлюються адитивно:
356
+
357
+ ```sh
358
+ # 1. Встановити останню версію
359
+ pnpm add -g @warpgogol/forge@latest
360
+
361
+ # 2. Синхронізувати навички та стандартні прив'язки з встановленої версії
362
+ forge upgrade
363
+
364
+ # 3. Перевірити стан проєкту
365
+ forge doctor
366
+ ```
367
+
368
+ `forge upgrade` — адитивний: він ніколи не перезаписує прив'язки, встановлені оператором, ніколи не видаляє файли та є ідемпотентним. Він оновлює `forge.syncedVersion` у `forge.yaml`, щоб відстежувати останню синхронізовану версію. Використовуйте `--dry-run` для попереднього перегляду змін.
369
+
370
+ ## Що дає Forge
371
+
372
+ - **44 навички** (fo-pipeline, grilling, preferences, написання навичок, Editframe відеокомпозиція) — розгортаються у `.agents/skills/` командою `forge create`
373
+ - **RFC робочий процес** — створення, валідація, список, граф, архівування, acceptance-зондування, журнали рішень, DNA-трасування
374
+ - **ADR робочий процес** — легковісні архітектурні записи рішень
375
+ - **Вендоринг специфікацій** — вендоринг зовнішніх пакетів специфікацій як незмінних знімків з маніфестами цілісності
376
+ - **Угоди про найменування** — linting kebab-case
377
+ - **Linting робочих процесів** — валідація frontmatter та посилань у `.agents/workflows/`
378
+ - **Каркаси стеків** — створення нового pnpm + Turborepo монорепозиторію з профілю
379
+ - **Контракт прив'язок** — декодування специфічних для проєкту команд/шляхів із навичок через `forge.yaml`
380
+
381
+ ## Життєвий цикл
382
+
383
+ Типовий життєвий цикл проєкту Forge:
384
+
385
+ 1. **Створення** — `forge create` ініціалізує новий проєкт з forge.yaml, навичками та директоріями документації
386
+ 2. **IDE** — відкрийте проєкт у Windsurf (протестовано з Forge) або вашому IDE
387
+ 3. **Bootstrap** — запустіть `/forge-bootstrap` для інтерактивного налаштування проєкту. Навичка підтримує два режими:
388
+ - **Greenfield** — створення нового проєкту з нуля: оберіть стек, заповніть прив'язки, ініціалізуйте git
389
+ - **Transplant** — перенесення наявного коду у Forge: визначення стеку, міграція коду (включно з git-ігнорованими файлами на кшталт `.env`), за бажанням перенесення історії git, перевірка збірки
390
+ 4. **Оновлення** — коли публікується нова версія `@warpgogol/forge`, запустіть `forge upgrade` для адитивної синхронізації навичок та стандартних прив'язок
391
+
392
+ ## forge.yaml
393
+
394
+ Єдине джерело істини для конфігурації проєкту. Створюється командою `forge create`:
395
+
396
+ ```yaml
397
+ schema: forge/config@1
398
+ project:
399
+ name: my-project
400
+ stack: [typescript]
401
+ packageManager: pnpm
402
+ paths:
403
+ rfcsDir: docs/rfcs
404
+ adrsDir: docs/adrs
405
+ skillsDir: .agents/skills
406
+ bindings:
407
+ schema: forge/bindings@1
408
+ commands:
409
+ validateRfc: "forge rfc.validate {id} --json"
410
+ typecheck: "pnpm run build:check"
411
+ test: "pnpm test"
412
+ paths:
413
+ invariantsFile: docs/architecture-dna.md
414
+ terminology:
415
+ invariants: DNA
416
+ ```
417
+
418
+ ## Програмний API
419
+
420
+ ```ts
421
+ import {
422
+ forgeCoreModule,
423
+ forgeRfcModule,
424
+ loadForgeConfig,
425
+ resolveBinding,
426
+ FORGE_SKILLS,
427
+ } from "@warpgogol/forge";
428
+
429
+ // Завантажити конфігурацію
430
+ const config = loadForgeConfig(process.cwd());
431
+
432
+ // Розв'язати прив'язку
433
+ const cmd = resolveBinding(config, "commands.validateRfc", { id: "RFC-0001" });
434
+
435
+ // Зареєструвати модулі у вашому реєстрі
436
+ const registry = /* ваш ForgeModuleRegistry */;
437
+ await forgeCoreModule.register(registry);
438
+ await forgeRfcModule.register(registry);
439
+ ```
440
+
441
+ ## Архітектура
442
+
443
+ | Директорія | Призначення |
444
+ | --- | --- |
445
+ | `src/` | Портативне ядро — типи, конфігурація, реєстр навичок, валідатори, онбординг. Нуль імпортів `@warpgogol/*`. |
446
+ | `os/` | Реєстрації ForgeModule. `compass` та `werkstatt` динамічно імпортують `@warpgogol/site-kernel-*` (м'яка деградація в автономному режимі). |
447
+ | `bin/` | Точка входу CLI (команда `forge`). |
448
+ | `skills/` | 44 визначення навичок (36 fo + 5 спільних + 3 мета) з frontmatter SKILL.md. |
449
+ | `scripts/` | Перевірка гігієни публікації (`publish-check.mjs`), запускається `prepublishOnly`. |
450
+ | `profiles/` | Профілі стеків для `forge.scaffold`. |
451
+
452
+ ## Публікація в npm
453
+
454
+ Цей пакет публікується в реєстр npm як `@warpgogol/forge`. Нижче описано, як опублікувати нову версію.
455
+
456
+ ### Передумови
457
+
458
+ - Обліковий запис npm з правами публікації в організації `@warpgogol`.
459
+ - Встановлені Node.js та pnpm локально.
460
+
461
+ ### Створення токена доступу
462
+
463
+ 1. Увійдіть на [npmjs.com](https://www.npmjs.com/).
464
+ 2. Перейдіть до **Access Tokens** (аватар → Access Tokens).
465
+ 3. Натисніть **Generate New Token** → оберіть **Classic Token** → тип **Publish**.
466
+ 4. Скопіюйте згенерований токен — він показується лише один раз.
467
+
468
+ ### Публікація нової версії
469
+
470
+ Виконайте такі команди з директорії `packages/forge`:
471
+
472
+ ```sh
473
+ # 1. Автентифікація в npm (інтерактивно — запитає username, password, OTP)
474
+ npm login
475
+
476
+ # 2. Зберегти auth-токен для реєстру (використайте токен з попереднього кроку)
477
+ npm config set //registry.npmjs.org/:_authToken=<TOKEN>
478
+
479
+ # 3. Підняти patch-версію (оновлює package.json + створює git commit + tag)
480
+ npm version patch
481
+
482
+ # 4. Опублікувати пакет публічно
483
+ npm publish --access public
484
+ ```
485
+
486
+ Після публікації перевірте нову версію на [npmjs.com/package/@warpgogol/forge](https://www.npmjs.com/package/@warpgogol/forge).
487
+
488
+ ## Ліцензія
489
+
490
+ Apache-2.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warpgogol/forge",
3
- "version": "0.17.0",
3
+ "version": "0.17.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",