@warpgogol/forge 0.28.0 → 1.0.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.
Files changed (64) hide show
  1. package/AGENTS.md +16 -0
  2. package/README.md +4 -4
  3. package/README.uk.md +4 -4
  4. package/dist/os/core/core.module.d.ts.map +1 -1
  5. package/dist/os/core/core.module.js +34 -0
  6. package/dist/os/core/core.module.js.map +1 -1
  7. package/dist/os/program/discovery.d.ts +61 -0
  8. package/dist/os/program/discovery.d.ts.map +1 -0
  9. package/dist/os/program/discovery.js +236 -0
  10. package/dist/os/program/discovery.js.map +1 -0
  11. package/dist/os/program/handlers/complete.d.ts +12 -0
  12. package/dist/os/program/handlers/complete.d.ts.map +1 -0
  13. package/dist/os/program/handlers/complete.js +344 -0
  14. package/dist/os/program/handlers/complete.js.map +1 -0
  15. package/dist/os/program/handlers/lease.d.ts +13 -0
  16. package/dist/os/program/handlers/lease.d.ts.map +1 -0
  17. package/dist/os/program/handlers/lease.js +322 -0
  18. package/dist/os/program/handlers/lease.js.map +1 -0
  19. package/dist/os/program/handlers/seal.d.ts +12 -0
  20. package/dist/os/program/handlers/seal.d.ts.map +1 -0
  21. package/dist/os/program/handlers/seal.js +265 -0
  22. package/dist/os/program/handlers/seal.js.map +1 -0
  23. package/dist/os/program/handlers/validate.d.ts +14 -0
  24. package/dist/os/program/handlers/validate.d.ts.map +1 -0
  25. package/dist/os/program/handlers/validate.js +164 -0
  26. package/dist/os/program/handlers/validate.js.map +1 -0
  27. package/dist/os/program/lease.d.ts +39 -0
  28. package/dist/os/program/lease.d.ts.map +1 -0
  29. package/dist/os/program/lease.js +129 -0
  30. package/dist/os/program/lease.js.map +1 -0
  31. package/dist/os/program/program.module.d.ts +3 -0
  32. package/dist/os/program/program.module.d.ts.map +1 -0
  33. package/dist/os/program/program.module.js +201 -0
  34. package/dist/os/program/program.module.js.map +1 -0
  35. package/dist/os/program/schemas.d.ts +225 -0
  36. package/dist/os/program/schemas.d.ts.map +1 -0
  37. package/dist/os/program/schemas.js +174 -0
  38. package/dist/os/program/schemas.js.map +1 -0
  39. package/dist/os/program/state.d.ts +38 -0
  40. package/dist/os/program/state.d.ts.map +1 -0
  41. package/dist/os/program/state.js +189 -0
  42. package/dist/os/program/state.js.map +1 -0
  43. package/dist/os/rfc/handlers/archive.d.ts +1 -0
  44. package/dist/os/rfc/handlers/archive.d.ts.map +1 -1
  45. package/dist/os/rfc/handlers/archive.js +54 -0
  46. package/dist/os/rfc/handlers/archive.js.map +1 -1
  47. package/dist/src/index.d.ts +1 -0
  48. package/dist/src/index.d.ts.map +1 -1
  49. package/dist/src/index.js +1 -0
  50. package/dist/src/index.js.map +1 -1
  51. package/package.json +15 -15
  52. package/profiles/astro-typescript-turborepo.yaml +1 -1
  53. package/profiles/editframe.yaml +2 -2
  54. package/profiles/forge-shell.yaml +1 -1
  55. package/profiles/godot-csharp.yaml +388 -0
  56. package/profiles/phaser-turborepo.yaml +1 -1
  57. package/skills/fo/ef-onboard/SKILL.md +1 -1
  58. package/skills/fo/fo-idea/SKILL.md +2 -2
  59. package/skills/fo/fo-idea-implement/SKILL.md +1 -1
  60. package/skills/fo/fo-step-commit/SKILL.md +7 -5
  61. package/skills/shared/grilling/learned-principles.archive.md +212 -0
  62. package/skills/shared/grilling/learned-principles.md +0 -13
  63. package/skills/shared/grilling/qa-log.md +624 -0
  64. package/skills/shared/knowledge/learned-principles.md +99 -0
@@ -25,7 +25,7 @@ Guide the operator through creating a new Editframe video project within a Forge
25
25
 
26
26
  ### 1. Prerequisites check
27
27
 
28
- - **Node.js 18+**: Run `node --version`. If missing or below 18, direct the operator to `https://nodejs.org/en/download/` or install via the system package manager.
28
+ - **Node.js 24+**: Run `node --version`. If missing or below 24, direct the operator to `https://nodejs.org/en/download/` or install via the system package manager.
29
29
  - **FFmpeg**: Run `ffmpeg -version`. If missing, direct the operator to `https://ffmpeg.org/download.html` or install via the system package manager (`apt install ffmpeg`, `brew install ffmpeg`).
