@warpgogol/forge 0.9.0 → 0.10.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 (53) hide show
  1. package/AGENTS.md +31 -2
  2. package/dist/bin/cli.js +0 -0
  3. package/dist/os/core/core.module.d.ts.map +1 -1
  4. package/dist/os/core/core.module.js +65 -0
  5. package/dist/os/core/core.module.js.map +1 -1
  6. package/dist/os/core/handlers/build.d.ts +16 -0
  7. package/dist/os/core/handlers/build.d.ts.map +1 -0
  8. package/dist/os/core/handlers/build.js +123 -0
  9. package/dist/os/core/handlers/build.js.map +1 -0
  10. package/dist/os/core/handlers/dev.d.ts +10 -0
  11. package/dist/os/core/handlers/dev.d.ts.map +1 -0
  12. package/dist/os/core/handlers/dev.js +102 -0
  13. package/dist/os/core/handlers/dev.js.map +1 -0
  14. package/dist/os/core/handlers/profile-resolve.d.ts +13 -0
  15. package/dist/os/core/handlers/profile-resolve.d.ts.map +1 -0
  16. package/dist/os/core/handlers/profile-resolve.js +65 -0
  17. package/dist/os/core/handlers/profile-resolve.js.map +1 -0
  18. package/dist/os/core/handlers/validate.d.ts +15 -0
  19. package/dist/os/core/handlers/validate.d.ts.map +1 -0
  20. package/dist/os/core/handlers/validate.js +120 -0
  21. package/dist/os/core/handlers/validate.js.map +1 -0
  22. package/dist/src/onboarding/doctor.d.ts +3 -0
  23. package/dist/src/onboarding/doctor.d.ts.map +1 -1
  24. package/dist/src/onboarding/doctor.js +34 -4
  25. package/dist/src/onboarding/doctor.js.map +1 -1
  26. package/dist/src/onboarding/invariant-engine.d.ts +17 -0
  27. package/dist/src/onboarding/invariant-engine.d.ts.map +1 -0
  28. package/dist/src/onboarding/invariant-engine.js +173 -0
  29. package/dist/src/onboarding/invariant-engine.js.map +1 -0
  30. package/dist/src/profiles/profile-schema.d.ts +53 -0
  31. package/dist/src/profiles/profile-schema.d.ts.map +1 -1
  32. package/dist/src/profiles/profile-schema.js +19 -1
  33. package/dist/src/profiles/profile-schema.js.map +1 -1
  34. package/dist/src/profiles/stack-profile.d.ts +15 -0
  35. package/dist/src/profiles/stack-profile.d.ts.map +1 -1
  36. package/dist/src/profiles/stack-profile.js +3 -0
  37. package/dist/src/profiles/stack-profile.js.map +1 -1
  38. package/package.json +69 -162
  39. package/profiles/editframe-html.yaml +15 -0
  40. package/skills/fo/fo-add-tests/SKILL.md +3 -1
  41. package/skills/fo/fo-doc-audit/SKILL.md +2 -0
  42. package/skills/fo/fo-fix/SKILL.md +5 -3
  43. package/skills/fo/fo-idea-audit/SKILL.md +2 -0
  44. package/skills/fo/fo-idea-create-adr/SKILL.md +2 -0
  45. package/skills/fo/fo-idea-create-rfc/SKILL.md +2 -0
  46. package/skills/fo/fo-idea-enhance/SKILL.md +3 -1
  47. package/skills/fo/fo-idea-implement/SKILL.md +3 -1
  48. package/skills/fo/fo-idea-plan/SKILL.md +3 -1
  49. package/skills/fo/fo-idea-status/SKILL.md +2 -0
  50. package/skills/fo/fo-review/SKILL.md +4 -2
  51. package/skills/fo/fo-session-retro/SKILL.md +185 -1
  52. package/skills/meta/forge-bootstrap/SKILL.md +27 -4
  53. package/skills/shared/windows-ai-tooling/SKILL.md +3 -1
@@ -51,6 +51,22 @@ export interface ProfileWorkspaceType {
51
51
  skills?: string[];
52
52
  agentsMdTemplate?: string;
53
53
  }
