@warpgogol/forge 2.9.1 → 2.9.4

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 (126) hide show
  1. package/README.md +14 -8
  2. package/README.uk.md +14 -0
  3. package/dist/os/adr/handlers/implement-stamp.d.ts.map +1 -1
  4. package/dist/os/adr/handlers/implement-stamp.js +6 -0
  5. package/dist/os/adr/handlers/implement-stamp.js.map +1 -1
  6. package/dist/os/adr/handlers/validate.d.ts.map +1 -1
  7. package/dist/os/adr/handlers/validate.js +8 -0
  8. package/dist/os/adr/handlers/validate.js.map +1 -1
  9. package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +1 -1
  10. package/dist/os/compass/handlers/compass-audit-handler.js +22 -0
  11. package/dist/os/compass/handlers/compass-audit-handler.js.map +1 -1
  12. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +1 -1
  13. package/dist/os/compass/handlers/compass-change-summary-handler.js +6 -0
  14. package/dist/os/compass/handlers/compass-change-summary-handler.js.map +1 -1
  15. package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +1 -1
  16. package/dist/os/compass/handlers/compass-inventory-handler.js +83 -0
  17. package/dist/os/compass/handlers/compass-inventory-handler.js.map +1 -1
  18. package/dist/os/compass/handlers/compass-inventory.d.ts.map +1 -1
  19. package/dist/os/compass/handlers/compass-inventory.js +1 -0
  20. package/dist/os/compass/handlers/compass-inventory.js.map +1 -1
  21. package/dist/os/exploration/handlers/archive.d.ts.map +1 -1
  22. package/dist/os/exploration/handlers/archive.js +6 -0
  23. package/dist/os/exploration/handlers/archive.js.map +1 -1
  24. package/dist/os/exploration/handlers/list.d.ts.map +1 -1
  25. package/dist/os/exploration/handlers/list.js +8 -0
  26. package/dist/os/exploration/handlers/list.js.map +1 -1
  27. package/dist/os/exploration/handlers/show.d.ts.map +1 -1
  28. package/dist/os/exploration/handlers/show.js +6 -0
  29. package/dist/os/exploration/handlers/show.js.map +1 -1
  30. package/dist/os/program/handlers/complete.d.ts.map +1 -1
  31. package/dist/os/program/handlers/complete.js +18 -0
  32. package/dist/os/program/handlers/complete.js.map +1 -1
  33. package/dist/os/program/handlers/lease.js +6 -0
  34. package/dist/os/program/handlers/lease.js.map +1 -1
  35. package/dist/os/program/handlers/seal.d.ts.map +1 -1
  36. package/dist/os/program/handlers/seal.js +12 -0
  37. package/dist/os/program/handlers/seal.js.map +1 -1
  38. package/dist/os/program/handlers/validate.js +6 -0
  39. package/dist/os/program/handlers/validate.js.map +1 -1
  40. package/dist/os/rfc/acceptance.d.ts.map +1 -1
  41. package/dist/os/rfc/acceptance.js +8 -0
  42. package/dist/os/rfc/acceptance.js.map +1 -1
  43. package/dist/os/rfc/handlers/check.d.ts.map +1 -1
  44. package/dist/os/rfc/handlers/check.js +8 -0
  45. package/dist/os/rfc/handlers/check.js.map +1 -1
  46. package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -1
  47. package/dist/os/rfc/handlers/implement-stamp.js +6 -0
  48. package/dist/os/rfc/handlers/implement-stamp.js.map +1 -1
  49. package/dist/os/rfc/handlers/list-create.d.ts.map +1 -1
  50. package/dist/os/rfc/handlers/list-create.js +20 -0
  51. package/dist/os/rfc/handlers/list-create.js.map +1 -1
  52. package/dist/os/rfc/handlers/validate.d.ts.map +1 -1
  53. package/dist/os/rfc/handlers/validate.js +8 -0
  54. package/dist/os/rfc/handlers/validate.js.map +1 -1
  55. package/dist/os/session/handlers/validate.d.ts.map +1 -1
  56. package/dist/os/session/handlers/validate.js +8 -0
  57. package/dist/os/session/handlers/validate.js.map +1 -1
  58. package/dist/os/spec/live-spec-list.d.ts.map +1 -1
  59. package/dist/os/spec/live-spec-list.js +8 -0
  60. package/dist/os/spec/live-spec-list.js.map +1 -1
  61. package/dist/os/spec/live-spec-merge.js +2 -2
  62. package/dist/os/spec/live-spec-merge.js.map +1 -1
  63. package/dist/os/spec/live-spec-show.d.ts.map +1 -1
  64. package/dist/os/spec/live-spec-show.js +6 -0
  65. package/dist/os/spec/live-spec-show.js.map +1 -1
  66. package/dist/os/spec/spec-materialize.d.ts.map +1 -1
  67. package/dist/os/spec/spec-materialize.js +6 -0
  68. package/dist/os/spec/spec-materialize.js.map +1 -1
  69. package/dist/os/spec/spec-status.d.ts.map +1 -1
  70. package/dist/os/spec/spec-status.js +6 -0
  71. package/dist/os/spec/spec-status.js.map +1 -1
  72. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +1 -1
  73. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +8 -0
  74. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +1 -1
  75. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +1 -1
  76. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +8 -0
  77. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +1 -1
  78. package/dist/os/workflow/handlers.d.ts.map +1 -1
  79. package/dist/os/workflow/handlers.js +8 -0
  80. package/dist/os/workflow/handlers.js.map +1 -1
  81. package/os/adr/handlers/implement-stamp.ts +6 -0
  82. package/os/adr/handlers/validate.ts +8 -0
  83. package/os/compass/handlers/compass-audit-handler.ts +24 -0
  84. package/os/compass/handlers/compass-change-summary-handler.ts +6 -0
  85. package/os/compass/handlers/compass-game-extensions.test.ts +154 -0
  86. package/os/compass/handlers/compass-inventory-handler.ts +84 -0
  87. package/os/compass/handlers/compass-inventory.ts +1 -0
  88. package/os/exploration/handlers/archive.ts +6 -0
  89. package/os/exploration/handlers/list.ts +9 -0
  90. package/os/exploration/handlers/show.ts +6 -0
  91. package/os/program/handlers/complete.ts +18 -0
  92. package/os/program/handlers/lease.ts +6 -0
  93. package/os/program/handlers/seal.ts +12 -0
  94. package/os/program/handlers/validate.ts +6 -0
  95. package/os/rfc/acceptance.ts +9 -0
  96. package/os/rfc/handlers/check.ts +8 -0
  97. package/os/rfc/handlers/implement-stamp.ts +6 -0
  98. package/os/rfc/handlers/list-create.ts +21 -0
  99. package/os/rfc/handlers/validate.ts +8 -0
  100. package/os/session/handlers/validate.ts +8 -0
  101. package/os/spec/live-spec-list.ts +8 -0
  102. package/os/spec/live-spec-merge.ts +2 -2
  103. package/os/spec/live-spec-show.ts +6 -0
  104. package/os/spec/spec-materialize.ts +6 -0
  105. package/os/spec/spec-status.ts +6 -0
  106. package/os/werkstatt/handlers/werkstatt-lock-recover.ts +9 -0
  107. package/os/werkstatt/handlers/werkstatt-lock-status.ts +9 -0
  108. package/os/workflow/handlers.ts +9 -0
  109. package/package.json +1 -1
  110. package/profiles/godot-csharp.yaml +3 -0
  111. package/profiles/phaser-turborepo.yaml +3 -0
  112. package/skills/_shared/fo-pipeline-conventions.md +39 -0
  113. package/skills/_shared/fo-prerequisites.md +81 -0
  114. package/skills/fo/fo-idea-audit/AUDIT-AXES.md +66 -0
  115. package/skills/fo/fo-idea-audit/SKILL.md +2 -2
  116. package/skills/fo/fo-idea-enhance/SKILL.md +2 -2
  117. package/skills/fo/fo-idea-implement/ADR-FLOW.md +179 -0
  118. package/skills/fo/fo-idea-plan/SKILL.md +2 -0
  119. package/skills/fo/fo-review/AXES.md +70 -0
  120. package/skills/fo/fo-session-retro/learned-principles.md +15 -0
  121. package/skills/shared/windows-ai-tooling/.gitattributes.template +49 -0
  122. package/skills/shared/windows-ai-tooling/AGENTS_WINDOWS.md.template +42 -0
  123. package/skills/shared/writing-great-skills/GLOSSARY.md +201 -0
  124. package/src/tests/create.test.ts +30 -0
  125. package/src/tests/package-files.test.ts +5 -2
  126. package/src/tests/stack-profile.test.ts +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"werkstatt-lock-recover.js","sourceRoot":"","sources":["../../../../os/werkstatt/handlers/werkstatt-lock-recover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"werkstatt-lock-recover.js","sourceRoot":"","sources":["../../../../os/werkstatt/handlers/werkstatt-lock-recover.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"werkstatt-lock-status.d.ts","sourceRoot":"","sources":["../../../../os/werkstatt/handlers/werkstatt-lock-status.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC,CAAC;IACH,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC,CA+BtD"}
1
+ {"version":3,"file":"werkstatt-lock-status.d.ts","sourceRoot":"","sources":["../../../../os/werkstatt/handlers/werkstatt-lock-status.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC,CAAC;IACH,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC,CAwCtD"}
@@ -38,6 +38,14 @@ export async function runWerkstattLockStatus(_input, context) {
38
38
  staleCount,
39
39
  },
40
40
  summary: `[werkstatt.lock.status] ${locks.length} lock${locks.length === 1 ? "" : "s"}, ${staleCount} stale`,
41
+ nextSteps: staleCount > 0
42
+ ? [
43
+ {
44
+ action: `Recover stale locks: pnpm exec forge run werkstatt.lock.recover`,
45
+ kind: "optional",
46
+ },
47
+ ]
48
+ : undefined,
41
49
  };
42
50
  }
