@liangjie559567/ultrapower 5.5.12 → 5.5.13

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 (489) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/LICENSE +21 -21
  4. package/bridge/gyoshu_bridge.py +846 -846
  5. package/bridge/mcp-server.cjs +145 -38
  6. package/commands/wizard.md +5 -0
  7. package/dist/agents/__tests__/agent-wrapper.test.d.ts +2 -0
  8. package/dist/agents/__tests__/agent-wrapper.test.d.ts.map +1 -0
  9. package/dist/agents/__tests__/agent-wrapper.test.js +37 -0
  10. package/dist/agents/__tests__/agent-wrapper.test.js.map +1 -0
  11. package/dist/agents/__tests__/timeout-config.test.d.ts +2 -0
  12. package/dist/agents/__tests__/timeout-config.test.d.ts.map +1 -0
  13. package/dist/agents/__tests__/timeout-config.test.js +35 -0
  14. package/dist/agents/__tests__/timeout-config.test.js.map +1 -0
  15. package/dist/agents/__tests__/timeout-manager.test.d.ts +2 -0
  16. package/dist/agents/__tests__/timeout-manager.test.d.ts.map +1 -0
  17. package/dist/agents/__tests__/timeout-manager.test.js +37 -0
  18. package/dist/agents/__tests__/timeout-manager.test.js.map +1 -0
  19. package/dist/agents/agent-wrapper.d.ts +22 -0
  20. package/dist/agents/agent-wrapper.d.ts.map +1 -0
  21. package/dist/agents/agent-wrapper.js +51 -0
  22. package/dist/agents/agent-wrapper.js.map +1 -0
  23. package/dist/agents/coordinator-deprecated.d.ts +18 -0
  24. package/dist/agents/coordinator-deprecated.d.ts.map +1 -0
  25. package/dist/agents/coordinator-deprecated.js +38 -0
  26. package/dist/agents/coordinator-deprecated.js.map +1 -0
  27. package/dist/agents/index.d.ts +3 -0
  28. package/dist/agents/index.d.ts.map +1 -1
  29. package/dist/agents/index.js +4 -0
  30. package/dist/agents/index.js.map +1 -1
  31. package/dist/agents/timeout-config.d.ts +19 -0
  32. package/dist/agents/timeout-config.d.ts.map +1 -0
  33. package/dist/agents/timeout-config.js +57 -0
  34. package/dist/agents/timeout-config.js.map +1 -0
  35. package/dist/agents/timeout-manager.d.ts +30 -0
  36. package/dist/agents/timeout-manager.d.ts.map +1 -0
  37. package/dist/agents/timeout-manager.js +47 -0
  38. package/dist/agents/timeout-manager.js.map +1 -0
  39. package/dist/analytics/analytics-summary.d.ts.map +1 -1
  40. package/dist/analytics/analytics-summary.js +7 -1
  41. package/dist/analytics/analytics-summary.js.map +1 -1
  42. package/dist/analytics/metrics-collector.d.ts.map +1 -1
  43. package/dist/analytics/metrics-collector.js +9 -1
  44. package/dist/analytics/metrics-collector.js.map +1 -1
  45. package/dist/analytics/query-engine.d.ts.map +1 -1
  46. package/dist/analytics/query-engine.js +21 -3
  47. package/dist/analytics/query-engine.js.map +1 -1
  48. package/dist/analytics/token-tracker.js +3 -3
  49. package/dist/analytics/token-tracker.js.map +1 -1
  50. package/dist/analytics/transcript-scanner.d.ts.map +1 -1
  51. package/dist/analytics/transcript-scanner.js +1 -0
  52. package/dist/analytics/transcript-scanner.js.map +1 -1
  53. package/dist/audit/logger.d.ts +28 -0
  54. package/dist/audit/logger.d.ts.map +1 -0
  55. package/dist/audit/logger.js +78 -0
  56. package/dist/audit/logger.js.map +1 -0
  57. package/dist/audit/verify-cli.d.ts +2 -0
  58. package/dist/audit/verify-cli.d.ts.map +1 -0
  59. package/dist/audit/verify-cli.js +10 -0
  60. package/dist/audit/verify-cli.js.map +1 -0
  61. package/dist/core/hud-config.d.ts +19 -0
  62. package/dist/core/hud-config.d.ts.map +1 -0
  63. package/dist/core/hud-config.js +6 -0
  64. package/dist/core/hud-config.js.map +1 -0
  65. package/dist/core/job-types.d.ts +22 -0
  66. package/dist/core/job-types.d.ts.map +1 -0
  67. package/dist/core/job-types.js +6 -0
  68. package/dist/core/job-types.js.map +1 -0
  69. package/dist/features/diagnostics/error-matcher.d.ts +12 -0
  70. package/dist/features/diagnostics/error-matcher.d.ts.map +1 -0
  71. package/dist/features/diagnostics/error-matcher.js +41 -0
  72. package/dist/features/diagnostics/error-matcher.js.map +1 -0
  73. package/dist/features/diagnostics/index.d.ts +3 -0
  74. package/dist/features/diagnostics/index.d.ts.map +1 -0
  75. package/dist/features/diagnostics/index.js +3 -0
  76. package/dist/features/diagnostics/index.js.map +1 -0
  77. package/dist/features/diagnostics/solution-suggester.d.ts +12 -0
  78. package/dist/features/diagnostics/solution-suggester.d.ts.map +1 -0
  79. package/dist/features/diagnostics/solution-suggester.js +46 -0
  80. package/dist/features/diagnostics/solution-suggester.js.map +1 -0
  81. package/dist/features/diagnostics/types.d.ts +25 -0
  82. package/dist/features/diagnostics/types.d.ts.map +1 -0
  83. package/dist/features/diagnostics/types.js +5 -0
  84. package/dist/features/diagnostics/types.js.map +1 -0
  85. package/dist/features/state-manager/__tests__/cache.test.js +17 -17
  86. package/dist/features/state-manager/__tests__/cache.test.js.map +1 -1
  87. package/dist/features/state-manager/__tests__/encryption-performance.test.d.ts +2 -0
  88. package/dist/features/state-manager/__tests__/encryption-performance.test.d.ts.map +1 -0
  89. package/dist/features/state-manager/__tests__/encryption-performance.test.js +42 -0
  90. package/dist/features/state-manager/__tests__/encryption-performance.test.js.map +1 -0
  91. package/dist/features/state-manager/__tests__/encryption.test.d.ts +2 -0
  92. package/dist/features/state-manager/__tests__/encryption.test.d.ts.map +1 -0
  93. package/dist/features/state-manager/__tests__/encryption.test.js +68 -0
  94. package/dist/features/state-manager/__tests__/encryption.test.js.map +1 -0
  95. package/dist/features/state-manager/encryption.d.ts +24 -0
  96. package/dist/features/state-manager/encryption.d.ts.map +1 -0
  97. package/dist/features/state-manager/encryption.js +86 -0
  98. package/dist/features/state-manager/encryption.js.map +1 -0
  99. package/dist/features/state-manager/index.d.ts +4 -0
  100. package/dist/features/state-manager/index.d.ts.map +1 -1
  101. package/dist/features/state-manager/index.js +94 -6
  102. package/dist/features/state-manager/index.js.map +1 -1
  103. package/dist/features/state-manager/tiered-writer.d.ts +44 -0
  104. package/dist/features/state-manager/tiered-writer.d.ts.map +1 -0
  105. package/dist/features/state-manager/tiered-writer.js +76 -0
  106. package/dist/features/state-manager/tiered-writer.js.map +1 -0
  107. package/dist/features/state-manager/wal.d.ts +21 -0
  108. package/dist/features/state-manager/wal.d.ts.map +1 -0
  109. package/dist/features/state-manager/wal.js +75 -0
  110. package/dist/features/state-manager/wal.js.map +1 -0
  111. package/dist/features/task-templates/index.d.ts +13 -0
  112. package/dist/features/task-templates/index.d.ts.map +1 -0
  113. package/dist/features/task-templates/index.js +31 -0
  114. package/dist/features/task-templates/index.js.map +1 -0
  115. package/dist/features/task-templates/wizard-integration.d.ts +15 -0
  116. package/dist/features/task-templates/wizard-integration.d.ts.map +1 -0
  117. package/dist/features/task-templates/wizard-integration.js +27 -0
  118. package/dist/features/task-templates/wizard-integration.js.map +1 -0
  119. package/dist/features/wizard/__tests__/engine.test.d.ts +2 -0
  120. package/dist/features/wizard/__tests__/engine.test.d.ts.map +1 -0
  121. package/dist/features/wizard/__tests__/engine.test.js +78 -0
  122. package/dist/features/wizard/__tests__/engine.test.js.map +1 -0
  123. package/dist/features/wizard/__tests__/recommendation-engine.test.d.ts +2 -0
  124. package/dist/features/wizard/__tests__/recommendation-engine.test.d.ts.map +1 -0
  125. package/dist/features/wizard/__tests__/recommendation-engine.test.js +43 -0
  126. package/dist/features/wizard/__tests__/recommendation-engine.test.js.map +1 -0
  127. package/dist/features/wizard/engine.d.ts +15 -0
  128. package/dist/features/wizard/engine.d.ts.map +1 -0
  129. package/dist/features/wizard/engine.js +74 -0
  130. package/dist/features/wizard/engine.js.map +1 -0
  131. package/dist/features/wizard/index.d.ts +8 -0
  132. package/dist/features/wizard/index.d.ts.map +1 -0
  133. package/dist/features/wizard/index.js +7 -0
  134. package/dist/features/wizard/index.js.map +1 -0
  135. package/dist/features/wizard/questions.d.ts +6 -0
  136. package/dist/features/wizard/questions.d.ts.map +1 -0
  137. package/dist/features/wizard/questions.js +64 -0
  138. package/dist/features/wizard/questions.js.map +1 -0
  139. package/dist/features/wizard/recommendation-engine.d.ts +6 -0
  140. package/dist/features/wizard/recommendation-engine.d.ts.map +1 -0
  141. package/dist/features/wizard/recommendation-engine.js +33 -0
  142. package/dist/features/wizard/recommendation-engine.js.map +1 -0
  143. package/dist/features/wizard/types.d.ts +23 -0
  144. package/dist/features/wizard/types.d.ts.map +1 -0
  145. package/dist/features/wizard/types.js +5 -0
  146. package/dist/features/wizard/types.js.map +1 -0
  147. package/dist/features/workflow-recommender/context-analyzer.d.ts +6 -0
  148. package/dist/features/workflow-recommender/context-analyzer.d.ts.map +1 -0
  149. package/dist/features/workflow-recommender/context-analyzer.js +20 -0
  150. package/dist/features/workflow-recommender/context-analyzer.js.map +1 -0
  151. package/dist/features/workflow-recommender/index.d.ts +8 -0
  152. package/dist/features/workflow-recommender/index.d.ts.map +1 -0
  153. package/dist/features/workflow-recommender/index.js +7 -0
  154. package/dist/features/workflow-recommender/index.js.map +1 -0
  155. package/dist/features/workflow-recommender/intent-classifier.d.ts +6 -0
  156. package/dist/features/workflow-recommender/intent-classifier.d.ts.map +1 -0
  157. package/dist/features/workflow-recommender/intent-classifier.js +24 -0
  158. package/dist/features/workflow-recommender/intent-classifier.js.map +1 -0
  159. package/dist/features/workflow-recommender/recommendation-engine.d.ts +6 -0
  160. package/dist/features/workflow-recommender/recommendation-engine.d.ts.map +1 -0
  161. package/dist/features/workflow-recommender/recommendation-engine.js +110 -0
  162. package/dist/features/workflow-recommender/recommendation-engine.js.map +1 -0
  163. package/dist/features/workflow-recommender/types.d.ts +20 -0
  164. package/dist/features/workflow-recommender/types.d.ts.map +1 -0
  165. package/dist/features/workflow-recommender/types.js +5 -0
  166. package/dist/features/workflow-recommender/types.js.map +1 -0
  167. package/dist/hooks/__tests__/bridge-normalize.test.d.ts +2 -0
  168. package/dist/hooks/__tests__/bridge-normalize.test.d.ts.map +1 -0
  169. package/dist/hooks/__tests__/bridge-normalize.test.js +90 -0
  170. package/dist/hooks/__tests__/bridge-normalize.test.js.map +1 -0
  171. package/dist/hooks/__tests__/bridge-security.test.js +23 -41
  172. package/dist/hooks/__tests__/bridge-security.test.js.map +1 -1
  173. package/dist/hooks/auto-slash-command/__tests__/detector.test.d.ts +2 -0
  174. package/dist/hooks/auto-slash-command/__tests__/detector.test.d.ts.map +1 -0
  175. package/dist/hooks/auto-slash-command/__tests__/detector.test.js +70 -0
  176. package/dist/hooks/auto-slash-command/__tests__/detector.test.js.map +1 -0
  177. package/dist/hooks/auto-slash-command/__tests__/executor.test.d.ts +2 -0
  178. package/dist/hooks/auto-slash-command/__tests__/executor.test.d.ts.map +1 -0
  179. package/dist/hooks/auto-slash-command/__tests__/executor.test.js +55 -0
  180. package/dist/hooks/auto-slash-command/__tests__/executor.test.js.map +1 -0
  181. package/dist/hooks/auto-slash-command/__tests__/index.test.d.ts +2 -0
  182. package/dist/hooks/auto-slash-command/__tests__/index.test.d.ts.map +1 -0
  183. package/dist/hooks/auto-slash-command/__tests__/index.test.js +50 -0
  184. package/dist/hooks/auto-slash-command/__tests__/index.test.js.map +1 -0
  185. package/dist/hooks/autopilot/__tests__/prompts.test.js +19 -1
  186. package/dist/hooks/autopilot/__tests__/prompts.test.js.map +1 -1
  187. package/dist/hooks/autopilot/enforcement.d.ts +1 -1
  188. package/dist/hooks/autopilot/enforcement.d.ts.map +1 -1
  189. package/dist/hooks/autopilot/enforcement.js +1 -1
  190. package/dist/hooks/autopilot/enforcement.js.map +1 -1
  191. package/dist/hooks/bridge-normalize.d.ts +43 -3
  192. package/dist/hooks/bridge-normalize.d.ts.map +1 -1
  193. package/dist/hooks/bridge-normalize.js +110 -15
  194. package/dist/hooks/bridge-normalize.js.map +1 -1
  195. package/dist/hooks/bridge-types.d.ts +48 -0
  196. package/dist/hooks/bridge-types.d.ts.map +1 -0
  197. package/dist/hooks/bridge-types.js +6 -0
  198. package/dist/hooks/bridge-types.js.map +1 -0
  199. package/dist/hooks/bridge.d.ts +1 -43
  200. package/dist/hooks/bridge.d.ts.map +1 -1
  201. package/dist/hooks/bridge.js +18 -2
  202. package/dist/hooks/bridge.js.map +1 -1
  203. package/dist/hooks/dependency-analyzer.d.ts +32 -0
  204. package/dist/hooks/dependency-analyzer.d.ts.map +1 -0
  205. package/dist/hooks/dependency-analyzer.js +199 -0
  206. package/dist/hooks/dependency-analyzer.js.map +1 -0
  207. package/dist/hooks/index.d.ts +2 -1
  208. package/dist/hooks/index.d.ts.map +1 -1
  209. package/dist/hooks/index.js.map +1 -1
  210. package/dist/hooks/learner/__tests__/detector.test.d.ts +2 -0
  211. package/dist/hooks/learner/__tests__/detector.test.d.ts.map +1 -0
  212. package/dist/hooks/learner/__tests__/detector.test.js +170 -0
  213. package/dist/hooks/learner/__tests__/detector.test.js.map +1 -0
  214. package/dist/hooks/learner/__tests__/index.test.d.ts +2 -0
  215. package/dist/hooks/learner/__tests__/index.test.d.ts.map +1 -0
  216. package/dist/hooks/learner/__tests__/index.test.js +48 -0
  217. package/dist/hooks/learner/__tests__/index.test.js.map +1 -0
  218. package/dist/hooks/learner/__tests__/matcher.test.d.ts +2 -0
  219. package/dist/hooks/learner/__tests__/matcher.test.d.ts.map +1 -0
  220. package/dist/hooks/learner/__tests__/matcher.test.js +114 -0
  221. package/dist/hooks/learner/__tests__/matcher.test.js.map +1 -0
  222. package/dist/hooks/learner/__tests__/promotion.test.d.ts +2 -0
  223. package/dist/hooks/learner/__tests__/promotion.test.d.ts.map +1 -0
  224. package/dist/hooks/learner/__tests__/promotion.test.js +146 -0
  225. package/dist/hooks/learner/__tests__/promotion.test.js.map +1 -0
  226. package/dist/hooks/learner/__tests__/validator.test.d.ts +2 -0
  227. package/dist/hooks/learner/__tests__/validator.test.d.ts.map +1 -0
  228. package/dist/hooks/learner/__tests__/validator.test.js +123 -0
  229. package/dist/hooks/learner/__tests__/validator.test.js.map +1 -0
  230. package/dist/hooks/learner/__tests__/writer.test.d.ts +2 -0
  231. package/dist/hooks/learner/__tests__/writer.test.d.ts.map +1 -0
  232. package/dist/hooks/learner/__tests__/writer.test.js +141 -0
  233. package/dist/hooks/learner/__tests__/writer.test.js.map +1 -0
  234. package/dist/hooks/learner/detection-hook.js +2 -2
  235. package/dist/hooks/learner/detection-hook.js.map +1 -1
  236. package/dist/hooks/parallel-executor.d.ts +24 -0
  237. package/dist/hooks/parallel-executor.d.ts.map +1 -0
  238. package/dist/hooks/parallel-executor.js +82 -0
  239. package/dist/hooks/parallel-executor.js.map +1 -0
  240. package/dist/hooks/persistent-mode/index.d.ts +2 -21
  241. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  242. package/dist/hooks/persistent-mode/index.js +4 -85
  243. package/dist/hooks/persistent-mode/index.js.map +1 -1
  244. package/dist/hooks/persistent-mode/tool-error.d.ts +15 -0
  245. package/dist/hooks/persistent-mode/tool-error.d.ts.map +1 -0
  246. package/dist/hooks/persistent-mode/tool-error.js +80 -0
  247. package/dist/hooks/persistent-mode/tool-error.js.map +1 -0
  248. package/dist/hooks/pre-compact/index.d.ts.map +1 -1
  249. package/dist/hooks/pre-compact/index.js +0 -1
  250. package/dist/hooks/pre-compact/index.js.map +1 -1
  251. package/dist/hooks/project-memory/learner.d.ts +13 -1
  252. package/dist/hooks/project-memory/learner.d.ts.map +1 -1
  253. package/dist/hooks/project-memory/learner.js +24 -12
  254. package/dist/hooks/project-memory/learner.js.map +1 -1
  255. package/dist/hooks/race-detector.d.ts +51 -0
  256. package/dist/hooks/race-detector.d.ts.map +1 -0
  257. package/dist/hooks/race-detector.js +121 -0
  258. package/dist/hooks/race-detector.js.map +1 -0
  259. package/dist/hooks/ralph/__tests__/loop.test.d.ts +2 -0
  260. package/dist/hooks/ralph/__tests__/loop.test.d.ts.map +1 -0
  261. package/dist/hooks/ralph/__tests__/loop.test.js +268 -0
  262. package/dist/hooks/ralph/__tests__/loop.test.js.map +1 -0
  263. package/dist/hooks/ralph/__tests__/prd.test.d.ts +2 -0
  264. package/dist/hooks/ralph/__tests__/prd.test.d.ts.map +1 -0
  265. package/dist/hooks/ralph/__tests__/prd.test.js +197 -0
  266. package/dist/hooks/ralph/__tests__/prd.test.js.map +1 -0
  267. package/dist/hooks/ralph/__tests__/progress.test.d.ts +2 -0
  268. package/dist/hooks/ralph/__tests__/progress.test.d.ts.map +1 -0
  269. package/dist/hooks/ralph/__tests__/progress.test.js +120 -0
  270. package/dist/hooks/ralph/__tests__/progress.test.js.map +1 -0
  271. package/dist/hooks/ralph/__tests__/verifier.test.d.ts +2 -0
  272. package/dist/hooks/ralph/__tests__/verifier.test.d.ts.map +1 -0
  273. package/dist/hooks/ralph/__tests__/verifier.test.js +75 -0
  274. package/dist/hooks/ralph/__tests__/verifier.test.js.map +1 -0
  275. package/dist/hooks/recovery/__tests__/context-window.test.d.ts +2 -0
  276. package/dist/hooks/recovery/__tests__/context-window.test.d.ts.map +1 -0
  277. package/dist/hooks/recovery/__tests__/context-window.test.js +131 -0
  278. package/dist/hooks/recovery/__tests__/context-window.test.js.map +1 -0
  279. package/dist/hooks/recovery/__tests__/edit-error.test.d.ts +2 -0
  280. package/dist/hooks/recovery/__tests__/edit-error.test.d.ts.map +1 -0
  281. package/dist/hooks/recovery/__tests__/edit-error.test.js +88 -0
  282. package/dist/hooks/recovery/__tests__/edit-error.test.js.map +1 -0
  283. package/dist/hooks/recovery/__tests__/index.test.d.ts +2 -0
  284. package/dist/hooks/recovery/__tests__/index.test.d.ts.map +1 -0
  285. package/dist/hooks/recovery/__tests__/index.test.js +270 -0
  286. package/dist/hooks/recovery/__tests__/index.test.js.map +1 -0
  287. package/dist/hooks/recovery/__tests__/session-recovery.test.d.ts +2 -0
  288. package/dist/hooks/recovery/__tests__/session-recovery.test.d.ts.map +1 -0
  289. package/dist/hooks/recovery/__tests__/session-recovery.test.js +129 -0
  290. package/dist/hooks/recovery/__tests__/session-recovery.test.js.map +1 -0
  291. package/dist/hooks/recovery/__tests__/storage.test.d.ts +2 -0
  292. package/dist/hooks/recovery/__tests__/storage.test.d.ts.map +1 -0
  293. package/dist/hooks/recovery/__tests__/storage.test.js +549 -0
  294. package/dist/hooks/recovery/__tests__/storage.test.js.map +1 -0
  295. package/dist/hooks/rules-injector/__tests__/finder.test.d.ts +2 -0
  296. package/dist/hooks/rules-injector/__tests__/finder.test.d.ts.map +1 -0
  297. package/dist/hooks/rules-injector/__tests__/finder.test.js +68 -0
  298. package/dist/hooks/rules-injector/__tests__/finder.test.js.map +1 -0
  299. package/dist/hooks/rules-injector/__tests__/index.test.d.ts +2 -0
  300. package/dist/hooks/rules-injector/__tests__/index.test.d.ts.map +1 -0
  301. package/dist/hooks/rules-injector/__tests__/index.test.js +58 -0
  302. package/dist/hooks/rules-injector/__tests__/index.test.js.map +1 -0
  303. package/dist/hooks/rules-injector/__tests__/matcher.test.d.ts +2 -0
  304. package/dist/hooks/rules-injector/__tests__/matcher.test.d.ts.map +1 -0
  305. package/dist/hooks/rules-injector/__tests__/matcher.test.js +86 -0
  306. package/dist/hooks/rules-injector/__tests__/matcher.test.js.map +1 -0
  307. package/dist/hooks/rules-injector/__tests__/parser.test.d.ts +2 -0
  308. package/dist/hooks/rules-injector/__tests__/parser.test.d.ts.map +1 -0
  309. package/dist/hooks/rules-injector/__tests__/parser.test.js +86 -0
  310. package/dist/hooks/rules-injector/__tests__/parser.test.js.map +1 -0
  311. package/dist/hooks/session-end/__tests__/index.test.d.ts +2 -0
  312. package/dist/hooks/session-end/__tests__/index.test.d.ts.map +1 -0
  313. package/dist/hooks/session-end/__tests__/index.test.js +77 -0
  314. package/dist/hooks/session-end/__tests__/index.test.js.map +1 -0
  315. package/dist/hooks/session-end/callbacks.d.ts +1 -1
  316. package/dist/hooks/session-end/index.d.ts +2 -21
  317. package/dist/hooks/session-end/index.d.ts.map +1 -1
  318. package/dist/hooks/session-end/index.js.map +1 -1
  319. package/dist/hooks/session-end/types.d.ts +26 -0
  320. package/dist/hooks/session-end/types.d.ts.map +1 -0
  321. package/dist/hooks/session-end/types.js +6 -0
  322. package/dist/hooks/session-end/types.js.map +1 -0
  323. package/dist/hooks/setup/__tests__/index.test.d.ts +2 -0
  324. package/dist/hooks/setup/__tests__/index.test.d.ts.map +1 -0
  325. package/dist/hooks/setup/__tests__/index.test.js +68 -0
  326. package/dist/hooks/setup/__tests__/index.test.js.map +1 -0
  327. package/dist/hooks/team-pipeline/__tests__/state.test.d.ts +2 -0
  328. package/dist/hooks/team-pipeline/__tests__/state.test.d.ts.map +1 -0
  329. package/dist/hooks/team-pipeline/__tests__/state.test.js +94 -0
  330. package/dist/hooks/team-pipeline/__tests__/state.test.js.map +1 -0
  331. package/dist/hud/elements/autopilot.d.ts +1 -1
  332. package/dist/hud/elements/autopilot.d.ts.map +1 -1
  333. package/dist/hud/state.d.ts.map +1 -1
  334. package/dist/hud/state.js +69 -1
  335. package/dist/hud/state.js.map +1 -1
  336. package/dist/hud/types.d.ts +2 -15
  337. package/dist/hud/types.d.ts.map +1 -1
  338. package/dist/hud/types.js.map +1 -1
  339. package/dist/lib/__tests__/validateMode.test.d.ts +2 -0
  340. package/dist/lib/__tests__/validateMode.test.d.ts.map +1 -0
  341. package/dist/lib/__tests__/validateMode.test.js +61 -0
  342. package/dist/lib/__tests__/validateMode.test.js.map +1 -0
  343. package/dist/lib/path-validator.d.ts +25 -0
  344. package/dist/lib/path-validator.d.ts.map +1 -0
  345. package/dist/lib/path-validator.js +81 -0
  346. package/dist/lib/path-validator.js.map +1 -0
  347. package/dist/lib/validateMode.d.ts +3 -0
  348. package/dist/lib/validateMode.d.ts.map +1 -1
  349. package/dist/lib/validateMode.js +28 -2
  350. package/dist/lib/validateMode.js.map +1 -1
  351. package/dist/mcp/__tests__/codex-core.test.d.ts +2 -0
  352. package/dist/mcp/__tests__/codex-core.test.d.ts.map +1 -0
  353. package/dist/mcp/__tests__/codex-core.test.js +143 -0
  354. package/dist/mcp/__tests__/codex-core.test.js.map +1 -0
  355. package/dist/mcp/__tests__/gemini-core.test.d.ts +2 -0
  356. package/dist/mcp/__tests__/gemini-core.test.d.ts.map +1 -0
  357. package/dist/mcp/__tests__/gemini-core.test.js +53 -0
  358. package/dist/mcp/__tests__/gemini-core.test.js.map +1 -0
  359. package/dist/mcp/__tests__/job-state-db-deprecation.test.js +48 -1
  360. package/dist/mcp/__tests__/job-state-db-deprecation.test.js.map +1 -1
  361. package/dist/mcp/__tests__/omc-tools-server.test.d.ts +2 -0
  362. package/dist/mcp/__tests__/omc-tools-server.test.d.ts.map +1 -0
  363. package/dist/mcp/__tests__/omc-tools-server.test.js +108 -0
  364. package/dist/mcp/__tests__/omc-tools-server.test.js.map +1 -0
  365. package/dist/mcp/job-state-db.d.ts +1 -1
  366. package/dist/mcp/job-state-db.d.ts.map +1 -1
  367. package/dist/mcp/prompt-persistence.d.ts +2 -17
  368. package/dist/mcp/prompt-persistence.d.ts.map +1 -1
  369. package/dist/mcp/prompt-persistence.js.map +1 -1
  370. package/dist/team/__tests__/deadlock-detector.test.d.ts +2 -0
  371. package/dist/team/__tests__/deadlock-detector.test.d.ts.map +1 -0
  372. package/dist/team/__tests__/deadlock-detector.test.js +50 -0
  373. package/dist/team/__tests__/deadlock-detector.test.js.map +1 -0
  374. package/dist/team/__tests__/dependency-graph.test.d.ts +2 -0
  375. package/dist/team/__tests__/dependency-graph.test.d.ts.map +1 -0
  376. package/dist/team/__tests__/dependency-graph.test.js +29 -0
  377. package/dist/team/__tests__/dependency-graph.test.js.map +1 -0
  378. package/dist/team/capabilities.d.ts +1 -2
  379. package/dist/team/capabilities.d.ts.map +1 -1
  380. package/dist/team/capabilities.js.map +1 -1
  381. package/dist/team/deadlock-detector.d.ts +16 -0
  382. package/dist/team/deadlock-detector.d.ts.map +1 -0
  383. package/dist/team/deadlock-detector.js +52 -0
  384. package/dist/team/deadlock-detector.js.map +1 -0
  385. package/dist/team/dependency-graph.d.ts +23 -0
  386. package/dist/team/dependency-graph.d.ts.map +1 -0
  387. package/dist/team/dependency-graph.js +35 -0
  388. package/dist/team/dependency-graph.js.map +1 -0
  389. package/dist/team/index.d.ts +3 -0
  390. package/dist/team/index.d.ts.map +1 -1
  391. package/dist/team/index.js +2 -0
  392. package/dist/team/index.js.map +1 -1
  393. package/dist/team/types.d.ts +15 -4
  394. package/dist/team/types.d.ts.map +1 -1
  395. package/dist/team/types.js +0 -1
  396. package/dist/team/types.js.map +1 -1
  397. package/dist/team/unified-team.d.ts +2 -11
  398. package/dist/team/unified-team.d.ts.map +1 -1
  399. package/dist/team/unified-team.js.map +1 -1
  400. package/dist/tools/__tests__/ast-tools.test.d.ts +2 -0
  401. package/dist/tools/__tests__/ast-tools.test.d.ts.map +1 -0
  402. package/dist/tools/__tests__/ast-tools.test.js +178 -0
  403. package/dist/tools/__tests__/ast-tools.test.js.map +1 -0
  404. package/dist/tools/__tests__/lsp-tools.test.d.ts +2 -0
  405. package/dist/tools/__tests__/lsp-tools.test.d.ts.map +1 -0
  406. package/dist/tools/__tests__/lsp-tools.test.js +252 -0
  407. package/dist/tools/__tests__/lsp-tools.test.js.map +1 -0
  408. package/dist/tools/diagnostics/__tests__/index.test.d.ts +2 -0
  409. package/dist/tools/diagnostics/__tests__/index.test.d.ts.map +1 -0
  410. package/dist/tools/diagnostics/__tests__/index.test.js +111 -0
  411. package/dist/tools/diagnostics/__tests__/index.test.js.map +1 -0
  412. package/dist/tools/diagnostics/__tests__/lsp-aggregator.test.d.ts +2 -0
  413. package/dist/tools/diagnostics/__tests__/lsp-aggregator.test.d.ts.map +1 -0
  414. package/dist/tools/diagnostics/__tests__/lsp-aggregator.test.js +120 -0
  415. package/dist/tools/diagnostics/__tests__/lsp-aggregator.test.js.map +1 -0
  416. package/dist/tools/diagnostics/__tests__/tsc-runner.test.d.ts +2 -0
  417. package/dist/tools/diagnostics/__tests__/tsc-runner.test.d.ts.map +1 -0
  418. package/dist/tools/diagnostics/__tests__/tsc-runner.test.js +86 -0
  419. package/dist/tools/diagnostics/__tests__/tsc-runner.test.js.map +1 -0
  420. package/dist/tools/diagnostics/constants.d.ts +5 -0
  421. package/dist/tools/diagnostics/constants.d.ts.map +1 -0
  422. package/dist/tools/diagnostics/constants.js +5 -0
  423. package/dist/tools/diagnostics/constants.js.map +1 -0
  424. package/dist/tools/diagnostics/index.d.ts +2 -1
  425. package/dist/tools/diagnostics/index.d.ts.map +1 -1
  426. package/dist/tools/diagnostics/index.js +2 -1
  427. package/dist/tools/diagnostics/index.js.map +1 -1
  428. package/dist/tools/diagnostics/lsp-aggregator.js +1 -1
  429. package/dist/tools/diagnostics/lsp-aggregator.js.map +1 -1
  430. package/dist/tools/lsp/__tests__/utils.test.d.ts +2 -0
  431. package/dist/tools/lsp/__tests__/utils.test.d.ts.map +1 -0
  432. package/dist/tools/lsp/__tests__/utils.test.js +338 -0
  433. package/dist/tools/lsp/__tests__/utils.test.js.map +1 -0
  434. package/dist/tools/lsp/utils.d.ts.map +1 -1
  435. package/dist/tools/lsp/utils.js +2 -2
  436. package/dist/tools/lsp/utils.js.map +1 -1
  437. package/dist/tools/python-repl/__tests__/bridge-manager.test.d.ts +2 -0
  438. package/dist/tools/python-repl/__tests__/bridge-manager.test.d.ts.map +1 -0
  439. package/dist/tools/python-repl/__tests__/bridge-manager.test.js +338 -0
  440. package/dist/tools/python-repl/__tests__/bridge-manager.test.js.map +1 -0
  441. package/dist/tools/python-repl/__tests__/socket-client.test.d.ts +2 -0
  442. package/dist/tools/python-repl/__tests__/socket-client.test.d.ts.map +1 -0
  443. package/dist/tools/python-repl/__tests__/socket-client.test.js +155 -0
  444. package/dist/tools/python-repl/__tests__/socket-client.test.js.map +1 -0
  445. package/dist/tools/python-repl/bridge-manager.d.ts +4 -0
  446. package/dist/tools/python-repl/bridge-manager.d.ts.map +1 -1
  447. package/dist/tools/python-repl/bridge-manager.js +4 -1
  448. package/dist/tools/python-repl/bridge-manager.js.map +1 -1
  449. package/docs/guides/task-templates-guide.md +153 -0
  450. package/docs/guides/troubleshooting-guide.md +110 -0
  451. package/docs/guides/wizard-user-guide.md +85 -0
  452. package/docs/guides/workflow-recommendation-guide.md +97 -0
  453. package/docs/reviews/ultrapower-security/review_critic.md +450 -0
  454. package/docs/reviews/ultrapower-tech-review/review_tech.md +180 -0
  455. package/docs/troubleshooting/agent-timeouts.md +37 -0
  456. package/docs/troubleshooting/common-errors.md +37 -0
  457. package/docs/troubleshooting/hook-failures.md +29 -0
  458. package/docs/troubleshooting/performance-issues.md +41 -0
  459. package/docs/troubleshooting/state-corruption.md +36 -0
  460. package/hooks/run-hook.cmd +0 -0
  461. package/hooks/session-start +0 -0
  462. package/package.json +1 -1
  463. package/scripts/analyze-dependencies.ts +47 -0
  464. package/scripts/analyze-hook-coverage.ts +55 -0
  465. package/scripts/performance-regression.ts +28 -0
  466. package/scripts/persistent-mode.cjs +605 -605
  467. package/scripts/profiling.ts +95 -0
  468. package/scripts/run-profiling.ts +64 -0
  469. package/scripts/test-parallel-execution.ts +72 -0
  470. package/scripts/test-race-detection.ts +57 -0
  471. package/scripts/test-tiered-writer.ts +60 -0
  472. package/scripts/test-wal-integration.ts +29 -0
  473. package/scripts/test-wal.ts +48 -0
  474. package/skills/next-step-router/SKILL.md +17 -0
  475. package/skills/systematic-debugging/find-polluter.sh +0 -0
  476. package/skills/wizard/SKILL.md +103 -72
  477. package/skills/writing-skills/graphviz-conventions.dot +171 -171
  478. package/skills/writing-skills/render-graphs.js +0 -0
  479. package/templates/axiom/scripts/Check-Memory.ps1 +68 -68
  480. package/templates/axiom/scripts/Poll-Memory.ps1 +36 -36
  481. package/templates/axiom/scripts/Watch-Memory.ps1 +149 -149
  482. package/templates/axiom/scripts/agent-runner.ps1 +101 -101
  483. package/templates/axiom/scripts/start-reviews.ps1 +19 -19
  484. package/templates/tasks/README.md +45 -0
  485. package/templates/tasks/bug-fix.md +37 -0
  486. package/templates/tasks/code-review.md +36 -0
  487. package/templates/tasks/feature-development.md +43 -0
  488. package/templates/tasks/refactoring.md +37 -0
  489. package/templates/tasks/security-audit.md +37 -0
