@warpgogol/forge 0.3.1 → 0.5.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 (180) hide show
  1. package/AGENTS.md +152 -5
  2. package/dist/bin/cli.js +4 -5
  3. package/dist/bin/cli.js.map +1 -1
  4. package/dist/os/adr/adr.module.d.ts.map +1 -1
  5. package/dist/os/adr/adr.module.js +4 -2
  6. package/dist/os/adr/adr.module.js.map +1 -1
  7. package/dist/os/adr/handlers/validate.d.ts.map +1 -1
  8. package/dist/os/adr/handlers/validate.js +32 -4
  9. package/dist/os/adr/handlers/validate.js.map +1 -1
  10. package/dist/os/compass/compass.module.d.ts.map +1 -1
  11. package/dist/os/compass/compass.module.js +4 -0
  12. package/dist/os/compass/compass.module.js.map +1 -1
  13. package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +1 -1
  14. package/dist/os/compass/handlers/resolve-scan-root.js +16 -0
  15. package/dist/os/compass/handlers/resolve-scan-root.js.map +1 -1
  16. package/dist/os/core/core.module.d.ts.map +1 -1
  17. package/dist/os/core/core.module.js +82 -3
  18. package/dist/os/core/core.module.js.map +1 -1
  19. package/dist/os/core/handlers/knowledge-compact.d.ts +4 -0
  20. package/dist/os/core/handlers/knowledge-compact.d.ts.map +1 -0
  21. package/dist/os/core/handlers/knowledge-compact.js +198 -0
  22. package/dist/os/core/handlers/knowledge-compact.js.map +1 -0
  23. package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -1
  24. package/dist/os/rfc/handlers/implement-stamp.js +10 -6
  25. package/dist/os/rfc/handlers/implement-stamp.js.map +1 -1
  26. package/dist/os/rfc/handlers/index-graph.js +2 -2
  27. package/dist/os/rfc/handlers/index-graph.js.map +1 -1
  28. package/dist/os/rfc/handlers/lifecycle.d.ts.map +1 -1
  29. package/dist/os/rfc/handlers/lifecycle.js +4 -5
  30. package/dist/os/rfc/handlers/lifecycle.js.map +1 -1
  31. package/dist/os/rfc/handlers/pipeline-status.js +1 -1
  32. package/dist/os/rfc/handlers/pipeline-status.js.map +1 -1
  33. package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -1
  34. package/dist/os/rfc/handlers/validate-rules.js +41 -3
  35. package/dist/os/rfc/handlers/validate-rules.js.map +1 -1
  36. package/dist/os/rfc/handlers/validate.js +1 -1
  37. package/dist/os/rfc/handlers/validate.js.map +1 -1
  38. package/dist/os/rfc/rfc.module.d.ts.map +1 -1
  39. package/dist/os/rfc/rfc.module.js +15 -10
  40. package/dist/os/rfc/rfc.module.js.map +1 -1
  41. package/dist/os/session/handlers/validate.js +1 -1
  42. package/dist/os/session/handlers/validate.js.map +1 -1
  43. package/dist/os/session/session.module.d.ts.map +1 -1
  44. package/dist/os/session/session.module.js +4 -2
  45. package/dist/os/session/session.module.js.map +1 -1
  46. package/dist/os/spec/spec-schema.d.ts +1 -1
  47. package/dist/os/werkstatt/handlers/lock.d.ts.map +1 -1
  48. package/dist/os/werkstatt/handlers/lock.js +27 -1
  49. package/dist/os/werkstatt/handlers/lock.js.map +1 -1
  50. package/dist/os/werkstatt/handlers/schema.d.ts +1 -0
  51. package/dist/os/werkstatt/handlers/schema.d.ts.map +1 -1
  52. package/dist/os/werkstatt/handlers/schema.js +1 -0
  53. package/dist/os/werkstatt/handlers/schema.js.map +1 -1
  54. package/dist/src/config/forge-config.d.ts +70 -3
  55. package/dist/src/config/forge-config.d.ts.map +1 -1
  56. package/dist/src/config/forge-config.js +91 -4
  57. package/dist/src/config/forge-config.js.map +1 -1
  58. package/dist/src/index.d.ts +3 -1
  59. package/dist/src/index.d.ts.map +1 -1
  60. package/dist/src/index.js +6 -2
  61. package/dist/src/index.js.map +1 -1
  62. package/dist/src/knowledge/budgets.d.ts +38 -0
  63. package/dist/src/knowledge/budgets.d.ts.map +1 -0
  64. package/dist/src/knowledge/budgets.js +157 -0
  65. package/dist/src/knowledge/budgets.js.map +1 -0
  66. package/dist/src/knowledge/compact.d.ts +47 -0
  67. package/dist/src/knowledge/compact.d.ts.map +1 -0
  68. package/dist/src/knowledge/compact.js +322 -0
  69. package/dist/src/knowledge/compact.js.map +1 -0
  70. package/dist/src/knowledge/index.d.ts +7 -0
  71. package/dist/src/knowledge/index.d.ts.map +1 -0
  72. package/dist/src/knowledge/index.js +19 -0
  73. package/dist/src/knowledge/index.js.map +1 -0
  74. package/dist/src/knowledge/parse.d.ts +3 -0
  75. package/dist/src/knowledge/parse.d.ts.map +1 -0
  76. package/dist/src/knowledge/parse.js +205 -0
  77. package/dist/src/knowledge/parse.js.map +1 -0
  78. package/dist/src/knowledge/promote.d.ts +37 -0
  79. package/dist/src/knowledge/promote.d.ts.map +1 -0
  80. package/dist/src/knowledge/promote.js +120 -0
  81. package/dist/src/knowledge/promote.js.map +1 -0
  82. package/dist/src/knowledge/schema.d.ts +61 -0
  83. package/dist/src/knowledge/schema.d.ts.map +1 -0
  84. package/dist/src/knowledge/schema.js +64 -0
  85. package/dist/src/knowledge/schema.js.map +1 -0
  86. package/dist/src/knowledge/serialize.d.ts +3 -0
  87. package/dist/src/knowledge/serialize.d.ts.map +1 -0
  88. package/dist/src/knowledge/serialize.js +67 -0
  89. package/dist/src/knowledge/serialize.js.map +1 -0
  90. package/dist/src/onboarding/agents-generate.d.ts +19 -0
  91. package/dist/src/onboarding/agents-generate.d.ts.map +1 -1
  92. package/dist/src/onboarding/agents-generate.js +156 -66
  93. package/dist/src/onboarding/agents-generate.js.map +1 -1
  94. package/dist/src/onboarding/create.d.ts.map +1 -1
  95. package/dist/src/onboarding/create.js +66 -10
  96. package/dist/src/onboarding/create.js.map +1 -1
  97. package/dist/src/onboarding/doctor.d.ts +13 -1
  98. package/dist/src/onboarding/doctor.d.ts.map +1 -1
  99. package/dist/src/onboarding/doctor.js +613 -7
  100. package/dist/src/onboarding/doctor.js.map +1 -1
  101. package/dist/src/onboarding/init.d.ts +8 -1
  102. package/dist/src/onboarding/init.d.ts.map +1 -1
  103. package/dist/src/onboarding/init.js +33 -2
  104. package/dist/src/onboarding/init.js.map +1 -1
  105. package/dist/src/onboarding/memory-scaffold.d.ts +18 -0
  106. package/dist/src/onboarding/memory-scaffold.d.ts.map +1 -0
  107. package/dist/src/onboarding/memory-scaffold.js +151 -0
  108. package/dist/src/onboarding/memory-scaffold.js.map +1 -0
  109. package/dist/src/onboarding/nested-agents-generate.d.ts +16 -0
  110. package/dist/src/onboarding/nested-agents-generate.d.ts.map +1 -0
  111. package/dist/src/onboarding/nested-agents-generate.js +69 -0
  112. package/dist/src/onboarding/nested-agents-generate.js.map +1 -0
  113. package/dist/src/onboarding/nested-agents-templates.d.ts +26 -0
  114. package/dist/src/onboarding/nested-agents-templates.d.ts.map +1 -0
  115. package/dist/src/onboarding/nested-agents-templates.js +178 -0
  116. package/dist/src/onboarding/nested-agents-templates.js.map +1 -0
  117. package/dist/src/onboarding/profile-validate.d.ts +13 -0
  118. package/dist/src/onboarding/profile-validate.d.ts.map +1 -0
  119. package/dist/src/onboarding/profile-validate.js +109 -0
  120. package/dist/src/onboarding/profile-validate.js.map +1 -0
  121. package/dist/src/onboarding/upgrade.d.ts +6 -0
  122. package/dist/src/onboarding/upgrade.d.ts.map +1 -1
  123. package/dist/src/onboarding/upgrade.js +45 -1
  124. package/dist/src/onboarding/upgrade.js.map +1 -1
  125. package/dist/src/onboarding/workspace-discovery.d.ts +11 -0
  126. package/dist/src/onboarding/workspace-discovery.d.ts.map +1 -0
  127. package/dist/src/onboarding/workspace-discovery.js +138 -0
  128. package/dist/src/onboarding/workspace-discovery.js.map +1 -0
  129. package/dist/src/profiles/profile-schema.d.ts +116 -0
  130. package/dist/src/profiles/profile-schema.d.ts.map +1 -0
  131. package/dist/src/profiles/profile-schema.js +94 -0
  132. package/dist/src/profiles/profile-schema.js.map +1 -0
  133. package/dist/src/profiles/stack-profile.d.ts +41 -1
  134. package/dist/src/profiles/stack-profile.d.ts.map +1 -1
  135. package/dist/src/profiles/stack-profile.js +9 -0
  136. package/dist/src/profiles/stack-profile.js.map +1 -1
  137. package/dist/src/profiles/terminology-utils.d.ts +8 -0
  138. package/dist/src/profiles/terminology-utils.d.ts.map +1 -0
  139. package/dist/src/profiles/terminology-utils.js +31 -0
  140. package/dist/src/profiles/terminology-utils.js.map +1 -0
  141. package/dist/src/types.d.ts +0 -1
  142. package/dist/src/types.d.ts.map +1 -1
  143. package/dist/src/utils/fs-idempotent.d.ts +1 -1
  144. package/dist/src/utils/fs-idempotent.d.ts.map +1 -1
  145. package/dist/src/utils/fs-idempotent.js +12 -3
  146. package/dist/src/utils/fs-idempotent.js.map +1 -1
  147. package/dist/src/validators/skill-validate.d.ts +15 -0
  148. package/dist/src/validators/skill-validate.d.ts.map +1 -1
  149. package/dist/src/validators/skill-validate.js +204 -2
  150. package/dist/src/validators/skill-validate.js.map +1 -1
  151. package/package.json +2 -2
  152. package/profiles/astro-typescript-turborepo.yaml +87 -0
  153. package/profiles/editframe-html-templates/composition-agents.md +34 -0
  154. package/profiles/editframe-html-templates/composition.html +32 -0
  155. package/profiles/editframe-html.yaml +283 -0
  156. package/profiles/forge-shell.yaml +77 -0
  157. package/profiles/phaser-turborepo.yaml +87 -0
  158. package/skills/fo/fo-doc-audit/SKILL.md +6 -6
  159. package/skills/fo/fo-fix/SKILL.md +11 -0
  160. package/skills/fo/fo-handoff/SKILL.md +2 -1
  161. package/skills/fo/fo-idea-implement/SKILL.md +44 -2
  162. package/skills/fo/fo-idea-plan/SKILL.md +1 -0
  163. package/skills/fo/fo-knowledge-distill/SKILL.md +170 -0
  164. package/skills/fo/fo-memory-sync/SKILL.md +6 -3
  165. package/skills/fo/fo-memory-sync/fix-patterns.md +38 -4
  166. package/skills/fo/fo-review/SKILL.md +2 -2
  167. package/skills/fo/fo-session-retro/SKILL.md +21 -11
  168. package/skills/fo/fo-session-save/SKILL.md +3 -4
  169. package/skills/fo/fo-session-save/fix-patterns.md +53 -29
  170. package/skills/fo/fo-session-save/learned-principles.md +59 -8
  171. package/skills/fo/fo-step-commit/SKILL.md +55 -0
  172. package/skills/meta/forge-bootstrap/SKILL.md +28 -4
  173. package/skills/meta/forge-bootstrap/operator-profile-template.md +1 -0
  174. package/skills/meta/skill-create/SKILL.md +1 -1
  175. package/skills/shared/grilling/SKILL.md +1 -1
  176. package/skills/shared/grilling/learned-principles.md +14 -0
  177. package/skills/shared/grilling/qa-log.md +105 -6
  178. package/skills/shared/knowledge/learned-principles.md +5 -0
  179. package/skills/shared/windows-ai-tooling/SKILL.md +154 -1
  180. package/skills/shared/writing-great-skills/SKILL.md +74 -1