43
51
  //# sourceMappingURL=werkstatt-lock-status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"werkstatt-lock-status.js","sourceRoot":"","sources":["../../../../os/werkstatt/handlers/werkstatt-lock-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;EAaE;AAOF,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAkBzC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAyB,EACzB,OAA4B;IAE5B,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAEvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/C,MAAM,CAAC,IAAI,CACT,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,WAAW,EAAE,CACxF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAC;YACH,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,UAAU;SACX;QACD,OAAO,EAAE,2BAA2B,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,QAAQ;KAC7G,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"werkstatt-lock-status.js","sourceRoot":"","sources":["../../../../os/werkstatt/handlers/werkstatt-lock-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;EAaE;AAOF,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAkBzC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAyB,EACzB,OAA4B;IAE5B,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAEvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/C,MAAM,CAAC,IAAI,CACT,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,WAAW,EAAE,CACxF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAC;YACH,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,UAAU;SACX;QACD,OAAO,EAAE,2BAA2B,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,QAAQ;QAC5G,SAAS,EACP,UAAU,GAAG,CAAC;YACZ,CAAC,CAAC;gBACE;oBACE,MAAM,EAAE,iEAAiE;oBACzE,IAAI,EAAE,UAAU;iBACjB;aACF;YACH,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../os/workflow/handlers.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAKL,KAAK,kBAAkB,EAEvB,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAqKpB,wBAAsB,eAAe,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC,CAAC,CAQ3F;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC;IAAE,OAAO,EAAE,qBAAqB,CAAC;IAAC,SAAS,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC,CAAC,CAQjG;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CA+EjD"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../os/workflow/handlers.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAKL,KAAK,kBAAkB,EAEvB,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAqKpB,wBAAsB,eAAe,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC,CAAC,CAiB3F;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC;IAAE,OAAO,EAAE,qBAAqB,CAAC;IAAC,SAAS,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC,CAAC,CAQjG;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CA+EjD"}