54
+ export declare const profileInvariantCheckSchema: z.ZodObject<{
55
+ kind: z.ZodEnum<{
56
+ "filename-pattern": "filename-pattern";
57
+ "file-contains": "file-contains";
58
+ "file-not-contains": "file-not-contains";
59
+ }>;
60
+ glob: z.ZodOptional<z.ZodString>;
61
+ pattern: z.ZodOptional<z.ZodString>;
62
+ negatedPattern: z.ZodOptional<z.ZodString>;
63
+ }, z.core.$strip>;
64
+ export interface ProfileInvariantCheck {
65
+ kind: "filename-pattern" | "file-contains" | "file-not-contains";
66
+ glob?: string;
67
+ pattern?: string;
68
+ negatedPattern?: string;
69
+ }
54
70
  export declare const profileInvariantSchema: z.ZodObject<{
55
71
  id: z.ZodString;
56
72
  rule: z.ZodString;
@@ -58,11 +74,32 @@ export declare const profileInvariantSchema: z.ZodObject<{
58
74
  error: "error";
59
75
  warning: "warning";
60
76
  }>;
77
+ check: z.ZodOptional<z.ZodObject<{
78
+ kind: z.ZodEnum<{
79
+ "filename-pattern": "filename-pattern";
80
+ "file-contains": "file-contains";
81
+ "file-not-contains": "file-not-contains";
82
+ }>;
83
+ glob: z.ZodOptional<z.ZodString>;
84
+ pattern: z.ZodOptional<z.ZodString>;
85
+ negatedPattern: z.ZodOptional<z.ZodString>;
86
+ }, z.core.$strip>>;
61
87
  }, z.core.$strip>;
62
88
  export interface ProfileInvariant {
63
89
  id: string;
64
90
  rule: string;
65
91
  severity: "error" | "warning";
92
+ check?: ProfileInvariantCheck;
93
+ }
94
+ export declare const profileDevServerSchema: z.ZodObject<{
95
+ command: z.ZodString;
96
+ port: z.ZodOptional<z.ZodNumber>;
97
+ readinessTimeout: z.ZodOptional<z.ZodNumber>;
98
+ }, z.core.$strip>;
99
+ export interface ProfileDevServer {
100
+ command: string;
101
+ port?: number;
102
+ readinessTimeout?: number;
66
103
  }
67
104
  export declare const stackProfileDomainFieldsSchema: z.ZodObject<{
68
105
  domain: z.ZodOptional<z.ZodString>;
@@ -99,11 +136,26 @@ export declare const stackProfileDomainFieldsSchema: z.ZodObject<{
99
136
  error: "error";
100
137
  warning: "warning";
101
138
  }>;
139
+ check: z.ZodOptional<z.ZodObject<{
140
+ kind: z.ZodEnum<{
141
+ "filename-pattern": "filename-pattern";
142
+ "file-contains": "file-contains";
143
+ "file-not-contains": "file-not-contains";
144
+ }>;
145
+ glob: z.ZodOptional<z.ZodString>;
146
+ pattern: z.ZodOptional<z.ZodString>;
147
+ negatedPattern: z.ZodOptional<z.ZodString>;
148
+ }, z.core.$strip>>;
102
149
  }, z.core.$strip>>>;
103
150
  register: z.ZodOptional<z.ZodEnum<{
104
151
  business: "business";
105
152
  creative: "creative";
106
153
  }>>;
154
+ devServer: z.ZodOptional<z.ZodObject<{
155
+ command: z.ZodString;
156
+ port: z.ZodOptional<z.ZodNumber>;
157
+ readinessTimeout: z.ZodOptional<z.ZodNumber>;
158
+ }, z.core.$strip>>;
107
159
  }, z.core.$strip>;
