@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.
@@ -1,4 +1,4 @@
1
- <!-- RFC-0643: Root AGENTS.md template for business register projects.
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
- <!-- RFC-0643: Root AGENTS.md template for creative register projects.
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