@@ -0,0 +1,178 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>Nested AGENTS.md template builder (RFC-0611). Pure function that renders
4
+ content-rich AGENTS.md for a workspace from its package.json metadata. No I/O.</purpose>
5
+ <non-goals>
6
+ <item>Do not read or write files — this is a pure render function.</item>
7
+ <item>Do not invent metadata not present in package.json — omit sections when data is absent.</item>
8
+ </non-goals>
9
+ </MODULE_CONTRACT>
10
+ <CHANGE_SUMMARY>
11
+ <item>RFC-0611: initial minimal stub template for app, package, service workspaces.</item>
12
+ <item>Enriched template: render package name, description, entry points, scripts, and dependencies from package.json metadata instead of a minimal stub.</item>
13
+ <item>RFC-0643: selectNestedTemplate() for profile-driven template selection with path traversal guard.</item>
14
+ </CHANGE_SUMMARY>
15
+ */
16
+ import { buildGeneratedHeader } from "../utils/index.js";
17
+ import fs from "node:fs";
18
+ import path from "node:path";
19
+ const TYPE_GUIDANCE = {
20
+ app: "This is an **app** workspace. Follow thin-route and content-driven composition rules from the root AGENTS.md.",
21
+ package: "This is a **package** workspace. Expose stable typed APIs. Do not import from apps or services.",
22
+ service: "This is a **service** workspace. Runtime composition only. Shared schemas and validators belong in packages.",
23
+ };
24
+ const TYPE_LABEL = {
25
+ app: "App",
26
+ package: "Package",
27
+ service: "Service",
28
+ };
29
+ function extractEntryPoints(exports, main) {
30
+ if (!exports || typeof exports !== "object") {
31
+ if (main)
32
+ return [{ name: ".", module: main }];
33
+ return [];
34
+ }
35
+ const result = [];
36
+ for (const [key, value] of Object.entries(exports)) {
37
+ if (typeof value === "string") {
38
+ result.push({ name: key, module: value });
39
+ }
40
+ else if (value && typeof value === "object") {
41
+ const module = value.types ?? value.default;
42
+ if (module)
43
+ result.push({ name: key, module });
44
+ }
45
+ }
46
+ return result;
47
+ }
48
+ function formatDependencies(deps) {
49
+ if (!deps)
50
+ return { workspace: [], external: [] };
51
+ const workspace = [];
52
+ const external = [];
53
+ for (const [name, version] of Object.entries(deps)) {
54
+ if (version.startsWith("workspace:")) {
55
+ workspace.push(`\`${name}\``);
56
+ }
57
+ else {
58
+ external.push(`\`${name}\` \`${version}\``);
59
+ }
60
+ }
61
+ return { workspace, external };
62
+ }
63
+ function buildScriptsTable(scripts) {
64
+ if (!scripts || Object.keys(scripts).length === 0)
65
+ return [];
66
+ const lines = [];
67
+ lines.push("## Scripts");
68
+ lines.push("");
69
+ lines.push("| Script | Command |");
70
+ lines.push("| --- | --- |");
71
+ for (const [name, cmd] of Object.entries(scripts)) {
72
+ lines.push(`| \`${name}\` | \`${cmd}\` |`);
73
+ }
74
+ lines.push("");
75
+ return lines;
76
+ }
77
+ function buildDependenciesSection(deps) {
78
+ const { workspace, external } = formatDependencies(deps);
79
+ if (workspace.length === 0 && external.length === 0)
80
+ return [];
81
+ const lines = [];
82
+ lines.push("## Dependencies");
83
+ lines.push("");
84
+ if (workspace.length > 0) {
85
+ lines.push("**Workspace:**");
86
+ lines.push("");
87
+ for (const dep of workspace)
88
+ lines.push(`- ${dep}`);
89
+ lines.push("");
90
+ }
91
+ if (external.length > 0) {
92
+ lines.push("**External:**");
93
+ lines.push("");
94
+ for (const dep of external)
95
+ lines.push(`- ${dep}`);
96
+ lines.push("");
97
+ }
98
+ return lines;
99
+ }
100
+ /**
101
+ * RFC-0643: Select nested AGENTS.md template from profile workspace type.
102
+ * When agentsMdTemplate is present, resolve relative to profile directory.
103
+ * Reject absolute paths and parent-directory traversal (..) — fall back to hardcoded.
104
+ * Apply terminology substitution to the template content.
105
+ */
106
+ export function selectNestedTemplate(workspaceType, profile, terminology, fallback) {
107
+ if (!workspaceType?.agentsMdTemplate || !profile) {
108
+ return fallback;
109
+ }
110
+ const templateRel = workspaceType.agentsMdTemplate;
111
+ // Path traversal guard: reject absolute paths and ..
112
+ if (path.isAbsolute(templateRel) || templateRel.includes("..")) {
113
+ return fallback;
114
+ }
115
+ // Resolve relative to profiles/ directory (where profile YAMLs live)
116
+ const forgeRoot = path.resolve(import.meta.dirname, "..", "..");
117
+ const profilesDir = path.join(forgeRoot, "profiles");
118
+ const templatePath = path.resolve(profilesDir, templateRel);
119
+ // Ensure resolved path is within profiles directory (no traversal escape)
120
+ if (!templatePath.startsWith(profilesDir + path.sep) && templatePath !== profilesDir) {
121
+ return fallback;
122
+ }
123
+ try {
124
+ const content = fs.readFileSync(templatePath, "utf8");
125
+ return substituteNestedTemplate(content, terminology);
126
+ }
127
+ catch {
128
+ // Template file not found — fall back
129
+ return fallback;
130
+ }
131
+ }
132
+ function substituteNestedTemplate(content, terminology) {
133
+ return content.replace(/\{\{terminology\.(\w+)\}\}/g, (_, key) => terminology[key] ?? key);
134
+ }
135
+ export function buildNestedAgentsMd(workspace, _config, packageInfo) {
136
+ const header = buildGeneratedHeader({
137
+ filePath: "AGENTS.md",
138
+ ownerCommand: "forge.agents.generate",
139
+ commandPrefix: "forge",
140
+ });
141
+ const lines = [];
142
+ lines.push(header);
143
+ lines.push("");
144
+ const displayName = packageInfo?.name ?? workspace.path;
145
+ lines.push(`# \`${displayName}\` — Agent Guide`);
146
+ lines.push("");
147
+ if (packageInfo?.description) {
148
+ lines.push(packageInfo.description);
149
+ lines.push("");
150
+ }
151
+ lines.push(`> This file is generated by \`forge.agents.generate\` (RFC-0611).`);
152
+ lines.push(`> Do not edit by hand — re-run \`forge agents generate\` to regenerate.`);
153
+ lines.push("");
154
+ lines.push(`**Workspace type:** ${TYPE_LABEL[workspace.type]}`);
155
+ lines.push("");
156
+ lines.push(TYPE_GUIDANCE[workspace.type]);
157
+ lines.push("");
158
+ if (workspace.type === "package") {
159
+ const entryPoints = extractEntryPoints(packageInfo?.exports, packageInfo?.main);
160
+ if (entryPoints.length > 0) {
161
+ lines.push("## Entry points");
162
+ lines.push("");
163
+ lines.push("| Entry point | Module |");
164
+ lines.push("| --- | --- |");
165
+ for (const ep of entryPoints) {
166
+ const suffix = ep.name === "." ? "" : ep.name.replace(/^\.\//, "/");
167
+ lines.push(`| \`${displayName}${suffix}\` | \`${ep.module}\` |`);
168
+ }
169
+ lines.push("");
170
+ }
171
+ }
172
+ lines.push(...buildScriptsTable(packageInfo?.scripts));
173
+ lines.push(...buildDependenciesSection(packageInfo?.dependencies));
174
+ lines.push("See the root `AGENTS.md` for project-wide rules, skills, and capabilities.");
175
+ lines.push("");
176
+ return lines.join("\n");
177
+ }
178
+ //# sourceMappingURL=nested-agents-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested-agents-templates.js","sourceRoot":"","sources":["../../../src/onboarding/nested-agents-templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;EAcE;AAEF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAa7B,MAAM,aAAa,GAAkC;IACnD,GAAG,EAAE,+GAA+G;IACpH,OAAO,EACL,iGAAiG;IACnG,OAAO,EACL,8GAA8G;CACjH,CAAC;AAEF,MAAM,UAAU,GAAkC;IAChD,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAOF,SAAS,kBAAkB,CACzB,OAA+B,EAC/B,IAAa;IAEb,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;YAC5C,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAwC;IAExC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAClD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,OAAO,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA2C;IACpE,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,UAAU,GAAG,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAwC;IACxE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,aAA+C,EAC/C,OAAiC,EACjC,WAAmC,EACnC,QAAgB;IAEhB,IAAI,CAAC,aAAa,EAAE,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAEnD,qDAAqD;IACrD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,qEAAqE;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAE5D,0EAA0E;IAC1E,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QACrF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;QACtC,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAAe,EACf,WAAmC;IAEnC,OAAO,OAAO,CAAC,OAAO,CACpB,6BAA6B,EAC7B,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,SAAuB,EACvB,OAAoB,EACpB,WAAyB;IAEzB,MAAM,MAAM,GAAG,oBAAoB,CAAC;QAClC,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE,uBAAuB;QACrC,aAAa,EAAE,OAAO;KACvB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,WAAW,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,OAAO,WAAW,kBAAkB,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,WAAW,EAAE,WAAW,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;IACtF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,uBAAuB,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAChF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5B,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACpE,KAAK,CAAC,IAAI,CAAC,OAAO,WAAW,GAAG,MAAM,UAAU,EAAE,CAAC,MAAM,MAAM,CAAC,CAAC;YACnE,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAEnE,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACzF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ForgeCommandInput, ForgeCommandResult, ForgeRuntimeContext } from "../types.ts";
2
+ export interface ProfileValidateResult {
3
+ command: "forge.profile.validate";
4
+ valid: boolean;
5
+ profiles: Array<{
6
+ id: string;
7
+ valid: boolean;
8
+ errors: string[];
9
+ warnings: string[];
10
+ }>;
11
+ }
12
+ export declare function runProfileValidate(input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<ProfileValidateResult>>;
13
+ //# sourceMappingURL=profile-validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-validate.d.ts","sourceRoot":"","sources":["../../../src/onboarding/profile-validate.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,wBAAwB,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC,CAAC;CACJ;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,CAqGpD"}
@@ -0,0 +1,109 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>forge.profile.validate — validates profile YAML files under packages/forge/profiles/ against the extended stack-profile schema (RFC-0638). Supports --id flag for single-profile validation.</purpose>
4
+ <non-goals>
5
+ <item>Do not import from @warpgogol/* — this module is portable.</item>
6
+ <item>Do not modify profile files — validation is read-only.</item>
7
+ </non-goals>
8
+ </MODULE_CONTRACT>
9
+ <CHANGE_SUMMARY>
10
+ <item>RFC-0640: initial forge.profile.validate handler.</item>
11
+ </CHANGE_SUMMARY>
12
+ */
13
+ import fs from "node:fs";
14
+ import path from "node:path";
15
+ import { parse as parseYaml } from "yaml";
16
+ import { stackProfileSchema } from "../profiles/stack-profile.js";
17
+ export async function runProfileValidate(input, context) {
18
+ const { workspaceRoot, logger, outputFormat } = context;
19
+ const filterId = input.flags["id"];
20
+ const forgeRoot = context.forgeRoot ?? path.join(workspaceRoot, "packages", "forge");
21
+ const profilesDir = path.join(forgeRoot, "profiles");
22
+ const profileResults = [];
23
+ if (!fs.existsSync(profilesDir)) {
24
+ const result = {
25
+ command: "forge.profile.validate",
26
+ valid: true,
27
+ profiles: [],
28
+ };
29
+ if (outputFormat === "pretty") {
30
+ logger.warn(`No profiles directory found at ${profilesDir}`);
31
+ }
32
+ return {
33
+ data: result,
34
+ exitCode: 0,
35
+ summary: "forge.profile.validate: no profiles directory — 0 profiles checked",
36
+ };
37
+ }
38
+ const entries = fs.readdirSync(profilesDir);
39
+ for (const entry of entries) {
40
+ if (!entry.endsWith(".yaml") || entry.startsWith("."))
41
+ continue;
42
+ const profilePath = path.join(profilesDir, entry);
43
+ const raw = fs.readFileSync(profilePath, "utf8");
44
+ let parsed;
45
+ let parseError = null;
46
+ try {
47
+ parsed = parseYaml(raw);
48
+ }
49
+ catch (err) {
50
+ parseError = err.message;
51
+ }
52
+ let profileId = entry.replace(/\.yaml$/, "");
53
+ if (parsed && typeof parsed === "object" && "id" in parsed) {
54
+ profileId = parsed.id;
55
+ }
56
+ if (filterId && profileId !== filterId)
57
+ continue;
58
+ const errors = [];
59
+ const warnings = [];
60
+ if (parseError) {
61
+ errors.push(`YAML parse error: ${parseError}`);
62
+ }
63
+ else {
64
+ const result = stackProfileSchema.safeParse(parsed);
65
+ if (!result.success) {
66
+ for (const issue of result.error.issues) {
67
+ errors.push(`${issue.path.join(".")}: ${issue.message}`);
68
+ }
69
+ }
70
+ }
71
+ profileResults.push({
72
+ id: profileId,
73
+ valid: errors.length === 0,
74
+ errors,
75
+ warnings,
76
+ });
77
+ }
78
+ const allValid = profileResults.every((p) => p.valid);
79
+ if (outputFormat === "pretty") {
80
+ logger.section(`Forge Profile Validate — ${profilesDir}`);
81
+ for (const p of profileResults) {
82
+ const icon = p.valid ? "✓" : "✖";
83
+ const fn = p.valid ? logger.success : logger.error;
84
+ fn(`${icon} ${p.id}: ${p.valid ? "valid" : `${p.errors.length} error(s)`}`);
85
+ for (const err of p.errors) {
86
+ logger.error(` - ${err}`);
87
+ }
88
+ }
89
+ if (allValid) {
90
+ logger.success(`All ${profileResults.length} profile(s) valid.`);
91
+ }
92
+ else {
93
+ logger.error(`${profileResults.filter((p) => !p.valid).length} profile(s) invalid.`);
94
+ }
95
+ }
96
+ const result = {
97
+ command: "forge.profile.validate",
98
+ valid: allValid,
99
+ profiles: profileResults,
100
+ };
101
+ return {
102
+ data: result,
103
+ exitCode: allValid ? 0 : 1,
104
+ summary: allValid
105
+ ? `forge.profile.validate: OK — ${profileResults.length} profile(s) valid`
106
+ : `forge.profile.validate: ${profileResults.filter((p) => !p.valid).length} invalid profile(s)`,
107
+ };
108
+ }
109
+ //# sourceMappingURL=profile-validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-validate.js","sourceRoot":"","sources":["../../../src/onboarding/profile-validate.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,12 @@ export interface UpgradeResult {
11
11
  value: string;
12
12
  }[];
13
13
  skippedSkills: SkippedSkill[];
14
+ nestedAgentsGenerated: string[];
15
+ memoryScaffold: {
16
+ created: string[];
17
+ gitignoreUpdated: boolean;
18
+ skipped: string[];
19
+ };
14
20
  doctorReport: unknown;
15
21
  }