@@ -4,13 +4,13 @@ description: 交互式向导,通过3个问题引导用户选择合适的执行
4
4
  ---
5
5
 
6
6
  <Purpose>
7
- Wizard 是一个交互式向导,帮助不确定该使用哪个执行模式的用户,通过3个简单问题快速找到最合适的 ultrapower 命令。
7
+ Wizard 是一个交互式向导,帮助新用户在 2 分钟内通过 3 个简单问题找到最合适的执行模式。
8
8
  </Purpose>
9
9
 
10
10
  <Use_When>
11
- - 用户说 "wizard"、"帮我选"、"不知道用什么"、"怎么开始"、"用哪个命令"
12
- - 用户面对新任务不知道该用 autopilot/ralph/team/executor 哪个
11
+ - 用户说 "wizard"、"帮我选"、"不知道用什么"、"怎么开始"
13
12
  - 用户第一次使用 ultrapower,需要引导
13
+ - 用户不确定该用 autopilot/ralph/team/executor 哪个
14
14
  </Use_When>
15
15
 
16
16
  <Do_Not_Use_When>
@@ -20,109 +20,140 @@ Wizard 是一个交互式向导,帮助不确定该使用哪个执行模式的
20
20
 
21
21
  <Execution>
22
22
 
23
- ## 第一步:问 Q1
23
+ ## 实现方式
24
24
 