108
160
  export interface StackProfileDomainFields {
109
161
  domain?: string;
@@ -112,5 +164,6 @@ export interface StackProfileDomainFields {
112
164
  workspaceTypes?: ProfileWorkspaceType[];
113
165
  invariants?: ProfileInvariant[];
114
166
  register?: "business" | "creative";
167
+ devServer?: ProfileDevServer;
115
168
  }
116
169
  //# sourceMappingURL=profile-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile-schema.d.ts","sourceRoot":"","sources":["../../../src/profiles/profile-schema.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,0BAA0B,6FAQ7B,CAAC;AAEX,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQvD,CAAC;AAMF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;iBAoBhC,CAAC;AAEH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH;AAMD,eAAO,MAAM,0BAA0B;;;;;;;;;iBASrC,CAAC;AAEH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,eAAO,MAAM,sBAAsB;;;;;;;iBAOjC,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAMD,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOzC,CAAC;AAEH,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACxC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CACpC"}
1
+ {"version":3,"file":"profile-schema.d.ts","sourceRoot":"","sources":["../../../src/profiles/profile-schema.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,0BAA0B,6FAQ7B,CAAC;AAEX,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQvD,CAAC;AAMF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;iBAoBhC,CAAC;AAEH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH;AAMD,eAAO,MAAM,0BAA0B;;;;;;;;;iBASrC,CAAC;AAEH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,eAAO,MAAM,2BAA2B;;;;;;;;;iBAKtC,CAAC;AAEH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,GAAG,eAAe,GAAG,mBAAmB,CAAC;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;iBAQjC,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B;AAMD,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQzC,CAAC;AAEH,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACxC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B"}
@@ -3,11 +3,13 @@
3
3
  <purpose>Domain-neutral profile schema extensions — optional fields that allow a stack profile to declare its domain model (terminology, artifacts, workspace types, invariants, register) without breaking backward compatibility.</purpose>
4
4
  <non-goals>
5
5
  <item>Do not import from @warpgogol/* — this module is portable.</item>
6
- <item>Do not define enforcement logic for invariants — that is deferred to follow-up RFCs.</item>
6
+ <item>Do not define enforcement logic for invariants — that lives in the invariant engine module.</item>
7
7
  </non-goals>
8
8
  </MODULE_CONTRACT>
9
9
  <CHANGE_SUMMARY>
10
10
  <item>RFC-0638: initial domain-neutral profile schema extensions with six optional fields.</item>
11
+ <item>RFC-0674: add profileDevServerSchema and devServer field for lifecycle commands.</item>
12
+ <item>RFC-0675: add profileInvariantCheckSchema and check field to profileInvariantSchema for enforcement.</item>
11
13
  </CHANGE_SUMMARY>
12
14
  */
13
15
  import { z } from "zod";
@@ -72,6 +74,12 @@ export const profileWorkspaceTypeSchema = z.object({
72
74
  // ---------------------------------------------------------------------------
73
75
  // Profile invariant schema
74
76
  // ---------------------------------------------------------------------------
77
+ export const profileInvariantCheckSchema = z.object({
78
+ kind: z.enum(["filename-pattern", "file-contains", "file-not-contains"]),
79
+ glob: z.string().optional(),
80
+ pattern: z.string().optional(),
81
+ negatedPattern: z.string().optional(),
82
+ });
75
83
  export const profileInvariantSchema = z.object({
76
84
  id: z
77
85
  .string()
@@ -79,6 +87,15 @@ export const profileInvariantSchema = z.object({
79
87
  .regex(/^[A-Z]+-\d+$/, "Invariant id must match ^[A-Z]+-\\d+$ (e.g. VIDEO-01)"),
80
88
  rule: z.string().min(1),
81
89
  severity: z.enum(["error", "warning"]),
90
+ check: profileInvariantCheckSchema.optional(),
91
+ });
92
+ // ---------------------------------------------------------------------------
93
+ // Profile dev server schema (RFC-0674)
94
+ // ---------------------------------------------------------------------------
95
+ export const profileDevServerSchema = z.object({
96
+ command: z.string().min(1),
97
+ port: z.number().int().positive().optional(),
98
+ readinessTimeout: z.number().int().positive().optional(),
82
99
  });
83
100
  // ---------------------------------------------------------------------------
84
101
  // Stack profile domain fields
@@ -90,5 +107,6 @@ export const stackProfileDomainFieldsSchema = z.object({
90
107
  workspaceTypes: z.array(profileWorkspaceTypeSchema).optional(),
91
108
  invariants: z.array(profileInvariantSchema).optional(),
92
109
  register: z.enum(["business", "creative"]).optional(),
110
+ devServer: profileDevServerSchema.optional(),
93
111
  });
94
112
  //# sourceMappingURL=profile-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile-schema.js","sourceRoot":"","sources":["../../../src/profiles/profile-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile-schema.js","sourceRoot":"","sources":["../../../src/profiles/profile-schema.ts"],"names":[],"mappings":"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"}
@@ -57,11 +57,26 @@ export declare const stackProfileSchema: z.ZodObject<{
57
57
  error: "error";
58
58
  warning: "warning";
59
59
  }>;
60
+ check: z.ZodOptional<z.ZodObject<{
61
+ kind: z.ZodEnum<{
62
+ "filename-pattern": "filename-pattern";
63
+ "file-contains": "file-contains";
64
+ "file-not-contains": "file-not-contains";
65
+ }>;
66
+ glob: z.ZodOptional<z.ZodString>;
67
+ pattern: z.ZodOptional<z.ZodString>;
68
+ negatedPattern: z.ZodOptional<z.ZodString>;
69
+ }, z.core.$strip>>;
60
70
  }, z.core.$strip>>>;
61
71
  register: z.ZodOptional<z.ZodEnum<{
62
72
  business: "business";
63
73
  creative: "creative";
64
74
  }>>;
75
+ devServer: z.ZodOptional<z.ZodObject<{
76
+ command: z.ZodString;
77
+ port: z.ZodOptional<z.ZodNumber>;
78
+ readinessTimeout: z.ZodOptional<z.ZodNumber>;
79
+ }, z.core.$strip>>;
65
80
  }, z.core.$strip>;
66
81
  export interface ProfileFile {
67
82
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"stack-profile.d.ts","sourceRoot":"","sources":["../../../src/profiles/stack-profile.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAkC,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAMpG,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoC7B,CAAC;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,wBAAwB;IAC5D,MAAM,EAAE,uBAAuB,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5B,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,KAAK,EAAE,WAAW,EAAE,CAAC;KACtB,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,WAAW,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAMD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAkBlE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAiBnE;AAMD,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,GAAG,IAAI,CAO9F"}
1
+ {"version":3,"file":"stack-profile.d.ts","sourceRoot":"","sources":["../../../src/profiles/stack-profile.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAkC,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAMpG,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsC7B,CAAC;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,wBAAwB;IAC5D,MAAM,EAAE,uBAAuB,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5B,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,KAAK,EAAE,WAAW,EAAE,CAAC;KACtB,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,WAAW,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAMD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAkBlE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAiBnE;AAMD,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,GAAG,IAAI,CAO9F"}
@@ -9,6 +9,7 @@
9
9
  <CHANGE_SUMMARY>
10
10
  <item>RFC-0392: initial stack profile module with zod schema, listStackProfiles, detectStack.</item>
11
11
  <item>RFC-0638: extended stackProfileSchema with optional domain-neutral fields (domain, terminology, artifacts, workspaceTypes, invariants, register).</item>
12
+ <item>RFC-0674: add devServer field to stackProfileSchema for lifecycle commands.</item>
12
13
  </CHANGE_SUMMARY>
13
14
  */
14
15
  import fs from "node:fs";
@@ -51,6 +52,8 @@ export const stackProfileSchema = z.object({
51
52
  workspaceTypes: stackProfileDomainFieldsSchema.shape.workspaceTypes,
52
53
  invariants: stackProfileDomainFieldsSchema.shape.invariants,
53
54
  register: stackProfileDomainFieldsSchema.shape.register,
55
+ // RFC-0674: Dev server declaration for lifecycle commands
56
+ devServer: stackProfileDomainFieldsSchema.shape.devServer,
54
57
  });
55
58
  // ---------------------------------------------------------------------------
56
59
  // Loader
@@ -1 +1 @@
1
- {"version":3,"file":"stack-profile.js","sourceRoot":"","sources":["../../../src/profiles/stack-profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stack-profile.js","sourceRoot":"","sources":["../../../src/profiles/stack-profile.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,113 +1,121 @@
1
1
  {
2
2
  "name": "@warpgogol/forge",
3
- "version": "0.9.0",
3
+ "version": "0.10.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": ["rfc", "adr", "governance", "skills", "ai-agent", "documentation", "framework"],
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.ts",
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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.ts"
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
- "main": "./dist/src/index.js",
148
- "types": "./dist/src/index.d.ts",
149
- "exports": {
150
- ".": {
151
- "types": "./dist/src/index.d.ts",
152
- "default": "./dist/src/index.js"
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:
@@ -44,12 +47,24 @@ invariants:
44
47
  - id: VIDEO-01
45
48
  rule: Composition filenames must use kebab-case (lowercase letters, digits, hyphens only)
46
49
  severity: error
50
+ check:
51
+ kind: filename-pattern
52
+ glob: "compositions/**/*.{html,tsx}"
53
+ pattern: "^[a-z0-9-]+\\.(html|tsx)$"
47
54
  - id: VIDEO-02
48
55
  rule: Scene durations must use contain mode by default to avoid unexpected cropping
49
56
  severity: warning
57
+ check:
58
+ kind: file-contains
59
+ glob: "compositions/**/*.html"
60
+ pattern: contain
50
61
  - id: VIDEO-03
51
62
  rule: All speech audio elements must have corresponding ef-captions elements for accessibility
52
63
  severity: error
64
+ check:
65
+ kind: file-contains
66
+ glob: "compositions/**/*.html"
67
+ pattern: ef-captions
53
68
  workspace:
54
69
  dirs:
55
70
  - 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
- ```sh
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
  ```