16
22
  export declare function runUpgrade(input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<UpgradeResult>>;
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/onboarding/upgrade.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAiB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE7G,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChD,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;CACvB;AAgKD,wBAAsB,UAAU,CAC9B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAuK5C"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/onboarding/upgrade.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAiB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE7G,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChD,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACpF,YAAY,EAAE,OAAO,CAAC;CACvB;AAqLD,wBAAsB,UAAU,CAC9B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAuM5C"}
@@ -11,6 +11,9 @@ overwriting operator-set values, updates forge.syncedVersion, and runs forge.doc
11
11
  </MODULE_CONTRACT>
12
12
  <CHANGE_SUMMARY>
13
13
  <item>RFC-0543: initial forge.upgrade handler — 7-step additive sync flow.</item>
14
+ <item>RFC-0611: added nested AGENTS.md generation after skill sync.</item>
15
+ <item>RFC-0663: added syncSharedKnowledge step to sync shared knowledge layer to .agents/skills/shared-knowledge/.</item>
16
+ <item>RFC-0664: added scaffoldMemoryLayer step to scaffold .agents/memory/ and .gitignore block.</item>
14
17
  </CHANGE_SUMMARY>
15
18
  */
16
19
  import fs from "node:fs";
@@ -18,6 +21,8 @@ import path from "node:path";
18
21
  import { stringify as stringifyYaml, parse as parseYaml } from "yaml";