25
- 使用 AskUserQuestion 工具提问:
25
+ 使用 `src/features/wizard/` 模块的 `WizardEngine` 类:
26
26
 
27
- ```
28
- 问题: "你想做什么?"
29
- 选项:
30
- A. 新功能 / 构建新东西
31
- B. 修复 bug
32
- C. 代码审查
33
- D. 重构 / 优化
34
- ```
27
+ ```typescript
28
+ import { WizardEngine } from './features/wizard/index.js';
35
29
 
36
- ## 第二步:根据 Q1 路由
30
+ const wizard = new WizardEngine();
31
+ ```
37
32
 
38
- - **B(修复 bug)** → 直接推荐,跳到输出
39
- - 推荐: `systematic-debugging`
40
- - 原因: bug 修复需要先定位根因,再修复,systematic-debugging 提供结构化调试流程
33
+ ## 问题流程
41
34
 
42
- - **C(代码审查)** → 直接推荐,跳到输出
43
- - 推荐: `code-review`
44
- - 原因: 代码审查有专门的多维度审查流水线
35
+ ### Q1: 你想做什么?
45
36
 
46
- - **A 或 D** → 继续问 Q2
37
+ 使用 AskUserQuestion 提问:
47
38
 
48
- ## 第三步:问 Q2(仅 A/D 路径)
39
+ ```
40
+ 问题: "你想做什么?"
41
+ header: "任务类型"
42
+ 选项:
43
+ 1. 实现单个功能 — 添加一个新功能或改进现有功能
44
+ 2. 实现多个功能 — 同时开发多个独立或相关的功能
45
+ 3. 修复问题 — 修复 bug、错误或测试失败
46
+ 4. 不确定,需要探索 — 还不清楚具体要做什么,需要先分析
47
+ ```
49
48
 
