@warpgogol/forge 1.2.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -1
- package/README.md +55 -89
- package/README.uk.md +55 -89
- package/package.json +1 -1
- package/profiles/forge-shell.yaml +122 -1
- package/profiles/godot-csharp.yaml +467 -10
- package/profiles/phaser-turborepo.yaml +139 -3
- package/skills/_shared/fo-pipeline-conventions.md +55 -0
- package/skills/fo/fo-doc-audit/SKILL.md +2 -2
- package/skills/fo/fo-idea-i-just-want-to-see-the-plan/SKILL.md +2 -0
- package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +7 -3
- package/skills/fo/fo-idea-implement/SKILL.md +50 -46
- package/skills/fo/fo-session-retro/SKILL.md +2 -2
- package/src/onboarding/templates/behavioral-layer-core.md +4 -5
- package/src/onboarding/templates/root-agents-business.md +1 -1
- package/src/onboarding/templates/root-agents-creative.md +1 -1
- package/profiles/astro-typescript-turborepo.yaml +0 -231
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!--
|
|
1
|
+
<!-- Root AGENTS.md template for business register projects.
|
|
2
2
|
Static prose only — dynamic sections (skills, capabilities, behavioral layer)
|
|
3
3
|
are inserted at the dynamicSections marker by runAgentsGenerate.
|
|
4
4
|
Placeholders: projectName, projectStack, projectPm,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!--
|
|
1
|
+
<!-- Root AGENTS.md template for creative register projects.
|
|
2
2
|
Static prose only — dynamic sections (skills, capabilities, behavioral layer)
|
|
3
3
|
are inserted at the dynamicSections marker by runAgentsGenerate.
|
|
4
4
|
Placeholders: projectName, projectStack, projectPm,
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
schema: forge/stack-profile@1
|
|
2
|
-
id: astro-typescript-turborepo
|
|
3
|
-
displayName: Astro + TypeScript + Turborepo
|
|
4
|
-
detect:
|
|
5
|
-
anyOf:
|
|
6
|
-
- astro.config.*
|
|
7
|
-
- tsconfig.json
|
|
8
|
-
workspace:
|
|
9
|
-
dirs:
|
|
10
|
-
- sites
|
|
11
|
-
- packages
|
|
12
|
-
- services
|
|
13
|
-
- scripts
|
|
14
|
-
files:
|
|
15
|
-
- path: pnpm-workspace.yaml
|
|
16
|
-
content: |
|
|
17
|
-
packages:
|
|
18
|
-
- "sites/*"
|
|
19
|
-
- "packages/*"
|
|
20
|
-
- "services/*"
|
|
21
|
-
- path: turbo.json
|
|
22
|
-
content: |
|
|
23
|
-
{
|
|
24
|
-
"$schema": "https://turbo.build/schema.json",
|
|
25
|
-
"tasks": {
|
|
26
|
-
"build": {
|
|
27
|
-
"dependsOn": ["^build"],
|
|
28
|
-
"outputs": ["dist/**"]
|
|
29
|
-
},
|
|
30
|
-
"build:check": {
|
|
31
|
-
"dependsOn": ["^build:check"]
|
|
32
|
-
},
|
|
33
|
-
"test": {
|
|
34
|
-
"dependsOn": ["^build:check"]
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
- path: tsconfig.base.json
|
|
39
|
-
content: |
|
|
40
|
-
{
|
|
41
|
-
"compilerOptions": {
|
|
42
|
-
"target": "ESNext",
|
|
43
|
-
"module": "ESNext",
|
|
44
|
-
"moduleResolution": "bundler",
|
|
45
|
-
"strict": true,
|
|
46
|
-
"esModuleInterop": true,
|
|
47
|
-
"skipLibCheck": true,
|
|
48
|
-
"forceConsistentCasingInFileNames": true
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
- path: .gitignore
|
|
52
|
-
content: |
|
|
53
|
-
node_modules
|
|
54
|
-
dist
|
|
55
|
-
.turbo
|
|
56
|
-
.cache
|
|
57
|
-
operator-profile.md
|
|
58
|
-
- path: .github/workflows/ci.yml
|
|
59
|
-
content: |
|
|
60
|
-
name: CI
|
|
61
|
-
|
|
62
|
-
on:
|
|
63
|
-
pull_request:
|
|
64
|
-
push:
|
|
65
|
-
branches: [main]
|
|
66
|
-
workflow_dispatch:
|
|
67
|
-
|
|
68
|
-
concurrency:
|
|
69
|
-
group: ${{ github.workflow }}-${{ github.ref }}
|
|
70
|
-
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
71
|
-
|
|
72
|
-
permissions:
|
|
73
|
-
contents: read
|
|
74
|
-
|
|
75
|
-
jobs:
|
|
76
|
-
ci:
|
|
77
|
-
runs-on: ubuntu-latest
|
|
78
|
-
timeout-minutes: 15
|
|
79
|
-
name: Lint, type-check, build, test
|
|
80
|
-
env:
|
|
81
|
-
TZ: UTC
|
|
82
|
-
|
|
83
|
-
steps:
|
|
84
|
-
- name: Checkout
|
|
85
|
-
uses: actions/checkout@v5
|
|
86
|
-
|
|
87
|
-
- name: Enable Corepack
|
|
88
|
-
run: corepack enable
|
|
89
|
-
|
|
90
|
-
- name: Setup Node.js
|
|
91
|
-
uses: actions/setup-node@v5
|
|
92
|
-
with:
|
|
93
|
-
node-version: "24"
|
|
94
|
-
cache: "pnpm"
|
|
95
|
-
|
|
96
|
-
- name: Install dependencies
|
|
97
|
-
run: pnpm install --frozen-lockfile
|
|
98
|
-
|
|
99
|
-
- name: Format check
|
|
100
|
-
run: pnpm format:check
|
|
101
|
-
|
|
102
|
-
- name: Type check
|
|
103
|
-
run: pnpm build:check
|
|
104
|
-
|
|
105
|
-
- name: Build
|
|
106
|
-
run: pnpm build
|
|
107
|
-
|
|
108
|
-
- name: Test
|
|
109
|
-
run: pnpm test
|
|
110
|
-
|
|
111
|
-
# Windows CI (optional — uncomment if Windows checks are needed):
|
|
112
|
-
#
|
|
113
|
-
# windows-ci:
|
|
114
|
-
# runs-on: windows-latest
|
|
115
|
-
# name: Lint, type-check, build, test (Windows)
|
|
116
|
-
# env:
|
|
117
|
-
# GIT_CONFIG_COUNT: 1
|
|
118
|
-
# GIT_CONFIG_KEY_0: core.longpaths
|
|
119
|
-
# GIT_CONFIG_VALUE_0: "true"
|
|
120
|
-
# steps:
|
|
121
|
-
# - name: Checkout
|
|
122
|
-
# uses: actions/checkout@v5
|
|
123
|
-
# - name: Enable Corepack
|
|
124
|
-
# run: corepack enable
|
|
125
|
-
# - name: Setup Node.js
|
|
126
|
-
# uses: actions/setup-node@v5
|
|
127
|
-
# with:
|
|
128
|
-
# node-version: "24"
|
|
129
|
-
# cache: "pnpm"
|
|
130
|
-
# - name: Install dependencies
|
|
131
|
-
# run: pnpm install --frozen-lockfile
|
|
132
|
-
# - name: Format check
|
|
133
|
-
# run: pnpm format:check
|
|
134
|
-
# - name: Type check
|
|
135
|
-
# run: pnpm build:check
|
|
136
|
-
# - name: Build
|
|
137
|
-
# run: pnpm build
|
|
138
|
-
# - name: Test
|
|
139
|
-
# run: pnpm test
|
|
140
|
-
#
|
|
141
|
-
# The GIT_CONFIG_COUNT env block MUST be set before the checkout step
|
|
142
|
-
# so git can handle long file paths during clone on Windows.
|
|
143
|
-
# Do not add Windows to the matrix "just in case" — it requires
|
|
144
|
-
# separate path-length and platform-specific dependency verification.
|
|
145
|
-
- path: package.json
|
|
146
|
-
content: |
|
|
147
|
-
{
|
|
148
|
-
"name": "__PROJECT_NAME__",
|
|
149
|
-
"version": "0.1.0",
|
|
150
|
-
"private": true,
|
|
151
|
-
"type": "module",
|
|
152
|
-
"engines": {
|
|
153
|
-
"node": ">=24 <25"
|
|
154
|
-
},
|
|
155
|
-
"scripts": {
|
|
156
|
-
"clean": "node scripts/clean.mjs",
|
|
157
|
-
"format": "prettier --write .",
|
|
158
|
-
"format:check": "prettier --check .",
|
|
159
|
-
"build": "turbo run build",
|
|
160
|
-
"build:check": "turbo run build:check",
|
|
161
|
-
"test": "turbo run test",
|
|
162
|
-
"upgrade-packages": "pnpm -r up"
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
- path: scripts/clean.mjs
|
|
166
|
-
content: |
|
|
167
|
-
import { readdir, rm } from "node:fs/promises";
|
|
168
|
-
import { join } from "node:path";
|
|
169
|
-
import { fileURLToPath } from "node:url";
|
|
170
|
-
|
|
171
|
-
const TARGETS = new Set(["node_modules", ".turbo", "dist", ".astro", ".cache", ".wrangler"]);
|
|
172
|
-
|
|
173
|
-
const repoRoot = join(fileURLToPath(import.meta.url), "..", "..");
|
|
174
|
-
|
|
175
|
-
async function walk(dir, toDelete) {
|
|
176
|
-
const entries = await readdir(dir, { withFileTypes: true });
|
|
177
|
-
for (const entry of entries) {
|
|
178
|
-
if (!entry.isDirectory()) continue;
|
|
179
|
-
const name = entry.name;
|
|
180
|
-
const fullPath = join(dir, name);
|
|
181
|
-
if (TARGETS.has(name)) {
|
|
182
|
-
toDelete.push(fullPath);
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
await walk(fullPath, toDelete);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
const toDelete = [];
|
|
190
|
-
await walk(repoRoot, toDelete);
|
|
191
|
-
|
|
192
|
-
if (toDelete.length === 0) {
|
|
193
|
-
console.log("Nothing to clean.");
|
|
194
|
-
process.exit(0);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
await Promise.all(toDelete.map((p) => rm(p, { recursive: true, force: true })));
|
|
198
|
-
|
|
199
|
-
for (const p of toDelete) {
|
|
200
|
-
console.log("deleted", p.replace(repoRoot + "/", ""));
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
console.log(`Cleaned ${toDelete.length} directories.`);
|
|
204
|
-
install:
|
|
205
|
-
- pnpm add -D typescript turbo @warpgogol/forge @warpgogol/werkstatt @warpgogol/werkstatt-shared @warpgogol/werkstatt-site prettier
|
|
206
|
-
firstWorkspace:
|
|
207
|
-
path: sites/my-site
|
|
208
|
-
files:
|
|
209
|
-
- path: package.json
|
|
210
|
-
content: |
|
|
211
|
-
{
|
|
212
|
-
"name": "my-site",
|
|
213
|
-
"version": "0.1.0",
|
|
214
|
-
"private": true,
|
|
215
|
-
"type": "module",
|
|
216
|
-
"scripts": {
|
|
217
|
-
"build:check": "pnpm exec tsc -p tsconfig.json --noEmit",
|
|
218
|
-
"test": "vitest run --passWithNoTests"
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
- path: tsconfig.json
|
|
222
|
-
content: |
|
|
223
|
-
{
|
|
224
|
-
"extends": "../tsconfig.base.json",
|
|
225
|
-
"compilerOptions": {
|
|
226
|
-
"outDir": "./dist"
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
install:
|
|
230
|
-
- pnpm add astro
|
|
231
|
-
- pnpm add -D vitest
|