@@ -168,6 +168,14 @@ export async function runWorkflowList(_input, context) {
168
168
  data: { command: "workflow.list", workflows: entries },
169
169
  exitCode: 0,
170
170
  summary: `workflow.list: ${entries.length} workflow file(s) found`,
171
+ nextSteps: entries.length === 0
172
+ ? [
173
+ {
174
+ action: `Create a workflow file in .devin/workflows/ or .windsurf/workflows/`,
175
+ kind: "optional",
176
+ },
177
+ ]
178
+ : undefined,
171
179
  };
172
180
  }
173
181
  export async function runWorkflowAmendList(_input, context) {
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../os/workflow/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../os/workflow/handlers.ts"],"names":[],"mappings":"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"}
@@ -301,6 +301,12 @@ export async function runAdrImplementStamp(
301
301
  },
302
302
  exitCode: 0,
303
303
  summary: `adr.implement.stamp: ${targetId} stamped as implemented`,
304
+ nextSteps: [
305
+ {
306
+ action: `Commit the stamp: pnpm exec forge run ecosystem.commit`,
307
+ kind: "optional",
308
+ },
309
+ ],
304
310
  };
305
311
  } finally {
306
312
  await releaseAdrLock(lockPath);
@@ -154,6 +154,14 @@ export async function runAdrValidate(
154
154
  summary: hasErrors
155
155
  ? `${violations.filter((v) => v.severity === "error").length} error(s) found`
156
156
  : `All ${filesToValidate.length} ADR(s) passed validation`,
157
+ nextSteps: hasErrors
158
+ ? [
159
+ {
160
+ action: `Fix the ${violations.filter((v) => v.severity === "error").length} error(s) above, then re-run: pnpm exec forge run adr.validate`,
161
+ kind: "required",
162
+ },
163
+ ]
164
+ : undefined,
157
165
  };
158
166
  }