50
- 使用 AskUserQuestion 工具提问:
49
+ ### Q2: 分支问题(根据 Q1)
51
50
 
51
+ **如果 Q1 = 单个功能**,问:
52
52
  ```
53
- 问题: "任务复杂度大概是?"
53
+ 问题: "任务复杂度?"
54
+ header: "复杂度"
54
55
  选项:
55
- A. 简单(改动集中在1-2个文件)
56
- B. 中等(多文件改动,逻辑比较清晰)
57
- C. 复杂(架构级改动,需要规划设计)
56
+ 1. 简单 — 修改 1-3 个文件,逻辑清晰
57
+ 2. 复杂 — 涉及多个模块,需要架构设计
58
58
  ```
59
59
 
60
- ## 第四步:根据 Q2 路由
61
-
62
- - **A(简单)** → 直接推荐,跳到输出
63
- - 推荐: `executor agent`
64
- - 原因: 单文件改动不需要完整流水线,直接委托 executor 最高效
60
+ **如果 Q1 = 多个功能**,问:
61
+ ```
62
+ 问题: "功能是否独立?"
63
+ header: "依赖关系"
64
+ 选项:
65
+ 1. 是 — 功能之间没有依赖,可以并行开发
66
+ 2. 否 — 功能之间有依赖关系,需要协调
67
+ ```
65
68
 