30
30
  - If either prerequisite is missing and cannot be installed automatically, stop and ask the operator to install it manually.
31
31
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fo-idea
3
- description: Analyze a user's idea, decompose if too large, and route to fo-idea-create-rfc, fo-idea-create-adr, or direct implementation. Use when the user describes a change and is unsure if it needs an RFC, ADR, or no document.
3
+ description: Classify an idea, split it when needed, and route it to an RFC, ADR, or direct implementation. Use when the required decision artifact is unclear.
4
4
  invocation: user
5
5
  category: fo
6
6
  concerns: document-only
@@ -131,7 +131,7 @@ These patterns **look like ADRs but are RFCs**:
131
131
  These patterns **look like they need a document but are direct implementation**:
132
132
 
133
133
  - **"Fixing content data"** — correcting a hash, updating a status field, or fixing a factual error in existing content is a data correction within existing structures, not an architectural change. Direct implementation.
134
- - **"Restoring broken behavior"** — a bug fix that restores the intended behavior within existing contracts is direct implementation, not an RFC. (See ADR-0008 for the precedent: "this is a bug fix restoring the intended behavior, not an architectural change.")
134
+ - **"Restoring broken behavior"** — a bug fix that restores the intended behavior within existing contracts is direct implementation, not an architectural change.
135
135
  - **"Cosmetic cleanup"** — formatting, indentation, import ordering, or local variable renaming with no semantic impact is direct implementation.
136
136
 