19
22
  import { FORGE_CLI_BINDING_DEFAULTS, resolveForgeRoot, loadForgeConfig, resolvePmRunner, } from "../config/forge-config.js";
20
23
  import { FORGE_SKILLS, discoverPackSkills } from "../registry.js";
24
+ import { generateNestedAgentsMd } from "./nested-agents-generate.js";
25
+ import { scaffoldMemoryLayer } from "./memory-scaffold.js";
21
26
  function readForgePackageVersion(forgeRoot) {
22
27
  const pkgPath = path.join(forgeRoot, "package.json");
23
28
  const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
@@ -65,6 +70,20 @@ function syncForgeSkills(workspaceRoot, forgeRoot, skillsDir, dryRun) {
65
70
  }
66
71
  return updated;
67
72
  }
73
+ function syncSharedKnowledge(workspaceRoot, forgeRoot, skillsDir, dryRun) {
74
+ const updated = [];
75
+ const srcPath = path.join(forgeRoot, "skills", "shared", "knowledge", "learned-principles.md");
76
+ if (!fs.existsSync(srcPath))
77
+ return updated;
78
+ const destDir = path.join(workspaceRoot, skillsDir, "shared-knowledge");
79
+ const destPath = path.join(destDir, "learned-principles.md");
80
+ if (!dryRun) {
81
+ fs.mkdirSync(destDir, { recursive: true });
82
+ fs.writeFileSync(destPath, fs.readFileSync(srcPath, "utf8"), "utf8");
83
+ }
84
+ updated.push("shared-knowledge");
85
+ return updated;
86
+ }
68
87
  function syncPackSkills(workspaceRoot, config, skillsDir, dryRun) {
69
88
  const updated = [];
70
89
  const skipped = [];
@@ -157,6 +176,8 @@ export async function runUpgrade(input, context) {
157
176
  skillsUpdated: [],
158
177
  bindingsAdded: [],
159
178
  skippedSkills: [],
179
+ nestedAgentsGenerated: [],
180
+ memoryScaffold: { created: [], gitignoreUpdated: false, skipped: [] },
160
181
  doctorReport: null,
161
182
  },
162
183
  nextSteps: [{ action: "Run 'forge create' to create forge.yaml first", kind: "required" }],
@@ -181,6 +202,8 @@ export async function runUpgrade(input, context) {
181
202
  skillsUpdated: [],
182
203
  bindingsAdded: [],
183
204
  skippedSkills: [],
205
+ nestedAgentsGenerated: [],
206
+ memoryScaffold: { created: [], gitignoreUpdated: false, skipped: [] },
184
207
  doctorReport: null,
185
208
  },
186
209
  nextSteps: [
@@ -205,6 +228,8 @@ export async function runUpgrade(input, context) {
205
228
  skillsUpdated: [],
206
229
  bindingsAdded: [],
207
230
  skippedSkills: [],
231
+ nestedAgentsGenerated: [],
232
+ memoryScaffold: { created: [], gitignoreUpdated: false, skipped: [] },
208
233
  doctorReport: null,
209
234
  },
210
235
  nextSteps: [
@@ -227,6 +252,8 @@ export async function runUpgrade(input, context) {
227
252
  skillsUpdated: [],
228
253
  bindingsAdded: [],
229
254
  skippedSkills: [],
255
+ nestedAgentsGenerated: [],
256
+ memoryScaffold: { created: [], gitignoreUpdated: false, skipped: [] },
230
257
  doctorReport: null,
231
258
  },
232
259
  nextSteps,
@@ -238,13 +265,28 @@ export async function runUpgrade(input, context) {
238
265
  const forgeSkillsUpdated = syncForgeSkills(workspaceRoot, forgeRoot, config.paths.skillsDir, isDryRun);
239
266
  // Step 3b: Sync pack skills
240
267
  const packResult = syncPackSkills(workspaceRoot, config, config.paths.skillsDir, isDryRun);
241
- const skillsUpdated = [...forgeSkillsUpdated, ...packResult.updated];
268
+ // Step 3c: Sync shared knowledge layer (RFC-0663)
269
+ const sharedKnowledgeUpdated = syncSharedKnowledge(workspaceRoot, forgeRoot, config.paths.skillsDir, isDryRun);
270
+ const skillsUpdated = [...forgeSkillsUpdated, ...packResult.updated, ...sharedKnowledgeUpdated];
271
+ // Step 3d: Scaffold memory layer (RFC-0664)
272
+ const memoryScaffold = isDryRun ? { created: [], gitignoreUpdated: false, skipped: [] } : scaffoldMemoryLayer(workspaceRoot);
242
273
  // Step 4: Add missing binding defaults
243
274
  const bindingsAdded = addMissingBindingDefaults(config, isDryRun);
244
275
  // Step 5: Update forge.syncedVersion
245
276
  if (!isDryRun) {
246
277
  updateSyncedVersion(workspaceRoot, config, toVersion, false);
247
278
  }
279
+ // Step 5b: Generate nested AGENTS.md (RFC-0611)
280
+ let nestedAgentsGenerated = [];
281
+ if (!isDryRun) {
282
+ try {
283
+ const nestedResult = await generateNestedAgentsMd(workspaceRoot, config, false);
284
+ nestedAgentsGenerated = nestedResult.generated;
285
+ }
286
+ catch {
287
+ // Nested generation failure is non-fatal
288
+ }
289
+ }
248
290
  // Step 6: Run doctor
249
291
  let doctorReport = null;
250
292
  if (!isDryRun) {
@@ -281,6 +323,8 @@ export async function runUpgrade(input, context) {
281
323
  skillsUpdated,
282
324
  bindingsAdded,
283
325
  skippedSkills: packResult.skipped,
326
+ nestedAgentsGenerated,
327
+ memoryScaffold,
284
328
  doctorReport,
285
329
  },
286
330
  nextSteps,
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/onboarding/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/onboarding/upgrade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ProfileWorkspaceType } from "../profiles/profile-schema.ts";
2
+ export type WorkspaceType = "app" | "service" | "package" | string;
3
+ export interface WorkspaceDir {
4
+ path: string;
5
+ type: WorkspaceType;
6
+ hasAgentsMd: boolean;
7
+ isGenerated: boolean;
8
+ }
9
+ export declare function detectWorkspaceType(dirPath: string, workspaceTypes?: ProfileWorkspaceType[]): WorkspaceType | null;
10
+ export declare function discoverWorkspaces(workspaceRoot: string, workspaceTypes?: ProfileWorkspaceType[]): WorkspaceDir[];
11
+ //# sourceMappingURL=workspace-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-discovery.d.ts","sourceRoot":"","sources":["../../../src/onboarding/workspace-discovery.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB;AAWD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,oBAAoB,EAAE,GACtC,aAAa,GAAG,IAAI,CAiCtB;AAiCD,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,oBAAoB,EAAE,GACtC,YAAY,EAAE,CAiDhB"}