159
167
 
@@ -186,6 +186,15 @@ export async function runCompassAuditPlan(
186
186
  data: { threshold, dueCount: items.length, items },
187
187
  exitCode: 0,
188
188
  summary: `[compass.audit.plan] ${items.length} files due for audit (threshold=${threshold})`,
189
+ nextSteps:
190
+ items.length > 0
191
+ ? [
192
+ {
193
+ action: `Record an audit: pnpm exec forge run compass.audit.record --file <path> --verdict <verdict> --revision <rev>`,
194
+ kind: "optional",
195
+ },
196
+ ]
197
+ : undefined,
189
198
  };
190
199
  }
191
200
 
@@ -251,6 +260,12 @@ export async function runCompassAuditRecord(
251
260
  data: { path: filePath, action: "recorded" },
252
261
  exitCode: 0,
253
262
  summary: `[compass.audit.record] ${filePath}: ${verdict} at revision ${revision}`,
263
+ nextSteps: [
264
+ {
265
+ action: `Validate audits: pnpm exec forge run compass.audit.validate`,
266
+ kind: "optional",
267
+ },
268
+ ],
254
269
  };
255
270
  }
256
271
 
@@ -378,5 +393,14 @@ export async function runCompassAuditValidate(
378
393
  data: { strict, dueCount, diagnostics },
379
394
  exitCode: hasErrors ? 1 : 0,
380
395
  summary: dueCount > 0 ? undefined : `[compass.audit.validate] OK (0 files overdue)`,
396
+ nextSteps:
397
+ dueCount > 0
398
+ ? [
399
+ {
400
+ action: `Fix the ${dueCount} overdue file(s) above, then re-run: pnpm exec forge run compass.audit.validate`,
401
+ kind: "required",
402
+ },
403
+ ]
404
+ : undefined,
381
405
  };
382
406
  }
@@ -278,5 +278,11 @@ export async function runCompassSummaryTrim(
278
278
  },
279
279
  exitCode: 0,
280
280
  summary: `[compass.summary.trim] files=${results.length}, removed=${results.reduce((sum, r) => sum + r.removed.length, 0)}`,
281
+ nextSteps: [
282
+ {
283
+ action: `Commit the trimmed headers: pnpm exec forge run ecosystem.commit`,
284
+ kind: "optional",
285
+ },
286
+ ],
281
287
  };
282
288
  }