66
- - **C(复杂)** 直接推荐,跳到输出
67
- - 推荐: `team`
68
- - 原因: 架构级改动需要 plan→exec→verify 多 agent 协作流水线
69
+ **如果 Q1 = 修复问题**,问:
70
+ ```
71
+ 问题: "问题范围?"
72
+ header: "影响范围"
73
+ 选项:
74
+ 1. 单个文件 — 问题定位明确,影响范围小
75
+ 2. 多个文件 — 问题涉及多个模块或不确定位置
76
+ ```
69
77
 
70
- - **B(中等)** 继续问 Q3
78
+ **如果 Q1 = 不确定**,问:
79
+ ```
80
+ 问题: "需要规划吗?"
81
+ header: "规划需求"
82
+ 选项:
83
+ 1. 是 — 需要先分析和制定计划
84
+ 2. 否 — 直接开始探索
85
+ ```
71
86
 
72
- ## 第五步:问 Q3(仅中等复杂度路径)
87
+ ### Q3: 细化问题(部分路径需要)
73
88
 
74
- 使用 AskUserQuestion 工具提问:
89
+ **如果 Q1=单个功能 且 Q2=简单**,问:
90
+ ```
91
+ 问题: "需要持续执行直到完成?"
92
+ header: "执行模式"
93
+ 选项:
94
+ 1. 是 — 不停止直到任务完全完成并验证通过
95
+ 2. 否 — 完成基本实现即可
96
+ ```
75
97
 
