@warpgogol/forge 0.9.0 → 0.11.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 +31 -2
- package/dist/bin/cli.js +0 -0
- package/dist/os/core/core.module.d.ts.map +1 -1
- package/dist/os/core/core.module.js +69 -0
- package/dist/os/core/core.module.js.map +1 -1
- package/dist/os/core/handlers/build.d.ts +16 -0
- package/dist/os/core/handlers/build.d.ts.map +1 -0
- package/dist/os/core/handlers/build.js +123 -0
- package/dist/os/core/handlers/build.js.map +1 -0
- package/dist/os/core/handlers/dev.d.ts +10 -0
- package/dist/os/core/handlers/dev.d.ts.map +1 -0
- package/dist/os/core/handlers/dev.js +102 -0
- package/dist/os/core/handlers/dev.js.map +1 -0
- package/dist/os/core/handlers/profile-resolve.d.ts +13 -0
- package/dist/os/core/handlers/profile-resolve.d.ts.map +1 -0
- package/dist/os/core/handlers/profile-resolve.js +65 -0
- package/dist/os/core/handlers/profile-resolve.js.map +1 -0
- package/dist/os/core/handlers/validate.d.ts +26 -0
- package/dist/os/core/handlers/validate.d.ts.map +1 -0
- package/dist/os/core/handlers/validate.js +208 -0
- package/dist/os/core/handlers/validate.js.map +1 -0
- package/dist/src/onboarding/doctor.d.ts +3 -0
- package/dist/src/onboarding/doctor.d.ts.map +1 -1
- package/dist/src/onboarding/doctor.js +44 -6
- package/dist/src/onboarding/doctor.js.map +1 -1
- package/dist/src/onboarding/invariant-engine.d.ts +17 -0
- package/dist/src/onboarding/invariant-engine.d.ts.map +1 -0
- package/dist/src/onboarding/invariant-engine.js +173 -0
- package/dist/src/onboarding/invariant-engine.js.map +1 -0
- package/dist/src/onboarding/nested-agents-generate.d.ts +2 -0
- package/dist/src/onboarding/nested-agents-generate.d.ts.map +1 -1
- package/dist/src/onboarding/nested-agents-generate.js +1 -1
- package/dist/src/onboarding/nested-agents-generate.js.map +1 -1
- package/dist/src/profiles/profile-schema.d.ts +65 -0
- package/dist/src/profiles/profile-schema.d.ts.map +1 -1
- package/dist/src/profiles/profile-schema.js +21 -1
- package/dist/src/profiles/profile-schema.js.map +1 -1
- package/dist/src/profiles/stack-profile.d.ts +20 -0
- package/dist/src/profiles/stack-profile.d.ts.map +1 -1
- package/dist/src/profiles/stack-profile.js +3 -0
- package/dist/src/profiles/stack-profile.js.map +1 -1
- package/package.json +69 -162
- package/profiles/editframe-html.yaml +17 -3
- package/skills/fo/fo-add-tests/SKILL.md +3 -1
- package/skills/fo/fo-doc-audit/SKILL.md +2 -0
- package/skills/fo/fo-fix/SKILL.md +5 -3
- package/skills/fo/fo-idea-audit/SKILL.md +2 -0
- package/skills/fo/fo-idea-create-adr/SKILL.md +2 -0
- package/skills/fo/fo-idea-create-rfc/SKILL.md +2 -0
- package/skills/fo/fo-idea-enhance/SKILL.md +3 -1
- package/skills/fo/fo-idea-implement/SKILL.md +3 -1
- package/skills/fo/fo-idea-plan/SKILL.md +3 -1
- package/skills/fo/fo-idea-status/SKILL.md +2 -0
- package/skills/fo/fo-review/SKILL.md +4 -2
- package/skills/fo/fo-session-retro/SKILL.md +185 -1
- package/skills/meta/forge-bootstrap/SKILL.md +27 -4
- package/skills/shared/windows-ai-tooling/SKILL.md +3 -1
package/package.json
CHANGED
|
@@ -1,113 +1,121 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@warpgogol/forge",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"description": "Framework for documenting and implementing ideas — RFC/ADR governance, skills, and project bootstrapping.",
|
|
8
|
-
"keywords": [
|
|
8
|
+
"keywords": [
|
|
9
|
+
"rfc",
|
|
10
|
+
"adr",
|
|
11
|
+
"governance",
|
|
12
|
+
"skills",
|
|
13
|
+
"ai-agent",
|
|
14
|
+
"documentation",
|
|
15
|
+
"framework"
|
|
16
|
+
],
|
|
9
17
|
"homepage": "https://warpgogol.com",
|
|
10
|
-
"main": "./src/index.
|
|
11
|
-
"types": "./src/index.ts",
|
|
18
|
+
"main": "./dist/src/index.js",
|
|
19
|
+
"types": "./dist/src/index.d.ts",
|
|
12
20
|
"bin": {
|
|
13
21
|
"forge": "./bin/cli.js"
|
|
14
22
|
},
|
|
15
23
|
"exports": {
|
|
16
24
|
".": {
|
|
17
|
-
"types": "./src/index.ts",
|
|
18
|
-
"default": "./src/index.
|
|
25
|
+
"types": "./dist/src/index.d.ts",
|
|
26
|
+
"default": "./dist/src/index.js"
|
|
19
27
|
},
|
|
20
28
|
"./types": {
|
|
21
|
-
"types": "./src/types.ts",
|
|
22
|
-
"default": "./src/types.
|
|
29
|
+
"types": "./dist/src/types.d.ts",
|
|
30
|
+
"default": "./dist/src/types.js"
|
|
23
31
|
},
|
|
24
32
|
"./utils": {
|
|
25
|
-
"types": "./src/utils/index.ts",
|
|
26
|
-
"default": "./src/utils/index.
|
|
33
|
+
"types": "./dist/src/utils/index.d.ts",
|
|
34
|
+
"default": "./dist/src/utils/index.js"
|
|
27
35
|
},
|
|
28
36
|
"./config": {
|
|
29
|
-
"types": "./src/config/forge-config.ts",
|
|
30
|
-
"default": "./src/config/forge-config.
|
|
37
|
+
"types": "./dist/src/config/forge-config.d.ts",
|
|
38
|
+
"default": "./dist/src/config/forge-config.js"
|
|
31
39
|
},
|
|
32
40
|
"./os/core": {
|
|
33
|
-
"types": "./os/core/core.module.ts",
|
|
34
|
-
"default": "./os/core/core.module.
|
|
41
|
+
"types": "./dist/os/core/core.module.d.ts",
|
|
42
|
+
"default": "./dist/os/core/core.module.js"
|
|
35
43
|
},
|
|
36
44
|
"./os/compass": {
|
|
37
|
-
"types": "./os/compass/index.ts",
|
|
38
|
-
"default": "./os/compass/index.
|
|
45
|
+
"types": "./dist/os/compass/index.d.ts",
|
|
46
|
+
"default": "./dist/os/compass/index.js"
|
|
39
47
|
},
|
|
40
48
|
"./os/naming": {
|
|
41
|
-
"types": "./os/naming/index.ts",
|
|
42
|
-
"default": "./os/naming/index.
|
|
49
|
+
"types": "./dist/os/naming/index.d.ts",
|
|
50
|
+
"default": "./dist/os/naming/index.js"
|
|
43
51
|
},
|
|
44
52
|
"./os/naming-module": {
|
|
45
|
-
"types": "./os/naming/naming.module.ts",
|
|
46
|
-
"default": "./os/naming/naming.module.
|
|
53
|
+
"types": "./dist/os/naming/naming.module.d.ts",
|
|
54
|
+
"default": "./dist/os/naming/naming.module.js"
|
|
47
55
|
},
|
|
48
56
|
"./os/rfc": {
|
|
49
|
-
"types": "./os/rfc/index.ts",
|
|
50
|
-
"default": "./os/rfc/index.
|
|
57
|
+
"types": "./dist/os/rfc/index.d.ts",
|
|
58
|
+
"default": "./dist/os/rfc/index.js"
|
|
51
59
|
},
|
|
52
60
|
"./os/rfc-module": {
|
|
53
|
-
"types": "./os/rfc/rfc.module.ts",
|
|
54
|
-
"default": "./os/rfc/rfc.module.
|
|
61
|
+
"types": "./dist/os/rfc/rfc.module.d.ts",
|
|
62
|
+
"default": "./dist/os/rfc/rfc.module.js"
|
|
55
63
|
},
|
|
56
64
|
"./os/werkstatt": {
|
|
57
|
-
"types": "./os/werkstatt/index.ts",
|
|
58
|
-
"default": "./os/werkstatt/index.
|
|
65
|
+
"types": "./dist/os/werkstatt/index.d.ts",
|
|
66
|
+
"default": "./dist/os/werkstatt/index.js"
|
|
59
67
|
},
|
|
60
68
|
"./os/workflow": {
|
|
61
|
-
"types": "./os/workflow/index.ts",
|
|
62
|
-
"default": "./os/workflow/index.
|
|
69
|
+
"types": "./dist/os/workflow/index.d.ts",
|
|
70
|
+
"default": "./dist/os/workflow/index.js"
|
|
63
71
|
},
|
|
64
72
|
"./os/workflow-module": {
|
|
65
|
-
"types": "./os/workflow/workflow.module.ts",
|
|
66
|
-
"default": "./os/workflow/workflow.module.
|
|
73
|
+
"types": "./dist/os/workflow/workflow.module.d.ts",
|
|
74
|
+
"default": "./dist/os/workflow/workflow.module.js"
|
|
67
75
|
},
|
|
68
76
|
"./os/spec-module": {
|
|
69
|
-
"types": "./os/spec/spec.module.ts",
|
|
70
|
-
"default": "./os/spec/spec.module.
|
|
77
|
+
"types": "./dist/os/spec/spec.module.d.ts",
|
|
78
|
+
"default": "./dist/os/spec/spec.module.js"
|
|
71
79
|
},
|
|
72
80
|
"./os/adr": {
|
|
73
|
-
"types": "./os/adr/index.ts",
|
|
74
|
-
"default": "./os/adr/index.
|
|
81
|
+
"types": "./dist/os/adr/index.d.ts",
|
|
82
|
+
"default": "./dist/os/adr/index.js"
|
|
75
83
|
},
|
|
76
84
|
"./os/adr-module": {
|
|
77
|
-
"types": "./os/adr/adr.module.ts",
|
|
78
|
-
"default": "./os/adr/adr.module.
|
|
85
|
+
"types": "./dist/os/adr/adr.module.d.ts",
|
|
86
|
+
"default": "./dist/os/adr/adr.module.js"
|
|
79
87
|
},
|
|
80
88
|
"./os/plan": {
|
|
81
|
-
"types": "./os/plan/index.ts",
|
|
82
|
-
"default": "./os/plan/index.
|
|
89
|
+
"types": "./dist/os/plan/index.d.ts",
|
|
90
|
+
"default": "./dist/os/plan/index.js"
|
|
83
91
|
},
|
|
84
92
|
"./os/plan-module": {
|
|
85
|
-
"types": "./os/plan/plan.module.ts",
|
|
86
|
-
"default": "./os/plan/plan.module.
|
|
93
|
+
"types": "./dist/os/plan/plan.module.d.ts",
|
|
94
|
+
"default": "./dist/os/plan/plan.module.js"
|
|
87
95
|
},
|
|
88
96
|
"./os/audit": {
|
|
89
|
-
"types": "./os/audit/index.ts",
|
|
90
|
-
"default": "./os/audit/index.
|
|
97
|
+
"types": "./dist/os/audit/index.d.ts",
|
|
98
|
+
"default": "./dist/os/audit/index.js"
|
|
91
99
|
},
|
|
92
100
|
"./os/audit-module": {
|
|
93
|
-
"types": "./os/audit/audit.module.ts",
|
|
94
|
-
"default": "./os/audit/audit.module.
|
|
101
|
+
"types": "./dist/os/audit/audit.module.d.ts",
|
|
102
|
+
"default": "./dist/os/audit/audit.module.js"
|
|
95
103
|
},
|
|
96
104
|
"./os/session": {
|
|
97
|
-
"types": "./os/session/index.ts",
|
|
98
|
-
"default": "./os/session/index.
|
|
105
|
+
"types": "./dist/os/session/index.d.ts",
|
|
106
|
+
"default": "./dist/os/session/index.js"
|
|
99
107
|
},
|
|
100
108
|
"./os/session-module": {
|
|
101
|
-
"types": "./os/session/session.module.ts",
|
|
102
|
-
"default": "./os/session/session.module.
|
|
109
|
+
"types": "./dist/os/session/session.module.d.ts",
|
|
110
|
+
"default": "./dist/os/session/session.module.js"
|
|
103
111
|
},
|
|
104
112
|
"./os/mission": {
|
|
105
|
-
"types": "./os/mission/index.ts",
|
|
106
|
-
"default": "./os/mission/index.
|
|
113
|
+
"types": "./dist/os/mission/index.d.ts",
|
|
114
|
+
"default": "./dist/os/mission/index.js"
|
|
107
115
|
},
|
|
108
116
|
"./os/mission-module": {
|
|
109
|
-
"types": "./os/mission/mission.module.ts",
|
|
110
|
-
"default": "./os/mission/mission.module.
|
|
117
|
+
"types": "./dist/os/mission/mission.module.d.ts",
|
|
118
|
+
"default": "./dist/os/mission/mission.module.js"
|
|
111
119
|
}
|
|
112
120
|
},
|
|
113
121
|
"files": [
|
|
@@ -121,14 +129,6 @@
|
|
|
121
129
|
"README.md",
|
|
122
130
|
"LICENSE"
|
|
123
131
|
],
|
|
124
|
-
"scripts": {
|
|
125
|
-
"build": "pnpm exec tsc -p tsconfig.json",
|
|
126
|
-
"build:check": "pnpm exec tsc -p tsconfig.json --noEmit",
|
|
127
|
-
"clean": "rm -rf dist",
|
|
128
|
-
"prepublishOnly": "pnpm run clean && pnpm run build && node scripts/publish-check.mjs",
|
|
129
|
-
"test": "vitest run --passWithNoTests",
|
|
130
|
-
"test:watch": "vitest"
|
|
131
|
-
},
|
|
132
132
|
"dependencies": {
|
|
133
133
|
"yaml": "^2.9.0",
|
|
134
134
|
"zod": "^4.4.3"
|
|
@@ -143,106 +143,13 @@
|
|
|
143
143
|
"node": ">=18.0.0"
|
|
144
144
|
},
|
|
145
145
|
"publishConfig": {
|
|
146
|
-
"access": "public"
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
"
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
"./types": {
|
|
155
|
-
"types": "./dist/src/types.d.ts",
|
|
156
|
-
"default": "./dist/src/types.js"
|
|
157
|
-
},
|
|
158
|
-
"./utils": {
|
|
159
|
-
"types": "./dist/src/utils/index.d.ts",
|
|
160
|
-
"default": "./dist/src/utils/index.js"
|
|
161
|
-
},
|
|
162
|
-
"./config": {
|
|
163
|
-
"types": "./dist/src/config/forge-config.d.ts",
|
|
164
|
-
"default": "./dist/src/config/forge-config.js"
|
|
165
|
-
},
|
|
166
|
-
"./os/core": {
|
|
167
|
-
"types": "./dist/os/core/core.module.d.ts",
|
|
168
|
-
"default": "./dist/os/core/core.module.js"
|
|
169
|
-
},
|
|
170
|
-
"./os/compass": {
|
|
171
|
-
"types": "./dist/os/compass/index.d.ts",
|
|
172
|
-
"default": "./dist/os/compass/index.js"
|
|
173
|
-
},
|
|
174
|
-
"./os/naming": {
|
|
175
|
-
"types": "./dist/os/naming/index.d.ts",
|
|
176
|
-
"default": "./dist/os/naming/index.js"
|
|
177
|
-
},
|
|
178
|
-
"./os/naming-module": {
|
|
179
|
-
"types": "./dist/os/naming/naming.module.d.ts",
|
|
180
|
-
"default": "./dist/os/naming/naming.module.js"
|
|
181
|
-
},
|
|
182
|
-
"./os/rfc": {
|
|
183
|
-
"types": "./dist/os/rfc/index.d.ts",
|
|
184
|
-
"default": "./dist/os/rfc/index.js"
|
|
185
|
-
},
|
|
186
|
-
"./os/rfc-module": {
|
|
187
|
-
"types": "./dist/os/rfc/rfc.module.d.ts",
|
|
188
|
-
"default": "./dist/os/rfc/rfc.module.js"
|
|
189
|
-
},
|
|
190
|
-
"./os/werkstatt": {
|
|
191
|
-
"types": "./dist/os/werkstatt/index.d.ts",
|
|
192
|
-
"default": "./dist/os/werkstatt/index.js"
|
|
193
|
-
},
|
|
194
|
-
"./os/workflow": {
|
|
195
|
-
"types": "./dist/os/workflow/index.d.ts",
|
|
196
|
-
"default": "./dist/os/workflow/index.js"
|
|
197
|
-
},
|
|
198
|
-
"./os/workflow-module": {
|
|
199
|
-
"types": "./dist/os/workflow/workflow.module.d.ts",
|
|
200
|
-
"default": "./dist/os/workflow/workflow.module.js"
|
|
201
|
-
},
|
|
202
|
-
"./os/spec-module": {
|
|
203
|
-
"types": "./dist/os/spec/spec.module.d.ts",
|
|
204
|
-
"default": "./dist/os/spec/spec.module.js"
|
|
205
|
-
},
|
|
206
|
-
"./os/adr": {
|
|
207
|
-
"types": "./dist/os/adr/index.d.ts",
|
|
208
|
-
"default": "./dist/os/adr/index.js"
|
|
209
|
-
},
|
|
210
|
-
"./os/adr-module": {
|
|
211
|
-
"types": "./dist/os/adr/adr.module.d.ts",
|
|
212
|
-
"default": "./dist/os/adr/adr.module.js"
|
|
213
|
-
},
|
|
214
|
-
"./os/plan": {
|
|
215
|
-
"types": "./dist/os/plan/index.d.ts",
|
|
216
|
-
"default": "./dist/os/plan/index.js"
|
|
217
|
-
},
|
|
218
|
-
"./os/plan-module": {
|
|
219
|
-
"types": "./dist/os/plan/plan.module.d.ts",
|
|
220
|
-
"default": "./dist/os/plan/plan.module.js"
|
|
221
|
-
},
|
|
222
|
-
"./os/audit": {
|
|
223
|
-
"types": "./dist/os/audit/index.d.ts",
|
|
224
|
-
"default": "./dist/os/audit/index.js"
|
|
225
|
-
},
|
|
226
|
-
"./os/audit-module": {
|
|
227
|
-
"types": "./dist/os/audit/audit.module.d.ts",
|
|
228
|
-
"default": "./dist/os/audit/audit.module.js"
|
|
229
|
-
},
|
|
230
|
-
"./os/session": {
|
|
231
|
-
"types": "./dist/os/session/index.d.ts",
|
|
232
|
-
"default": "./dist/os/session/index.js"
|
|
233
|
-
},
|
|
234
|
-
"./os/session-module": {
|
|
235
|
-
"types": "./dist/os/session/session.module.d.ts",
|
|
236
|
-
"default": "./dist/os/session/session.module.js"
|
|
237
|
-
},
|
|
238
|
-
"./os/mission": {
|
|
239
|
-
"types": "./dist/os/mission/index.d.ts",
|
|
240
|
-
"default": "./dist/os/mission/index.js"
|
|
241
|
-
},
|
|
242
|
-
"./os/mission-module": {
|
|
243
|
-
"types": "./dist/os/mission/mission.module.d.ts",
|
|
244
|
-
"default": "./dist/os/mission/mission.module.js"
|
|
245
|
-
}
|
|
246
|
-
}
|
|
146
|
+
"access": "public"
|
|
147
|
+
},
|
|
148
|
+
"scripts": {
|
|
149
|
+
"build": "pnpm exec tsc -p tsconfig.json",
|
|
150
|
+
"build:check": "pnpm exec tsc -p tsconfig.json --noEmit",
|
|
151
|
+
"clean": "rm -rf dist",
|
|
152
|
+
"test": "vitest run --passWithNoTests",
|
|
153
|
+
"test:watch": "vitest"
|
|
247
154
|
}
|
|
248
|
-
}
|
|
155
|
+
}
|
|
@@ -14,6 +14,9 @@ terminology:
|
|
|
14
14
|
output: render
|
|
15
15
|
verify: render-verify
|
|
16
16
|
operator: director
|
|
17
|
+
devServer:
|
|
18
|
+
command: editframe preview
|
|
19
|
+
port: 4321
|
|
17
20
|
artifacts:
|
|
18
21
|
- id: composition
|
|
19
22
|
extensions:
|
|
@@ -27,9 +30,8 @@ artifacts:
|
|
|
27
30
|
determinism:
|
|
28
31
|
hashable: true
|
|
29
32
|
inputs:
|
|
30
|
-
-
|
|
31
|
-
- assets
|
|
32
|
-
- editframe version
|
|
33
|
+
- compositions/**/*.html
|
|
34
|
+
- assets/**
|
|
33
35
|
workspaceTypes:
|
|
34
36
|
- id: composition
|
|
35
37
|
detect:
|
|
@@ -44,12 +46,24 @@ invariants:
|
|
|
44
46
|
- id: VIDEO-01
|
|
45
47
|
rule: Composition filenames must use kebab-case (lowercase letters, digits, hyphens only)
|
|
46
48
|
severity: error
|
|
49
|
+
check:
|
|
50
|
+
kind: filename-pattern
|
|
51
|
+
glob: "compositions/**/*.{html,tsx}"
|
|
52
|
+
pattern: "^[a-z0-9-]+\\.(html|tsx)$"
|
|
47
53
|
- id: VIDEO-02
|
|
48
54
|
rule: Scene durations must use contain mode by default to avoid unexpected cropping
|
|
49
55
|
severity: warning
|
|
56
|
+
check:
|
|
57
|
+
kind: file-contains
|
|
58
|
+
glob: "compositions/**/*.html"
|
|
59
|
+
pattern: contain
|
|
50
60
|
- id: VIDEO-03
|
|
51
61
|
rule: All speech audio elements must have corresponding ef-captions elements for accessibility
|
|
52
62
|
severity: error
|
|
63
|
+
check:
|
|
64
|
+
kind: file-contains
|
|
65
|
+
glob: "compositions/**/*.html"
|
|
66
|
+
pattern: ef-captions
|
|
53
67
|
workspace:
|
|
54
68
|
dirs:
|
|
55
69
|
- compositions
|
|
@@ -83,8 +83,10 @@ Mock at **system boundaries** only — external APIs, databases, time, randomnes
|
|
|
83
83
|
|
|
84
84
|
For the target package:
|
|
85
85
|
|
|
86
|
+
> Commands below assume RTK is installed. To check, run `rtk --version` (this is the detection command — it is not prefixed with `rtk` because it IS an `rtk` command). If `rtk --version` fails, RTK is not installed — run all commands without the `rtk` prefix.
|
|
87
|
+
|
|
86
88
|
```sh
|
|
87
|
-
pnpm --filter <package-name> test
|
|
89
|
+
rtk pnpm --filter <package-name> test
|
|
88
90
|
```
|
|
89
91
|
|
|
90
92
|
If the tests fail (red):
|
|
@@ -124,6 +124,8 @@ If yes, update the **template** files in `packages/os/site-kernel-onboarding/src
|
|
|
124
124
|
|
|
125
125
|
If yes, **do not edit the generated file directly**. Update the source registry or generator, then run the regeneration command:
|
|
126
126
|
|
|
127
|
+
> Commands below assume RTK is installed. To check, run `rtk --version` (this is the detection command — it is not prefixed with `rtk` because it IS an `rtk` command). If `rtk --version` fails, RTK is not installed — run all commands without the `rtk` prefix.
|
|
128
|
+
|
|
127
129
|
```sh
|
|
128
130
|
ref(forge.yaml bindings.commands.produce) --workspace=ecosystem.manifest.generate
|
|
129
131
|
ref(forge.yaml bindings.commands.produce) --workspace=command.manifest.generate
|
|
@@ -95,7 +95,9 @@ Otherwise, determine which workspaces were touched by the fixes in step 2 and ru
|
|
|
95
95
|
|
|
96
96
|
- **For each touched `apps/*` workspace:**
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
> Commands below assume RTK is installed. To check, run `rtk --version` (this is the detection command — it is not prefixed with `rtk` because it IS an `rtk` command). If `rtk --version` fails, RTK is not installed — run all commands without the `rtk` prefix.
|
|
99
|
+
|
|
100
|
+
```sh
|
|
99
101
|
pnpm --filter <app-name> exec astro check
|
|
100
102
|
```
|
|
101
103
|
|
|
@@ -121,8 +123,8 @@ All scoped checks must pass. If any fails:
|
|
|
121
123
|
Stage and commit the changes with a descriptive message.
|
|
122
124
|
|
|
123
125
|
```text
|
|
124
|
-
git add ...
|
|
125
|
-
git commit -m "fix(scope): ..."
|
|
126
|
+
rtk git add ...
|
|
127
|
+
rtk git commit -m "fix(scope): ..."
|
|
126
128
|
```
|
|
127
129
|
|
|
128
130
|
Do not commit secrets, API keys, or unrelated changes.
|
|
@@ -53,6 +53,8 @@ Read the full RFC file at `docs/rfcs/rfc-XXXX-*.md` for the first RFC to process
|
|
|
53
53
|
|
|
54
54
|
Run the mechanical floor first — it catches format, referential, and structural violations that don't need semantic judgment:
|
|
55
55
|
|
|
56
|
+
> Commands below assume RTK is installed. To check, run `rtk --version` (this is the detection command — it is not prefixed with `rtk` because it IS an `rtk` command). If `rtk --version` fails, RTK is not installed — run all commands without the `rtk` prefix.
|
|
57
|
+
|
|
56
58
|
```sh
|
|
57
59
|
ref(forge.yaml bindings.commands.validateRfc) --json
|
|
58
60
|
```
|
|
@@ -76,6 +76,8 @@ Address every concern the grilling raises by adjusting the metadata, scope, or c
|
|
|
76
76
|
|
|
77
77
|
Run:
|
|
78
78
|
|
|
79
|
+
> Commands below assume RTK is installed. To check, run `rtk --version` (this is the detection command — it is not prefixed with `rtk` because it IS an `rtk` command). If `rtk --version` fails, RTK is not installed — run all commands without the `rtk` prefix.
|
|
80
|
+
|
|
79
81
|
```sh
|
|
80
82
|
ref(forge.yaml bindings.commands.validateAdr) --create --title="<title>" --scope=<scope> --related=<related-ids>
|
|
81
83
|
```
|
|
@@ -31,6 +31,8 @@ Create a complete, `rfc.validate`-ready RFC draft in `docs/rfcs/` using the full
|
|
|
31
31
|
|
|
32
32
|
Confirm that the proposed change is not already covered by an accepted/implemented RFC. Before drafting, run:
|
|
33
33
|
|
|
34
|
+
> Commands below assume RTK is installed. To check, run `rtk --version` (this is the detection command — it is not prefixed with `rtk` because it IS an `rtk` command). If `rtk --version` fails, RTK is not installed — run all commands without the `rtk` prefix.
|
|
35
|
+
|
|
34
36
|
```sh
|
|
35
37
|
ref(forge.yaml bindings.commands.validateRfc) --status accepted --json
|
|
36
38
|
```
|
|
@@ -67,7 +67,9 @@ Read the RFC's `status` frontmatter:
|
|
|
67
67
|
- **`draft`** — proceed with enhancement.
|
|
68
68
|
- **`reviewing`** — transition to `draft` before enhancement. Set `status: draft`, update `updatedAt` to today's date, commit:
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
> Commands below assume RTK is installed. To check, run `rtk --version` (this is the detection command — it is not prefixed with `rtk` because it IS an `rtk` command). If `rtk --version` fails, RTK is not installed — run all commands without the `rtk` prefix.
|
|
71
|
+
|
|
72
|
+
```txt
|
|
71
73
|
rfc: revert RFC-XXXX to draft for enhancement
|
|
72
74
|
|
|
73
75
|
Transition RFC-XXXX from reviewing to draft before enhance.
|
|
@@ -73,7 +73,9 @@ Execute the plan's step sequence in order. For each step:
|
|
|
73
73
|
2. **Validate** — run the step's validation command (lightweight only: `rfc.validate`, type checks, unit tests on touched files). Do **not** run heavy checks (`root build`, `build:check`, `astro:check`) during implementation — they run only after all steps are complete.
|
|
74
74
|
3. **Commit** after each step or phase that produces a coherent, complete unit of work:
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
> Commands below assume RTK is installed. To check, run `rtk --version` (this is the detection command — it is not prefixed with `rtk` because it IS an `rtk` command). If `rtk --version` fails, RTK is not installed — run all commands without the `rtk` prefix.
|
|
77
|
+
|
|
78
|
+
```txt
|
|
77
79
|
implement: RFC-XXXX step N — <step title>
|
|
78
80
|
|
|
79
81
|
<one-line description of what was done in this step>.
|
|
@@ -64,7 +64,9 @@ If the RFC is `draft` or `reviewing` and has `enhancedAt` — the user's instruc
|
|
|
64
64
|
3. Set `updatedAt` to today's date.
|
|
65
65
|
4. Commit:
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
> Commands below assume RTK is installed. To check, run `rtk --version` (this is the detection command — it is not prefixed with `rtk` because it IS an `rtk` command). If `rtk --version` fails, RTK is not installed — run all commands without the `rtk` prefix.
|
|
68
|
+
|
|
69
|
+
```txt
|
|
68
70
|
rfc: accept RFC-XXXX <short title>
|
|
69
71
|
|
|
70
72
|
Transition RFC-XXXX to accepted status for planning.
|
|
@@ -36,6 +36,8 @@ Check the operator's input for:
|
|
|
36
36
|
|
|
37
37
|
**Always** make a single call to `rfc.list --json` (no `--status` flag) and a single call to `adr.list --json`. Filter by status in memory from the returned `entries` array. Never make per-status calls.
|
|
38
38
|
|
|
39
|
+
> Commands below assume RTK is installed. To check, run `rtk --version` (this is the detection command — it is not prefixed with `rtk` because it IS an `rtk` command). If `rtk --version` fails, RTK is not installed — run all commands without the `rtk` prefix.
|
|
40
|
+
|
|
39
41
|
```sh
|
|
40
42
|
ref(forge.yaml bindings.commands.validateRfc) --list --json
|
|
41
43
|
ref(forge.yaml bindings.commands.validateAdr) --list --json
|
|
@@ -51,14 +51,16 @@ Run the mechanical floor first — it catches type errors, lint violations, and
|
|
|
51
51
|
|
|
52
52
|
For a single affected package:
|
|
53
53
|
|
|
54
|
+
> Commands below assume RTK is installed. To check, run `rtk --version` (this is the detection command — it is not prefixed with `rtk` because it IS an `rtk` command). If `rtk --version` fails, RTK is not installed — run all commands without the `rtk` prefix.
|
|
55
|
+
|
|
54
56
|
```sh
|
|
55
|
-
pnpm --filter <package-name> build:check
|
|
57
|
+
rtk pnpm --filter <package-name> build:check
|
|
56
58
|
```
|
|
57
59
|
|
|
58
60
|
For an affected app:
|
|
59
61
|
|
|
60
62
|
```sh
|
|
61
|
-
pnpm --filter <app-name> exec astro check
|
|
63
|
+
rtk pnpm --filter <app-name> exec astro check
|
|
62
64
|
```
|
|
63
65
|
|
|
64
66
|
For cross-workspace changes, run the affected workspaces' checks individually rather than a full root build.
|