@@ -0,0 +1,154 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>Unit tests for Compass game file extension discovery and comment-syntax validation.
4
+ Verifies that .cs, .tscn, .tres, .gd files are discovered by createCompassInventoryEntries
5
+ and that checkCommentSyntax correctly validates comment prefixes for each file type.</purpose>
6
+ <non-goals>
7
+ <item>Do not test compass.validate end-to-end — that is covered by existing tests.</item>
8
+ </non-goals>
9
+ </MODULE_CONTRACT>
10
+ <CHANGE_SUMMARY>
11
+ <item>Initial: test game extension discovery and comment-syntax validation for .cs, .gd, .tscn, .tres files.</item>
12
+ </CHANGE_SUMMARY>
13
+ */
14
+
15
+ import { test, expect, beforeEach, afterEach } from "vitest";
16
+ import { mkdtemp, rm, mkdir, writeFile } from "node:fs/promises";
17
+ import { tmpdir } from "node:os";
18
+ import { join } from "node:path";
19
+ import { createCompassInventoryEntries } from "./compass-inventory.ts";
20
+ import { runCompassValidation } from "./compass-inventory-handler.ts";
21
+ import type { ForgeCommandInput, ForgeRuntimeContext } from "../../../src/types.ts";
22
+
23
+ const silentLogger = {
24
+ section: () => {},
25
+ info: () => {},
26
+ warn: () => {},
27
+ error: () => {},
28
+ success: () => {},
29
+ };
30
+
31
+ function makeContext(workspaceRoot: string): ForgeRuntimeContext {
32
+ return {
33
+ workspaceRoot,
34
+ logger: silentLogger as never,
35
+ dryRun: false,
36
+ outputFormat: "json",
37
+ };
38
+ }
39
+
40
+ const emptyInput: ForgeCommandInput = { argv: [], flags: {} };
41
+
42
+ let tempDir: string;
43
+
44
+ beforeEach(async () => {
45
+ tempDir = await mkdtemp(join(tmpdir(), "compass-game-ext-"));
46
+ });
47
+
48
+ afterEach(async () => {
49
+ await rm(tempDir, { recursive: true, force: true });
50
+ });
51
+
52
+ test("createCompassInventoryEntries discovers .cs files", async () => {
53
+ await mkdir(join(tempDir, "packages", "my-game", "src"), { recursive: true });
54
+ await writeFile(
55
+ join(tempDir, "packages", "my-game", "src", "Player.cs"),
56
+ "namespace Game { class Player {} }\n",
57
+ "utf8",
58
+ );
59
+
60
+ const entries = await createCompassInventoryEntries(tempDir, emptyInput);
61
+ const csEntry = entries.find((e) => e.path.endsWith(".cs"));
62
+ expect(csEntry).toBeDefined();
63
+ expect(csEntry?.extension).toBe(".cs");
64
+ });
65
+
66
+ test("createCompassInventoryEntries discovers .gd files", async () => {
67
+ await mkdir(join(tempDir, "packages", "my-game", "src"), { recursive: true });
68
+ await writeFile(
69
+ join(tempDir, "packages", "my-game", "src", "Player.gd"),
70
+ "extends Node2D\n",
71
+ "utf8",
72
+ );
73
+
74
+ const entries = await createCompassInventoryEntries(tempDir, emptyInput);
75
+ const gdEntry = entries.find((e) => e.path.endsWith(".gd"));
76
+ expect(gdEntry).toBeDefined();
77
+ expect(gdEntry?.extension).toBe(".gd");
78
+ });
79
+
80
+ test("createCompassInventoryEntries discovers .tscn files", async () => {
81
+ await mkdir(join(tempDir, "packages", "my-game", "src"), { recursive: true });
82
+ await writeFile(
83
+ join(tempDir, "packages", "my-game", "src", "Scene.tscn"),
84
+ "[gd_scene]\n",
85
+ "utf8",
86
+ );
87
+
88
+ const entries = await createCompassInventoryEntries(tempDir, emptyInput);
89
+ const tscnEntry = entries.find((e) => e.path.endsWith(".tscn"));
90
+ expect(tscnEntry).toBeDefined();
91
+ expect(tscnEntry?.extension).toBe(".tscn");
92
+ });
93
+
94
+ test("createCompassInventoryEntries discovers .tres files", async () => {
95
+ await mkdir(join(tempDir, "packages", "my-game", "src"), { recursive: true });
96
+ await writeFile(
97
+ join(tempDir, "packages", "my-game", "src", "Material.tres"),
98
+ "[gd_resource]\n",
99
+ "utf8",
100
+ );
101
+
102
+ const entries = await createCompassInventoryEntries(tempDir, emptyInput);
103
+ const tresEntry = entries.find((e) => e.path.endsWith(".tres"));
104
+ expect(tresEntry).toBeDefined();
105
+ expect(tresEntry?.extension).toBe(".tres");
106
+ });
107
+
108
+ test("compass.validate emits COMPASS-SYNTAX-01 for .gd file with wrong comment syntax", async () => {
109
+ await mkdir(join(tempDir, "packages", "my-game", "src"), { recursive: true });
110
+ await writeFile(
111
+ join(tempDir, "packages", "my-game", "src", "Player.gd"),
112
+ `/* <MODULE_CONTRACT>
113
+ <purpose>Player movement and input handling logic for the game</purpose>
114
+ <non-goals>
115
+ <item>Do not handle combat logic here</item>
116
+ </non-goals>
117
+ </MODULE_CONTRACT>
118
+ <CHANGE_SUMMARY>
119
+ <item>Initial creation</item>
120
+ </CHANGE_SUMMARY>
121
+ */
122
+ extends Node2D
123
+ `,
124
+ "utf8",
125
+ );
126
+
127
+ const result = await runCompassValidation(emptyInput, makeContext(tempDir));
128
+ const syntaxDiag = result.data?.diagnostics.find((d) => d.ruleId === "COMPASS-SYNTAX-01");
129
+ expect(syntaxDiag).toBeDefined();
130
+ expect(syntaxDiag?.file).toContain(".gd");
131
+ });
132
+
133
+ test("compass.validate does not emit COMPASS-SYNTAX-01 for .gd file with correct # comment syntax", async () => {
134
+ await mkdir(join(tempDir, "packages", "my-game", "src"), { recursive: true });
135
+ await writeFile(
136
+ join(tempDir, "packages", "my-game", "src", "Player.gd"),
137
+ `# <MODULE_CONTRACT>
138
+ # <purpose>Player movement and input handling logic for the game</purpose>
139
+ # <non-goals>
140
+ # <item>Do not handle combat logic here</item>
141
+ # </non-goals>
142
+ # </MODULE_CONTRACT>
143
+ # <CHANGE_SUMMARY>
144
+ # <item>Initial creation</item>
145
+ # </CHANGE_SUMMARY>
146
+ extends Node2D
147
+ `,
148
+ "utf8",
149
+ );
150
+
151
+ const result = await runCompassValidation(emptyInput, makeContext(tempDir));
152
+ const syntaxDiag = result.data?.diagnostics.find((d) => d.ruleId === "COMPASS-SYNTAX-01");
153
+ expect(syntaxDiag).toBeUndefined();
154
+ });
@@ -13,6 +13,7 @@ Provides runCompassInventory (XML report generation) and runCompassValidation
13
13
  <item>RFC-0348: v2 two-block contract — XML output updated, compass.validate emits COMPASS-* diagnostics, summary uses standard-required-files.</item>
