@warpgogol/forge 0.16.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 +300 -27
  2. package/README.uk.md +490 -0
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,39 +1,310 @@
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:
6
60
 
7
61
  ```sh
8
- npm install @warpgogol/forge
9
- # or
10
- pnpm add @warpgogol/forge
62
+ corepack enable pnpm
11
63
  ```
12
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:**
162
+
163
+ ```sh
164
+ sudo apt-get install -y ffmpeg
165
+ ffmpeg -version
166
+ ```
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
- ### Create a new project
199
+ ### For creative operators — one command, then just talk
200
+
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.
202
+
203
+ #### Start a new project from scratch
204
+
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`:
212
+
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.
221
+
222
+ 3. **Tell the AI agent what you want to build.** Just type it in the chat, in your own words. For example:
223
+
224
+ > I want to create a brand video for my coffee shop. It should have an animated logo, a short intro, and a product showcase.
225
+
226
+ Or:
227
+
228
+ > I want to build a website for my photography studio.
229
+
230
+ Or:
231
+
232
+ > I want to make a browser game where you catch falling stars.
233
+
234
+ Or:
235
+
236
+ > I want to create a TypeScript library for calculating astrology charts.
237
+
238
+ That's it. The AI agent will do everything else:
239
+ - Set up the project structure based on what you described (video, website, game, library, etc.)
240
+ - Configure language preferences and project settings
241
+ - Start a live preview so you can see your work (for websites, games, and videos)
242
+ - Tell you the URL to open in your browser
243
+
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.
247
+
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.
249
+
250
+ #### Bring an existing project into Forge
251
+
252
+ If you already have a project somewhere else and want to move it into Forge:
253
+
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.
261
+
262
+ 2. **Tell the AI agent:**
263
+
264
+ > I want to bring my existing project into Forge. It's located at /path/to/my/project.
265
+
266
+ The agent will:
267
+ - Detect what kind of project it is (website, video, game, library, etc.)
268
+ - Move all your files into the new Forge project — including hidden files like `.env`
269
+ - Optionally bring your git history
270
+ - Verify everything builds correctly
271
+ - Start a live preview (for visual project types)
272
+
273
+ #### What if something goes wrong?
274
+
275
+ Just tell the AI agent. It can check the project's health, fix issues, and explain what happened — all in plain language. You never need to open a terminal or run commands yourself.
276
+
277
+ ---
278
+
279
+ ### For developers — CLI commands
280
+
281
+ #### Create a new project
16
282
 
17
283
  ```sh
18
284
  # Create a new project (scaffold + init + skills + AGENTS.md in one command)
19
- npx forge create my-project
285
+ forge create my-project
20
286
 
21
287
  # With a specific stack profile
22
- npx forge create my-site --profile astro-typescript-turborepo
23
- npx forge create my-game --profile phaser-turborepo
24
- 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
25
292
 
26
- # With a non-default package manager
27
- npx forge create my-project --package-manager npm
28
293
  ```
29
294
 
30
- ### Bring an existing project into Forge
295
+ If Forge is not installed globally, use `pnpm dlx` instead:
296
+
297
+ ```sh
298
+ pnpm dlx @warpgogol/forge create my-project
299
+ ```
300
+
301
+ #### Bring an existing project into Forge
31
302
 
32
303
  There is no CLI command for transplant — it is an interactive, AI-guided process:
33
304
 
34
305
  ```sh
35
306
  # 1. Create a new empty Forge project
36
- npx forge create my-project
307
+ forge create my-project
37
308
 
38
309
  # 2. Open the project in Windsurf (tested with forge) or your preferred IDE
39
310
 
@@ -46,33 +317,35 @@ npx forge create my-project
46
317
  # - Verify the build
47
318
  ```
48
319
 
49
- ### Diagnose and validate
320
+ #### Diagnose and validate
50
321
 
51
322
  ```sh
52
323
  # Check project health
53
- npx forge doctor
324
+ forge doctor
54
325
 
55
326
  # Validate RFCs
56
- npx forge rfc.validate
327
+ forge rfc.validate
57
328
 
58
329
  # List available skills
59
- npx forge skill.list
330
+ forge skill.list
60
331
  ```
61
332
 
62
333
  ## Stack profiles
63
334
 
64
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.
65
336
 
66
- | Profile | Description | First workspace | Use case |
67
- | --- | --- | --- | --- |
68
- | `forge-shell` | Minimal Forge shell (default) | — | Governance-only projects, libraries, non-web projects |
69
- | `astro-typescript-turborepo` | Astro + TypeScript + pnpm + Turborepo | `sites/my-site` | Websites, web apps, content-driven sites |
70
- | `phaser-turborepo` | Phaser + TypeScript + pnpm + Turborepo | `games/my-game` | Browser games, interactive experiences |
71
- | `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.
72
345
 
73
346
  ```sh
74
347
  # List available profiles (after install)
75
- npx forge profile.validate
348
+ forge profile.validate
76
349
  ```
77
350
 
78
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.).
@@ -83,13 +356,13 @@ When a new version of `@warpgogol/forge` is published, consumers upgrade additiv
83
356
 
84
357
  ```sh
85
358
  # 1. Install the latest version
86
- npm install @warpgogol/forge@latest
359
+ pnpm add -g @warpgogol/forge@latest
87
360
 
88
361
  # 2. Sync skills and binding defaults from the installed version
89
- npx forge upgrade
362
+ forge upgrade
90
363
 
91
364
  # 3. Check project health
92
- npx forge doctor
365
+ forge doctor
93
366
  ```
94
367
 
95
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.16.0",
3
+ "version": "0.17.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",