137
137
  If the classification is ambiguous (e.g. the operator's description is too vague), ask a clarifying question using `ask_user_question` with the recommended classification first.
@@ -434,7 +434,7 @@ Before stamping `implemented`, verify that the ADR is mentioned in the codebase
434
434
 
435
435
  #### 4.10. Stamp implemented
436
436
 
437
- After all checks pass and documentation is updated, transition the ADR to `implemented` using `adr.implement.stamp` (RFC-0727). Direct edits to ADR `status`, `implementedAt`, and `updatedAt` are prohibited — use the stamp command instead.
437
+ After all checks pass and documentation is updated, transition the ADR to `implemented` using `adr.implement.stamp` as required by the ADR lifecycle contract. Direct edits to ADR `status`, `implementedAt`, and `updatedAt` are prohibited — use the stamp command instead.
438
438
 
439
439
  1. Identify the implementation commit SHA — use the first `implement:` commit for this ADR.
440
440
  2. Run the stamp command:
@@ -30,12 +30,13 @@ Commit file changes after every standalone operator request that produces file c
30
30
 
31
31
  After every standalone operator request that produces file changes, perform the following:
32
32
 
33
- 1. **Detect changed files.** Run `git status --short` in the monorepo root. If the working tree is clean (no modifications), skip — no commit.
34
- 2. **Verify diff before staging.** Run `git diff` (not just `git diff --cached`) on every file the agent touched in this request. Confirm the changes are the agent's own work and not foreign changes from another session. If foreign changes are found, exclude them from staging.
33
+ 1. **Detect changed files in ALL trees.** Run `bash scripts/check-clean-trees.sh` from the repo root. This checks the werkstatt monorepo, all active mission workpieces, and all Sternsystem cache clones. If all trees are clean, skip — no commit. If any tree is dirty, proceed to commit each dirty tree.
34
+ 2. **Verify diff before staging.** Run `git diff` (not just `git diff --cached`) on every file the agent touched in this request, in each dirty tree. Confirm the changes are the agent's own work and not foreign changes from another session. If foreign changes are found, exclude them from staging.
35
35
  3. **Stage only agent-changed files.** Stage only the files the agent modified in this request. Never use `git add -A` or `git add .` — another agent or session may have unrelated changes in the working tree. Stage files by explicit path: `git add <path1> <path2> ...`.
36
36
  4. **Form commit message.** Write a conventional commit message (`fix:`, `feat:`, `refactor:`, `docs:`, `chore:`) based on the work performed in this request. The agent determines the type and description from the context of the request.
37
- 5. **Commit in monorepo.** `git commit -m "<message>"` with the staged files.
38
- 6. **Commit in mission workpiece (if applicable).** If the agent changed files in the active mission workpiece, commit there via the kernel's mission git commit command with the same message.
37
+ 5. **Commit in monorepo.** Use `pnpm exec werkstatt run ecosystem.commit --message="<message>"` (NOT raw `git commit`) as required by the canonical commit-discipline contract. Stage files with `git add <paths>` first, then run ecosystem.commit.
38
+ 6. **Commit in mission workpiece (if applicable).** If the agent changed files in the active mission workpiece, commit there via `pnpm exec werkstatt run mission.git.commit --mission=<missionId> --message="<message>"` as required by the canonical commit-discipline contract.
39
+ 7. **Verify clean trees.** After all commits, run `bash scripts/check-clean-trees.sh` again. If any tree is still dirty, report to the operator.
39
40
 
40
41
  ## What this skill does NOT do
41
42
 
@@ -50,6 +51,7 @@ The operator can skip the auto-commit for a specific request by saying "не к
50
51
 
51
52
  ## Failure modes
52
53
 
53
- - **No changes**: skill detects clean working tree and skips — no error, no commit.
54
+ - **No changes**: skill detects clean working tree (via check-clean-trees.sh) and skips — no error, no commit.
54
55
  - **Workpiece not found**: if no active mission workpiece exists, skip workpiece commit. Monorepo commit still proceeds.
55
56
  - **Workpiece commit fails**: if the workpiece commit fails (e.g. dirty tree from another agent), the skill does not block the monorepo commit. The agent reports the failure to the operator.
57
+ - **Post-commit verification**: after committing, re-run `check-clean-trees.sh`. If trees are still dirty, the agent MUST report the remaining dirty files to the operator before sending its response.
@@ -0,0 +1,212 @@
1
+ <!-- knowledge-layer: L2 -->
2
+ # learned-principles.md (archive)
3
+
4
+ Archived entries from learned-principles.md. Generated by forge.skill.knowledge.compact (RFC-0662).
5
+ ### K-0001: Extend infrastructure before feature logic
6
+
7
+ ```knowledge-entry
8
+ id: K-0001
9
+ layer: L2
10
+ created: 2026-08-03
11
+ lastConfirmedAt: 2026-08-03
12
+ confirmations: 1
13
+ promotedTo: shared/K-0003
14
+ status: superseded
15
+ ```
16
+
17
+ Promoted to shared layer as shared/K-0003.
18
+ ### K-0002: Unknown is not green
19
+
20
+ ```knowledge-entry
21
+ id: K-0002
22
+ layer: L2
23
+ created: 2026-08-14
24
+ lastConfirmedAt: 2026-08-14
25
+ confirmations: 1
26
+ promotedTo: shared/K-0001
27
+ status: superseded
28
+ ```
29
+
30
+ Promoted to shared layer as shared/K-0001.
31
+ ### K-0003: Quality claims bind to immutable identity
32
+
33
+ ```knowledge-entry
34
+ id: K-0003
35
+ layer: L2
36
+ created: 2026-08-14
37
+ lastConfirmedAt: 2026-08-14
38
+ confirmations: 1
39
+ promotedTo: shared/K-0001
40
+ status: superseded
41
+ ```
42
+
43
+ Promoted to shared layer as shared/K-0001.
44
+ ### K-0004: Evaluation must not mutate its subject
45
+
46
+ ```knowledge-entry
47
+ id: K-0004
48
+ layer: L2
49
+ created: 2026-08-14
50
+ lastConfirmedAt: 2026-08-14
51
+ confirmations: 1
52
+ promotedTo: shared/K-0004
53
+ status: superseded
54
+ ```
55
+
56
+ Promoted to shared layer as shared/K-0004.
57
+ ### K-0005: Immutable history and current health are separate
58
+
59
+ ```knowledge-entry
60
+ id: K-0005
61
+ layer: L2
62
+ created: 2026-08-14
63
+ lastConfirmedAt: 2026-08-14
64
+ confirmations: 1
65
+ promotedTo: shared/K-0001
66
+ status: superseded
67
+ ```
68
+
69
+ Promoted to shared layer as shared/K-0001.
70
+ ### K-0006: Migration complexity follows the real estate
71
+
72
+ ```knowledge-entry
73
+ id: K-0006
74
+ layer: L2
75
+ created: 2026-08-14
76
+ lastConfirmedAt: 2026-08-14
77
+ confirmations: 1
78
+ promotedTo: shared/K-0003
79
+ status: superseded
80
+ ```
81
+
82
+ Promoted to shared layer as shared/K-0003.
83
+ ### K-0007: Integrity requires an independent authority
84
+
85
+ ```knowledge-entry
86
+ id: K-0007
87
+ layer: L2
88
+ created: 2026-08-14
89
+ lastConfirmedAt: 2026-08-14
90
+ confirmations: 1
91
+ promotedTo: shared/K-0002
92
+ status: superseded
93
+ ```
94
+
95
+ Promoted to shared layer as shared/K-0002.
96
+ ### K-0008: Historical verification preserves policy bytes
97
+
98
+ ```knowledge-entry
99
+ id: K-0008
100
+ layer: L2
101
+ created: 2026-08-14
102
+ lastConfirmedAt: 2026-08-14
103
+ confirmations: 1
104
+ promotedTo: shared/K-0001
105
+ status: superseded
106
+ ```
107
+
108
+ Promoted to shared layer as shared/K-0001.
109
+ ### K-0009: Distributed evidence uses authority order and immutable cuts
110
+
111
+ ```knowledge-entry
112
+ id: K-0009
113
+ layer: L2
114
+ created: 2026-08-14
115
+ lastConfirmedAt: 2026-08-14
116
+ confirmations: 1
117
+ promotedTo: shared/K-0002
118
+ status: superseded
119
+ ```
120
+
121
+ Promoted to shared layer as shared/K-0002.
122
+ ### K-0010: Bootstrap safety does not create legacy authority
123
+
124
+ ```knowledge-entry
125
+ id: K-0010
126
+ layer: L2
127
+ created: 2026-08-14
128
+ lastConfirmedAt: 2026-08-14
129
+ confirmations: 1
130
+ promotedTo: shared/K-0003
131
+ status: superseded
132
+ ```
133
+
134
+ Promoted to shared layer as shared/K-0003.
135
+ ### K-0011: Documents are execution boundaries
136
+
137
+ ```knowledge-entry
138
+ id: K-0011
139
+ layer: L2
140
+ created: 2026-08-14
141
+ lastConfirmedAt: 2026-08-14
142
+ confirmations: 1
143
+ promotedTo: shared/K-0005
144
+ status: superseded
145
+ ```
146
+
147
+ Promoted to shared layer as shared/K-0005.
148
+ ### K-0012: Supersede decision authority, preserve useful mechanisms deliberately
149
+
150
+ ```knowledge-entry
151
+ id: K-0012
152
+ layer: L2
153
+ created: 2026-08-14
154
+ lastConfirmedAt: 2026-08-14
155
+ confirmations: 1
156
+ promotedTo: shared/K-0003
157
+ status: superseded
158
+ ```
159
+
160
+ Promoted to shared layer as shared/K-0003.
161
+ ### K-0013: Deterministic aggregators need scale contracts
162
+
163
+ ```knowledge-entry
164
+ id: K-0013
165
+ layer: L2
166
+ created: 2026-08-14
167
+ lastConfirmedAt: 2026-08-14
168
+ confirmations: 1
169
+ promotedTo: shared/K-0006
170
+ status: superseded
171
+ ```
172
+
173
+ Promoted to shared layer as shared/K-0006.
174
+ ### K-0014: Canonical identities require a closed snapshot boundary
175
+
176
+ ```knowledge-entry
177
+ id: K-0014
178
+ layer: L2
179
+ created: 2026-08-14
180
+ lastConfirmedAt: 2026-08-14
181
+ confirmations: 1
182
+ promotedTo: shared/K-0007
183
+ status: superseded
184
+ ```
185
+
186
+ Promoted to shared layer as shared/K-0007.
187
+ ### K-0015: Permanent formats profile standards instead of imitating them
188
+
189
+ ```knowledge-entry
190
+ id: K-0015
191
+ layer: L2
192
+ created: 2026-08-14
193
+ lastConfirmedAt: 2026-08-14
194
+ confirmations: 1
195
+ promotedTo: shared/K-0007
196
+ status: superseded
197
+ ```
198
+
199
+ Promoted to shared layer as shared/K-0007.
200
+ ### K-0016: Cutover enforcement starts after executor bootstrap
201
+
202
+ ```knowledge-entry
203
+ id: K-0016
204
+ layer: L2
205
+ created: 2026-08-14
206
+ lastConfirmedAt: 2026-08-14
207
+ confirmations: 1
208
+ promotedTo: shared/K-0003
209
+ status: superseded
210
+ ```
211
+
212
+ Promoted to shared layer as shared/K-0003.
@@ -11,16 +11,3 @@ Concrete principles distilled from past grilling sessions. Each principle has a
11
11
  - **Added:** <date>
12
12
  -->
13
13
 
14
- ### K-0001: Extend infrastructure before feature logic
15
-
16
- ```knowledge-entry
17
- id: K-0001
18
- layer: L2
19
- created: 2026-08-03
20
- lastConfirmedAt: 2026-08-03
21
- confirmations: 1
22
- status: active
23
- ```
24
-
25
- - **Condition:** Plan grilling reveals that a feature depends on a schema field, serializer entry, or validation path that doesn't exist in the underlying module yet.
26
- - **Recommended answer:** Add a separate plan step to extend the infrastructure (schema, serializer, validator) before any step that creates or reads the new field/path. Zod safeParse silently strips unknown fields; fixed-order serializers skip unknown fields. Without the extension step, data is silently lost.