14
14
  <item>RFC-0350: added COMPASS-TODO-01 diagnostic for unfilled Compass TODO sentinels.</item>
15
15
  <item>RFC-0556: moved from @warpgogol/site-kernel-checks to @warpgogol/forge for autonomous mode.</item>
16
+ <item>Game extensions: added COMPASS-SYNTAX-01 diagnostic validating comment syntax per file type (.gd needs # prefix, .tscn/.tres need ; prefix, .ts/.cs need block comment).</item>
16
17
  </CHANGE_SUMMARY>
17
18
  */
18
19
 
@@ -29,6 +30,58 @@ import type {
29
30
 
30
31
  const INVENTORY_OUTPUT_PATH = "docs/compass-inventory.xml";
31
32
 
33
+ function getExpectedCommentSyntax(filePath: string): "block" | "hash" | "semicolon" | null {
34
+ if (filePath.endsWith(".gd")) return "hash";
35
+ if (filePath.endsWith(".tscn") || filePath.endsWith(".tres")) return "semicolon";
36
+ if (
37
+ filePath.endsWith(".ts") ||
38
+ filePath.endsWith(".tsx") ||
39
+ filePath.endsWith(".js") ||
40
+ filePath.endsWith(".mjs") ||
41
+ filePath.endsWith(".mts") ||
42
+ filePath.endsWith(".css") ||
43
+ filePath.endsWith(".cs")
44
+ )
45
+ return "block";
46
+ return null;
47
+ }
48
+
49
+ function checkCommentSyntax(source: string, filePath: string): string | null {
50
+ const syntax = getExpectedCommentSyntax(filePath);
51
+ if (!syntax) return null;
52
+
53
+ const hasModuleContract = source.includes("<MODULE_CONTRACT>");
54
+ if (!hasModuleContract) return null;
55
+
56
+ if (syntax === "block") {
57
+ const blockStart = source.indexOf("/*");
58
+ const blockEnd = source.lastIndexOf("*/");
59
+ const tagPos = source.indexOf("<MODULE_CONTRACT>");
60
+ if (blockStart === -1 || blockEnd === -1 || blockStart > tagPos || tagPos > blockEnd) {
61
+ return "MODULE_CONTRACT must be inside a /* ... */ block comment for this file type";
62
+ }
63
+ } else if (syntax === "hash") {
64
+ const lines = source.split(/\r?\n/);
65
+ for (const line of lines) {
66
+ if (line.includes("<MODULE_CONTRACT>")) {
67
+ if (!line.trimStart().startsWith("# ")) {
68
+ return "MODULE_CONTRACT lines must be prefixed with '# ' for .gd files";
69
+ }
70
+ }
71
+ }
72
+ } else if (syntax === "semicolon") {
73
+ const lines = source.split(/\r?\n/);
74
+ for (const line of lines) {
75
+ if (line.includes("<MODULE_CONTRACT>")) {
76
+ if (!line.trimStart().startsWith("; ")) {
77
+ return "MODULE_CONTRACT lines must be prefixed with '; ' for .tscn/.tres files";
78
+ }
79
+ }
80
+ }
81
+ }
82
+ return null;
83
+ }
84
+
32
85
  interface CompassInventorySummary {
33
86
  scannedFiles: number;
34
87
  authoredFiles: number;
@@ -169,6 +222,12 @@ export async function runCompassInventory(
169
222
  return {
170
223
  data: { entries: entries.length, outputPath: INVENTORY_OUTPUT_PATH, summary },
171
224
  summary: `[compass.inventory] previewed ${INVENTORY_OUTPUT_PATH}`,
225
+ nextSteps: [
226
+ {
227
+ action: `Write the inventory: pnpm exec forge run compass.inventory`,
228
+ kind: "optional",
229
+ },
230
+ ],
172
231
  };
173
232
  }
174
233
 
@@ -179,6 +238,19 @@ export async function runCompassInventory(
179
238
  return {
180
239
  data: { entries: entries.length, outputPath, summary },
181
240
  summary: `[compass.inventory] ${context.dryRun ? "previewed" : "wrote"} ${INVENTORY_OUTPUT_PATH}`,
241
+ nextSteps: context.dryRun
242
+ ? [
243
+ {
244
+ action: `Write for real: pnpm exec forge run compass.inventory`,
245
+ kind: "optional",
246
+ },
247
+ ]
248
+ : [
249
+ {
250
+ action: `Validate compass headers: pnpm exec forge run compass.validate`,
251
+ kind: "optional",
252
+ },
253
+ ],
182
254
  };
183
255
  }
184
256
 
@@ -275,6 +347,18 @@ export async function runCompassValidation(
275
347
  fix: `fix: replace the ${compassTodoLabel} sentinel with a real value`,
276
348
  });
277
349
  }
350
+
351
+ const syntaxError = checkCommentSyntax(source, entry.path);
352
+ if (syntaxError) {
353
+ context.logger.error(`[compass.validate] COMPASS-SYNTAX-01: ${entry.path}: ${syntaxError}`);
354
+ diagnostics.push({
355
+ ruleId: "COMPASS-SYNTAX-01",
356
+ severity: "error",
357
+ file: entry.path,
358
+ message: syntaxError,
359
+ fix: "fix: use the correct comment syntax for this file type (see comment-styles.md)",
360
+ });
361
+ }
278
362
  }