98
+ **如果 Q1=修复问题 且 Q2=多个文件**,问:
76
99
  ```
77
- 问题: "这个任务需要持续运行直到完成吗?"
100
+ 问题: "需要验证循环?"
101
+ header: "验证策略"
78
102
  选项:
79
- A. 是,可能需要多轮迭代,不确定几次能完成
80
- B. 否,一次性执行,完成就好
103
+ 1. 是 — 修复后需要反复测试验证
104
+ 2. 否 — 修复一次即可
81
105
  ```
82
106
 
83
- ## 第六步:根据 Q3 路由
107
+ ## 推荐逻辑
84
108
 
85
- - **A(需要持续运行)** → 推荐 `ralph`
86
- - **B(一次性)** → 推荐 `autopilot`
109
+ 调用 `getRecommendation()` 获取推荐模式:
87
110
 
88
- ## 输出格式
111
+ | Q1 | Q2 | Q3 | 推荐 |
112
+ |---|---|---|---|
113
+ | 单个功能 | 简单 | 否 | executor |
114
+ | 单个功能 | 简单 | 是 | ralph |
115
+ | 单个功能 | 复杂 | - | autopilot |
116
+ | 多个功能 | 独立 | - | ultrawork |
117
+ | 多个功能 | 不独立 | - | team |
118
+ | 修复问题 | 单文件 | - | executor |
119
+ | 修复问题 | 多文件 | 否 | ultrawork |
120
+ | 修复问题 | 多文件 | 是 | ralph |
121
+ | 不确定 | 需要规划 | - | plan |
122
+ | 不确定 | 不需要 | - | 重新回答 Q1 |
89
123
 
90
- 每次给出推荐时,使用以下格式:
124
+ ## 输出格式
91
125
 
92
126
  ```
93
- 推荐: /ultrapower:<mode> "<在这里填入你的任务描述>"
127
+ 根据你的回答,我推荐使用: <mode>
94
128
 
95
- 原因: <一句话解释为什么这个模式最合适>
129
+ 📋 <Mode> 模式说明:
130
+ <一句话描述>
96
131
 
97
- 备选方案:
98
- - /ultrapower:<alt1> <适用场景>
99
- - /ultrapower:<alt2> — <适用场景>
100
- ```
101
-
102
- ### 各模式备选方案参考
132
+ 🎯 使用方式:
133
+ /<mode> "你的任务描述"
103
134
 
104
- **systematic-debugging 的备选**:
105
- - `/ultrapower:executor` — 如果你已经知道问题在哪,直接修
106
- - `/ultrapower:analyze` — 如果只需要分析,不需要修复
135
+ 💡 示例:
136
+ /<mode> "<具体示例>"
107
137
 