279
363
 
280
364
  const hasFailures = diagnostics.length > 0;
@@ -14,6 +14,7 @@ for Compass source-file inventory.</purpose>
14
14
  <item>Post-refactor hardening: exclude src/templates generation inputs from authored Compass requirements.</item>
15
15
  <item>Post-refactor hardening: detect nested packages/os workspaces before deriving Compass layer and workspace name.</item>
16
16
  <item>RFC-0556: moved canonical implementation from @warpgogol/site-kernel to @warpgogol/forge for autonomous mode.</item>
17
+ <item>Game extensions: added .cs, .tscn, .tres, .gd to SOURCE_EXTENSIONS; createCompassInventoryEntries now reads forge.yaml compass.fileExtensions at runtime and merges with hardcoded set.</item>
17
18
  </CHANGE_SUMMARY>
18
19
  */
19
20
 
@@ -155,5 +155,11 @@ export async function runExplorationArchive(
155
155
  related,
156
156
  },
157
157
  summary: `Archived exploration note: ${slug} (${previousStatus} → archived)`,
158
+ nextSteps: [
159
+ {
160
+ action: `Commit the archive: pnpm exec forge run ecosystem.commit`,
161
+ kind: "optional",
162
+ },
163
+ ],
158
164
  };
159
165
  }
@@ -73,5 +73,14 @@ export async function runExplorationList(
73
73
  explorations: entries,
74
74
  },
75
75
  summary: `${entries.length} exploration note(s) found`,
76
+ nextSteps:
77
+ entries.length === 0
78
+ ? [
79
+ {
80
+ action: `Create an exploration note: pnpm exec forge run exploration.show --id <slug>`,
81
+ kind: "optional",
82
+ },
83
+ ]
84
+ : undefined,
76
85
  };
77
86
  }
@@ -103,5 +103,11 @@ export async function runExplorationShow(
103
103
  note,
104
104
  },
105
105
  summary: `Exploration note: ${note.id}`,
106
+ nextSteps: [
107
+ {
108
+ action: `Archive the note when done: pnpm exec forge run exploration.archive --id ${note.id}`,
109
+ kind: "optional",
110
+ },
111
+ ],
106
112
  };
107
113
  }
@@ -237,6 +237,12 @@ export async function runComplete(
237
237
  },
238
238
  exitCode: 0,
239
239
  summary: `program.packet.complete: ${packetId} completed at ${head.slice(0, 8)}`,
240
+ nextSteps: [
241
+ {
242
+ action: `Seal the next packet: pnpm exec forge run program.packet.seal --packet <next-packet-id>`,
243
+ kind: "optional",
244
+ },
245
+ ],
240
246
  };
241
247
  }
242
248
 
@@ -390,6 +396,12 @@ async function bootstrapComplete(
390
396
  },
391
397
  exitCode: 0,
392
398
  summary: `program.packet.complete: ${packetId} bootstrap completed — program now executing`,
399
+ nextSteps: [
400
+ {
401
+ action: `Seal the first execution packet: pnpm exec forge run program.packet.seal --packet <first-packet-id>`,
402
+ kind: "optional",
403
+ },
404
+ ],
393
405
  };
394
406
  }
395
407
 
@@ -415,5 +427,11 @@ function completeFail(
415
427
  },
416
428
  exitCode: 1,
417
429
  summary: `program.packet.complete: ${packetId} failed with ${violations.length} violation(s)`,
430
+ nextSteps: [
431
+ {
432
+ action: `Fix the ${violations.length} violation(s) above, then re-run: pnpm exec forge run program.packet.complete --packet ${packetId}`,
433
+ kind: "required",
434
+ },
435
+ ],
418
436
  };
419
437
  }
@@ -199,6 +199,12 @@ async function leaseStart(
199
199
  },
200
200
  exitCode: 0,
201
201
  summary: `program.packet.lease: ${packetId} lease started for ${executor}`,
202
+ nextSteps: [
203
+ {
204
+ action: `Implement the packet, then complete: pnpm exec forge run program.packet.complete --packet ${packetId}`,
205
+ kind: "optional",
206
+ },
207
+ ],
202
208
  };
203
209
  }
204
210
 
@@ -224,6 +224,12 @@ export async function runSeal(
224
224
  },
225
225
  exitCode: 0,
226
226
  summary: `program.packet.seal: ${packetId} sealed on ${branch}@${head.slice(0, 8)}`,
227
+ nextSteps: [
228
+ {
229
+ action: `Start the lease: pnpm exec forge run program.packet.lease --packet ${packetId} --action start --executor <executor>`,
230
+ kind: "optional",
231
+ },
232
+ ],
227
233
  };
228
234
  }
229
235
 
@@ -243,6 +249,12 @@ function sealFail(
243
249
  },
244
250
  exitCode: 1,
245
251
  summary: `program.packet.seal: ${packetId} failed with ${violations.length} violation(s)`,
252
+ nextSteps: [
253
+ {
254
+ action: `Fix the ${violations.length} violation(s) above, then re-run: pnpm exec forge run program.packet.seal --packet ${packetId}`,
255
+ kind: "required",
256
+ },
257
+ ],
246
258
  };
247
259
  }
248
260
 
@@ -209,5 +209,11 @@ function failResult(
209
209
  },
210
210
  exitCode: 1,
211
211
  summary: `program.packet.validate: ${packetId} failed with ${violations.length} violation(s)`,
212
+ nextSteps: [
213
+ {
214
+ action: `Fix the ${violations.length} violation(s) above, then re-run: pnpm exec forge run program.packet.validate --packet ${packetId}`,
215
+ kind: "required",
216
+ },
217
+ ],
212
218
  };
213
219
  }
@@ -340,5 +340,14 @@ export async function runRfcAcceptanceRun(
340
340
  data: { command: "rfc.acceptance.run", status, diagnostics, results },
341
341
  exitCode: failedCount > 0 ? 1 : 0,
342
342
  summary: `rfc.acceptance.run: ${results.length} RFC(s), ${failedCount} failed probe(s)`,
343
+ nextSteps:
344
+ failedCount > 0
345
+ ? [
346
+ {
347
+ action: `Fix the ${failedCount} failed acceptance probe(s) above, then re-run: pnpm exec forge run rfc.acceptance.run`,
348
+ kind: "required",
349
+ },
350
+ ]
351
+ : undefined,
343
352
  };
344
353
  }
@@ -234,5 +234,13 @@ export async function runRfcCheck(
234
234
  summary: hasErrors
235
235
  ? `${violations.length} artifact violation(s) found across ${checkedRfcs} RFC(s)`
236
236
  : `All ${checkedRfcs} RFC(s) passed artifact check`,
237
+ nextSteps: hasErrors
238
+ ? [
239
+ {
240
+ action: `Fix the ${violations.length} artifact violation(s) above, then re-run: pnpm exec forge run rfc.check`,
241
+ kind: "required",
242
+ },
243
+ ]
244
+ : undefined,
237
245
  };
238
246
  }