108
- **code-review 的备选**:
109
- - `/ultrapower:security-review` — 如果专注安全漏洞
110
- - `/ultrapower:quality-reviewer` — 如果专注代码质量
138
+ 选择:
139
+ 1. 确认并执行
140
+ 2. 返回重新选择
141
+ 3. 查看所有模式
142
+ ```
111
143
 
112
- **executor 的备选**:
113
- - `/ultrapower:autopilot` — 如果任务比预期复杂
114
- - `/ultrapower:ralph` — 如果需要持续迭代
144
+ ### 模式说明参考
115
145
 
116
- **team 的备选**:
117
- - `/ultrapower:autopilot` — 如果不需要多 agent 并行
118
- - `/ultrapower:ralph` — 如果需要持续循环直到完成
146
+ - **executor**: 直接实现,适合简单明确的任务
147
+ - **ralph**: 持续执行直到验证通过,适合需要反复迭代的任务
148
+ - **autopilot**: 自主规划和实现,适合复杂的单一功能
149
+ - **ultrawork**: 最大并行度,适合多个独立任务
150
+ - **team**: 协调式团队执行,适合有依赖关系的多任务
151
+ - **plan**: 先制定计划,适合不确定的探索性任务
119
152
 
120
- **ralph 的备选**:
121
- - `/ultrapower:autopilot` — 如果任务相对确定,一次能完成
122
- - `/ultrapower:team` — 如果需要多 agent 并行协作
153
+ ## 特殊处理
123
154
 
124
- **autopilot 的备选**:
125
- - `/ultrapower:ralph` 如果任务可能需要多轮迭代
126
- - `/ultrapower:team` — 如果需要多个 agent 并行协作
155
+ - 支持 "b" 或 "back" 返回上一步
156
+ - 支持 "q" 或 "quit" 退出向导
157
+ - 无效输入时重新显示当前问题
127
158
 
128
159
  </Execution>
@@ -1,172 +1,172 @@
1
- digraph STYLE_GUIDE {
2
- // The style guide for our process DSL, written in the DSL itself
3
-
4
- // Node type examples with their shapes
5
- subgraph cluster_node_types {
6
- label="NODE TYPES AND SHAPES";
7
-
8
- // Questions are diamonds
9
- "Is this a question?" [shape=diamond];
10
-
11
- // Actions are boxes (default)
12
- "Take an action" [shape=box];
13
-
14
- // Commands are plaintext
15
- "git commit -m 'msg'" [shape=plaintext];
16
-
17
- // States are ellipses
18
- "Current state" [shape=ellipse];
19
-
20
- // Warnings are octagons
21
- "STOP: Critical warning" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
22
-
23
- // Entry/exit are double circles
24
- "Process starts" [shape=doublecircle];
25
- "Process complete" [shape=doublecircle];
26
-
27
- // Examples of each
28
- "Is test passing?" [shape=diamond];
29
- "Write test first" [shape=box];
30
- "npm test" [shape=plaintext];
31
- "I am stuck" [shape=ellipse];
32
- "NEVER use git add -A" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
33
- }
34
-
35
- // Edge naming conventions
36
- subgraph cluster_edge_types {
37
- label="EDGE LABELS";
38
-
39
- "Binary decision?" [shape=diamond];
40
- "Yes path" [shape=box];
41
- "No path" [shape=box];
42
-
43
- "Binary decision?" -> "Yes path" [label="yes"];
44
- "Binary decision?" -> "No path" [label="no"];
45
-
46
- "Multiple choice?" [shape=diamond];
47
- "Option A" [shape=box];
48
- "Option B" [shape=box];
49
- "Option C" [shape=box];
50
-
51
- "Multiple choice?" -> "Option A" [label="condition A"];
52
- "Multiple choice?" -> "Option B" [label="condition B"];
53
- "Multiple choice?" -> "Option C" [label="otherwise"];
54
-
55
- "Process A done" [shape=doublecircle];
56
- "Process B starts" [shape=doublecircle];
57
-
58
- "Process A done" -> "Process B starts" [label="triggers", style=dotted];
59
- }
60
-
61
- // Naming patterns
62
- subgraph cluster_naming_patterns {
63
- label="NAMING PATTERNS";
64
-
65
- // Questions end with ?
66
- "Should I do X?";
67
- "Can this be Y?";
68
- "Is Z true?";
69
- "Have I done W?";
70
-
71
- // Actions start with verb
72
- "Write the test";
73
- "Search for patterns";
74
- "Commit changes";
75
- "Ask for help";
76
-
77
- // Commands are literal
78
- "grep -r 'pattern' .";
79
- "git status";
80
- "npm run build";
81
-
82
- // States describe situation
83
- "Test is failing";
84
- "Build complete";
85
- "Stuck on error";
86
- }
87
-
88
- // Process structure template
89
- subgraph cluster_structure {
90
- label="PROCESS STRUCTURE TEMPLATE";
91
-
92
- "Trigger: Something happens" [shape=ellipse];
93
- "Initial check?" [shape=diamond];
94
- "Main action" [shape=box];
95
- "git status" [shape=plaintext];
96
- "Another check?" [shape=diamond];
97
- "Alternative action" [shape=box];
98
- "STOP: Don't do this" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
99
- "Process complete" [shape=doublecircle];
100
-
101
- "Trigger: Something happens" -> "Initial check?";
102
- "Initial check?" -> "Main action" [label="yes"];
103
- "Initial check?" -> "Alternative action" [label="no"];
104
- "Main action" -> "git status";
105
- "git status" -> "Another check?";
106
- "Another check?" -> "Process complete" [label="ok"];
107
- "Another check?" -> "STOP: Don't do this" [label="problem"];
108
- "Alternative action" -> "Process complete";
109
- }
110
-
111
- // When to use which shape
112
- subgraph cluster_shape_rules {
113
- label="WHEN TO USE EACH SHAPE";
114
-
115
- "Choosing a shape" [shape=ellipse];
116
-
117
- "Is it a decision?" [shape=diamond];
118
- "Use diamond" [shape=diamond, style=filled, fillcolor=lightblue];
119
-
120
- "Is it a command?" [shape=diamond];
121
- "Use plaintext" [shape=plaintext, style=filled, fillcolor=lightgray];
122
-
123
- "Is it a warning?" [shape=diamond];
124
- "Use octagon" [shape=octagon, style=filled, fillcolor=pink];
125
-
126
- "Is it entry/exit?" [shape=diamond];
127
- "Use doublecircle" [shape=doublecircle, style=filled, fillcolor=lightgreen];
128
-
129
- "Is it a state?" [shape=diamond];
130
- "Use ellipse" [shape=ellipse, style=filled, fillcolor=lightyellow];
131
-
132
- "Default: use box" [shape=box, style=filled, fillcolor=lightcyan];
133
-
134
- "Choosing a shape" -> "Is it a decision?";
135
- "Is it a decision?" -> "Use diamond" [label="yes"];
136
- "Is it a decision?" -> "Is it a command?" [label="no"];
137
- "Is it a command?" -> "Use plaintext" [label="yes"];
138
- "Is it a command?" -> "Is it a warning?" [label="no"];
139
- "Is it a warning?" -> "Use octagon" [label="yes"];
140
- "Is it a warning?" -> "Is it entry/exit?" [label="no"];
141
- "Is it entry/exit?" -> "Use doublecircle" [label="yes"];
142
- "Is it entry/exit?" -> "Is it a state?" [label="no"];
143
- "Is it a state?" -> "Use ellipse" [label="yes"];
144
- "Is it a state?" -> "Default: use box" [label="no"];
145
- }
146
-
147
- // Good vs bad examples
148
- subgraph cluster_examples {
149
- label="GOOD VS BAD EXAMPLES";
150
-
151
- // Good: specific and shaped correctly
152
- "Test failed" [shape=ellipse];
153
- "Read error message" [shape=box];
154
- "Can reproduce?" [shape=diamond];
155
- "git diff HEAD~1" [shape=plaintext];
156
- "NEVER ignore errors" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
157
-
158
- "Test failed" -> "Read error message";
159
- "Read error message" -> "Can reproduce?";
160
- "Can reproduce?" -> "git diff HEAD~1" [label="yes"];
161
-
162
- // Bad: vague and wrong shapes
163
- bad_1 [label="Something wrong", shape=box]; // Should be ellipse (state)
164
- bad_2 [label="Fix it", shape=box]; // Too vague
165
- bad_3 [label="Check", shape=box]; // Should be diamond
166
- bad_4 [label="Run command", shape=box]; // Should be plaintext with actual command
167
-
168
- bad_1 -> bad_2;
169
- bad_2 -> bad_3;
170
- bad_3 -> bad_4;
171
- }
1
+ digraph STYLE_GUIDE {
2
+ // The style guide for our process DSL, written in the DSL itself
3
+
4
+ // Node type examples with their shapes
5
+ subgraph cluster_node_types {
6
+ label="NODE TYPES AND SHAPES";
7
+
8
+ // Questions are diamonds
9
+ "Is this a question?" [shape=diamond];
10
+
11
+ // Actions are boxes (default)
12
+ "Take an action" [shape=box];
13
+
14
+ // Commands are plaintext
15
+ "git commit -m 'msg'" [shape=plaintext];
16
+
17
+ // States are ellipses
18
+ "Current state" [shape=ellipse];
19
+
20
+ // Warnings are octagons
21
+ "STOP: Critical warning" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
22
+
23
+ // Entry/exit are double circles
24
+ "Process starts" [shape=doublecircle];
25
+ "Process complete" [shape=doublecircle];
26
+
27
+ // Examples of each
28
+ "Is test passing?" [shape=diamond];
29
+ "Write test first" [shape=box];
30
+ "npm test" [shape=plaintext];
31
+ "I am stuck" [shape=ellipse];
32
+ "NEVER use git add -A" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
33
+ }
34
+
35
+ // Edge naming conventions
36
+ subgraph cluster_edge_types {
37
+ label="EDGE LABELS";
38
+
39
+ "Binary decision?" [shape=diamond];
40
+ "Yes path" [shape=box];
41
+ "No path" [shape=box];
42
+
43
+ "Binary decision?" -> "Yes path" [label="yes"];
44
+ "Binary decision?" -> "No path" [label="no"];
45
+
46
+ "Multiple choice?" [shape=diamond];
47
+ "Option A" [shape=box];
48
+ "Option B" [shape=box];
49
+ "Option C" [shape=box];
50
+
51
+ "Multiple choice?" -> "Option A" [label="condition A"];
52
+ "Multiple choice?" -> "Option B" [label="condition B"];
53
+ "Multiple choice?" -> "Option C" [label="otherwise"];
54
+
55
+ "Process A done" [shape=doublecircle];
56
+ "Process B starts" [shape=doublecircle];
57
+
58
+ "Process A done" -> "Process B starts" [label="triggers", style=dotted];
59
+ }
60
+
61
+ // Naming patterns
62
+ subgraph cluster_naming_patterns {
63
+ label="NAMING PATTERNS";
64
+
65
+ // Questions end with ?
66
+ "Should I do X?";
67
+ "Can this be Y?";
68
+ "Is Z true?";
69
+ "Have I done W?";
70
+
71
+ // Actions start with verb
72
+ "Write the test";
73
+ "Search for patterns";
74
+ "Commit changes";
75
+ "Ask for help";
76
+
77
+ // Commands are literal
78
+ "grep -r 'pattern' .";
79
+ "git status";
80
+ "npm run build";
81
+
82
+ // States describe situation
83
+ "Test is failing";
84
+ "Build complete";
85
+ "Stuck on error";
86
+ }
87
+
88
+ // Process structure template
89
+ subgraph cluster_structure {
90
+ label="PROCESS STRUCTURE TEMPLATE";
91
+
92
+ "Trigger: Something happens" [shape=ellipse];
93
+ "Initial check?" [shape=diamond];
94
+ "Main action" [shape=box];
95
+ "git status" [shape=plaintext];
96
+ "Another check?" [shape=diamond];
97
+ "Alternative action" [shape=box];
98
+ "STOP: Don't do this" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
99
+ "Process complete" [shape=doublecircle];
100
+
101
+ "Trigger: Something happens" -> "Initial check?";
102
+ "Initial check?" -> "Main action" [label="yes"];
103
+ "Initial check?" -> "Alternative action" [label="no"];
104
+ "Main action" -> "git status";
105
+ "git status" -> "Another check?";
106
+ "Another check?" -> "Process complete" [label="ok"];
107
+ "Another check?" -> "STOP: Don't do this" [label="problem"];
108
+ "Alternative action" -> "Process complete";
109
+ }
110
+
111
+ // When to use which shape
112
+ subgraph cluster_shape_rules {
113
+ label="WHEN TO USE EACH SHAPE";
114
+
115
+ "Choosing a shape" [shape=ellipse];
116
+
117
+ "Is it a decision?" [shape=diamond];
118
+ "Use diamond" [shape=diamond, style=filled, fillcolor=lightblue];
119
+
120
+ "Is it a command?" [shape=diamond];
121
+ "Use plaintext" [shape=plaintext, style=filled, fillcolor=lightgray];
122
+
123
+ "Is it a warning?" [shape=diamond];
124
+ "Use octagon" [shape=octagon, style=filled, fillcolor=pink];
125
+
126
+ "Is it entry/exit?" [shape=diamond];
127
+ "Use doublecircle" [shape=doublecircle, style=filled, fillcolor=lightgreen];
128
+
129
+ "Is it a state?" [shape=diamond];
130
+ "Use ellipse" [shape=ellipse, style=filled, fillcolor=lightyellow];
131
+
132
+ "Default: use box" [shape=box, style=filled, fillcolor=lightcyan];
133
+
134
+ "Choosing a shape" -> "Is it a decision?";
135
+ "Is it a decision?" -> "Use diamond" [label="yes"];
136
+ "Is it a decision?" -> "Is it a command?" [label="no"];
137
+ "Is it a command?" -> "Use plaintext" [label="yes"];
138
+ "Is it a command?" -> "Is it a warning?" [label="no"];
139
+ "Is it a warning?" -> "Use octagon" [label="yes"];
140
+ "Is it a warning?" -> "Is it entry/exit?" [label="no"];
141
+ "Is it entry/exit?" -> "Use doublecircle" [label="yes"];
142
+ "Is it entry/exit?" -> "Is it a state?" [label="no"];
143
+ "Is it a state?" -> "Use ellipse" [label="yes"];
144
+ "Is it a state?" -> "Default: use box" [label="no"];
145
+ }
146
+
147
+ // Good vs bad examples
148
+ subgraph cluster_examples {
149
+ label="GOOD VS BAD EXAMPLES";
150
+
151
+ // Good: specific and shaped correctly
152
+ "Test failed" [shape=ellipse];
153
+ "Read error message" [shape=box];
154
+ "Can reproduce?" [shape=diamond];
155
+ "git diff HEAD~1" [shape=plaintext];
156
+ "NEVER ignore errors" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
157
+
158
+ "Test failed" -> "Read error message";
159
+ "Read error message" -> "Can reproduce?";
160
+ "Can reproduce?" -> "git diff HEAD~1" [label="yes"];
161
+
162
+ // Bad: vague and wrong shapes
163
+ bad_1 [label="Something wrong", shape=box]; // Should be ellipse (state)
164
+ bad_2 [label="Fix it", shape=box]; // Too vague
165
+ bad_3 [label="Check", shape=box]; // Should be diamond
166
+ bad_4 [label="Run command", shape=box]; // Should be plaintext with actual command
167
+
168
+ bad_1 -> bad_2;
169
+ bad_2 -> bad_3;
170
+ bad_3 -> bad_4;
171
+ }
172
172
  }
File without changes