@openlife/cli 1.8.2 → 1.9.3

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 (665) hide show
  1. package/.catalog/agents/ad-midas/AGENT.md +182 -0
  2. package/.catalog/agents/ads-analyst/AGENT.md +168 -0
  3. package/.catalog/agents/agency-agents/AGENT.md +208 -0
  4. package/.catalog/agents/aha-moment-identifier/AGENT.md +184 -0
  5. package/.catalog/agents/ai-builder-analyst/AGENT.md +214 -0
  6. package/.catalog/agents/ai-builder-builder/AGENT.md +241 -0
  7. package/.catalog/agents/ai-builder-design-director/AGENT.md +216 -0
  8. package/.catalog/agents/ai-builder-infra-data/AGENT.md +228 -0
  9. package/.catalog/agents/ai-builder-orchestrator/AGENT.md +207 -0
  10. package/.catalog/agents/ai-builder-qa-reviewer/AGENT.md +252 -0
  11. package/.catalog/agents/ai-builder-release-manager/AGENT.md +248 -0
  12. package/.catalog/agents/ai-scientist-council/AGENT.md +57 -0
  13. package/.catalog/agents/al-ries/AGENT.md +208 -0
  14. package/.catalog/agents/alert-classifier/AGENT.md +184 -0
  15. package/.catalog/agents/alina-wheeler/AGENT.md +217 -0
  16. package/.catalog/agents/ambient-listener/AGENT.md +153 -0
  17. package/.catalog/agents/analista-de-impacto/AGENT.md +383 -0
  18. package/.catalog/agents/analyst-brief-generator/AGENT.md +189 -0
  19. package/.catalog/agents/andre-chaperon/AGENT.md +239 -0
  20. package/.catalog/agents/anomaly-detector/AGENT.md +172 -0
  21. package/.catalog/agents/arbiter/AGENT.md +43 -0
  22. package/.catalog/agents/archetype-consultant/AGENT.md +248 -0
  23. package/.catalog/agents/architecture-checker/AGENT.md +178 -0
  24. package/.catalog/agents/arquivista/AGENT.md +59 -0
  25. package/.catalog/agents/art-director/AGENT.md +142 -0
  26. package/.catalog/agents/assayer/AGENT.md +49 -0
  27. package/.catalog/agents/atlas/AGENT.md +97 -0
  28. package/.catalog/agents/avaliadora/AGENT.md +66 -0
  29. package/.catalog/agents/avinash-kaushik/AGENT.md +301 -0
  30. package/.catalog/agents/bazaar/AGENT.md +43 -0
  31. package/.catalog/agents/beatriz-monteiro/AGENT.md +76 -0
  32. package/.catalog/agents/ben-settle/AGENT.md +227 -0
  33. package/.catalog/agents/bias-auditor/AGENT.md +177 -0
  34. package/.catalog/agents/blake-snyder/AGENT.md +258 -0
  35. package/.catalog/agents/board-chair/AGENT.md +194 -0
  36. package/.catalog/agents/brad-frost/AGENT.md +218 -0
  37. package/.catalog/agents/brand-chief/AGENT.md +191 -0
  38. package/.catalog/agents/brene-brown/AGENT.md +329 -0
  39. package/.catalog/agents/bridge/AGENT.md +43 -0
  40. package/.catalog/agents/brief-synthesizer/AGENT.md +120 -0
  41. package/.catalog/agents/bruno-cezar/AGENT.md +70 -0
  42. package/.catalog/agents/builder/AGENT.md +115 -0
  43. package/.catalog/agents/busterer/AGENT.md +141 -0
  44. package/.catalog/agents/byron-sharp/AGENT.md +202 -0
  45. package/.catalog/agents/caio-architect/AGENT.md +268 -0
  46. package/.catalog/agents/candidate-summary-agent/AGENT.md +171 -0
  47. package/.catalog/agents/capital-strategist/AGENT.md +55 -0
  48. package/.catalog/agents/cartographer/AGENT.md +147 -0
  49. package/.catalog/agents/catalyst/AGENT.md +43 -0
  50. package/.catalog/agents/chain/AGENT.md +51 -0
  51. package/.catalog/agents/chancellor/AGENT.md +101 -0
  52. package/.catalog/agents/charlie-munger/AGENT.md +623 -0
  53. package/.catalog/agents/checklist-builder/AGENT.md +182 -0
  54. package/.catalog/agents/chris-sanders/AGENT.md +238 -0
  55. package/.catalog/agents/chronicler/AGENT.md +49 -0
  56. package/.catalog/agents/cio-engineer/AGENT.md +242 -0
  57. package/.catalog/agents/claude-hopkins/AGENT.md +215 -0
  58. package/.catalog/agents/clause-extractor/AGENT.md +193 -0
  59. package/.catalog/agents/clayton-makepeace/AGENT.md +258 -0
  60. package/.catalog/agents/clinical-note-drafter/AGENT.md +174 -0
  61. package/.catalog/agents/closer/AGENT.md +71 -0
  62. package/.catalog/agents/cloudflare-archon/AGENT.md +70 -0
  63. package/.catalog/agents/cmo-architect/AGENT.md +241 -0
  64. package/.catalog/agents/command-generator/AGENT.md +154 -0
  65. package/.catalog/agents/community-growth/AGENT.md +180 -0
  66. package/.catalog/agents/conduit/AGENT.md +43 -0
  67. package/.catalog/agents/consul/AGENT.md +43 -0
  68. package/.catalog/agents/context-composer/AGENT.md +149 -0
  69. package/.catalog/agents/context-enricher/AGENT.md +173 -0
  70. package/.catalog/agents/contrarian/AGENT.md +43 -0
  71. package/.catalog/agents/coo-orchestrator/AGENT.md +226 -0
  72. package/.catalog/agents/copy-chief/AGENT.md +199 -0
  73. package/.catalog/agents/creative-analyst/AGENT.md +175 -0
  74. package/.catalog/agents/critias/AGENT.md +43 -0
  75. package/.catalog/agents/crm-manager/AGENT.md +73 -0
  76. package/.catalog/agents/crypto-orchestrator/AGENT.md +205 -0
  77. package/.catalog/agents/cto-architect/AGENT.md +227 -0
  78. package/.catalog/agents/curadora/AGENT.md +65 -0
  79. package/.catalog/agents/curriculum-mapper/AGENT.md +183 -0
  80. package/.catalog/agents/cyber-chief/AGENT.md +153 -0
  81. package/.catalog/agents/dan-harmon/AGENT.md +200 -0
  82. package/.catalog/agents/dan-kennedy/AGENT.md +235 -0
  83. package/.catalog/agents/dan-koe/AGENT.md +256 -0
  84. package/.catalog/agents/dan-mall/AGENT.md +211 -0
  85. package/.catalog/agents/data-chief/AGENT.md +200 -0
  86. package/.catalog/agents/data-profiler/AGENT.md +180 -0
  87. package/.catalog/agents/data-quality-reporter/AGENT.md +209 -0
  88. package/.catalog/agents/dave-malouf/AGENT.md +231 -0
  89. package/.catalog/agents/david-aaker/AGENT.md +199 -0
  90. package/.catalog/agents/david-deutsch/AGENT.md +230 -0
  91. package/.catalog/agents/david-ogilvy/AGENT.md +231 -0
  92. package/.catalog/agents/david-spinks/AGENT.md +310 -0
  93. package/.catalog/agents/defi-launcher/AGENT.md +158 -0
  94. package/.catalog/agents/delivery-tracker/AGENT.md +69 -0
  95. package/.catalog/agents/denise-yohn/AGENT.md +205 -0
  96. package/.catalog/agents/depesh-mandalia/AGENT.md +207 -0
  97. package/.catalog/agents/derek-sivers/AGENT.md +301 -0
  98. package/.catalog/agents/design-chief/AGENT.md +142 -0
  99. package/.catalog/agents/design-system-architect/AGENT.md +142 -0
  100. package/.catalog/agents/destiladora/AGENT.md +71 -0
  101. package/.catalog/agents/diagnostic-assessor/AGENT.md +176 -0
  102. package/.catalog/agents/dirber/AGENT.md +144 -0
  103. package/.catalog/agents/domain-scout/AGENT.md +168 -0
  104. package/.catalog/agents/domain-seer/AGENT.md +46 -0
  105. package/.catalog/agents/donald-miller/AGENT.md +212 -0
  106. package/.catalog/agents/emily-heyward/AGENT.md +180 -0
  107. package/.catalog/agents/engine/AGENT.md +43 -0
  108. package/.catalog/agents/estrategista-de-ciclo/AGENT.md +334 -0
  109. package/.catalog/agents/eugene-schwartz/AGENT.md +271 -0
  110. package/.catalog/agents/extratora/AGENT.md +65 -0
  111. package/.catalog/agents/false-positive-filter/AGENT.md +169 -0
  112. package/.catalog/agents/fenomenologo/AGENT.md +202 -0
  113. package/.catalog/agents/fiscal/AGENT.md +177 -0
  114. package/.catalog/agents/followup-agent/AGENT.md +69 -0
  115. package/.catalog/agents/format-adapter/AGENT.md +87 -0
  116. package/.catalog/agents/frank-kern/AGENT.md +228 -0
  117. package/.catalog/agents/frontend-engineer/AGENT.md +82 -0
  118. package/.catalog/agents/frontier-power-mapper/AGENT.md +56 -0
  119. package/.catalog/agents/fuzzer/AGENT.md +154 -0
  120. package/.catalog/agents/gary-bencivenga/AGENT.md +230 -0
  121. package/.catalog/agents/gary-halbert/AGENT.md +252 -0
  122. package/.catalog/agents/genome/AGENT.md +50 -0
  123. package/.catalog/agents/georgia-weidman/AGENT.md +211 -0
  124. package/.catalog/agents/guide/AGENT.md +43 -0
  125. package/.catalog/agents/hammer/AGENT.md +50 -0
  126. package/.catalog/agents/helena-voss/AGENT.md +79 -0
  127. package/.catalog/agents/helena-voss-v2/AGENT.md +196 -0
  128. package/.catalog/agents/herald/AGENT.md +98 -0
  129. package/.catalog/agents/hermes/AGENT.md +75 -0
  130. package/.catalog/agents/hormozi-ads/AGENT.md +192 -0
  131. package/.catalog/agents/hormozi-advisor/AGENT.md +211 -0
  132. package/.catalog/agents/hormozi-audit/AGENT.md +211 -0
  133. package/.catalog/agents/hormozi-chief/AGENT.md +144 -0
  134. package/.catalog/agents/hormozi-closer/AGENT.md +212 -0
  135. package/.catalog/agents/hormozi-content/AGENT.md +199 -0
  136. package/.catalog/agents/hormozi-copy/AGENT.md +185 -0
  137. package/.catalog/agents/hormozi-hooks/AGENT.md +210 -0
  138. package/.catalog/agents/hormozi-launch/AGENT.md +193 -0
  139. package/.catalog/agents/hormozi-leads/AGENT.md +231 -0
  140. package/.catalog/agents/hormozi-models/AGENT.md +224 -0
  141. package/.catalog/agents/hormozi-offers/AGENT.md +230 -0
  142. package/.catalog/agents/hormozi-pricing/AGENT.md +184 -0
  143. package/.catalog/agents/hormozi-retention/AGENT.md +199 -0
  144. package/.catalog/agents/hormozi-scale/AGENT.md +208 -0
  145. package/.catalog/agents/hormozi-workshop/AGENT.md +193 -0
  146. package/.catalog/agents/hostinger-warden/AGENT.md +46 -0
  147. package/.catalog/agents/html5-builder/AGENT.md +106 -0
  148. package/.catalog/agents/hype-detector/AGENT.md +52 -0
  149. package/.catalog/agents/identitario/AGENT.md +298 -0
  150. package/.catalog/agents/indexadora/AGENT.md +49 -0
  151. package/.catalog/agents/instagram-scout/AGENT.md +94 -0
  152. package/.catalog/agents/interaction-architect/AGENT.md +81 -0
  153. package/.catalog/agents/jean-noel-kapferer/AGENT.md +222 -0
  154. package/.catalog/agents/jim-manico/AGENT.md +215 -0
  155. package/.catalog/agents/jim-rutz/AGENT.md +226 -0
  156. package/.catalog/agents/joe-sugarman/AGENT.md +267 -0
  157. package/.catalog/agents/john-carlton/AGENT.md +236 -0
  158. package/.catalog/agents/jon-benson/AGENT.md +229 -0
  159. package/.catalog/agents/joseph-campbell/AGENT.md +217 -0
  160. package/.catalog/agents/kasim-aslam/AGENT.md +191 -0
  161. package/.catalog/agents/keith-johnstone/AGENT.md +190 -0
  162. package/.catalog/agents/kevin-keller/AGENT.md +232 -0
  163. package/.catalog/agents/kindra-hall/AGENT.md +195 -0
  164. package/.catalog/agents/lara-coordinator/AGENT.md +147 -0
  165. package/.catalog/agents/lead-qualifier/AGENT.md +73 -0
  166. package/.catalog/agents/leitora-critica/AGENT.md +70 -0
  167. package/.catalog/agents/lens/AGENT.md +50 -0
  168. package/.catalog/agents/log-analyzer/AGENT.md +176 -0
  169. package/.catalog/agents/logic-reviewer/AGENT.md +177 -0
  170. package/.catalog/agents/lp-backend-dev/AGENT.md +198 -0
  171. package/.catalog/agents/lp-copywriter/AGENT.md +162 -0
  172. package/.catalog/agents/lp-design-architect/AGENT.md +209 -0
  173. package/.catalog/agents/lp-frontend-dev/AGENT.md +194 -0
  174. package/.catalog/agents/lp-image-creator/AGENT.md +156 -0
  175. package/.catalog/agents/lp-integrator/AGENT.md +182 -0
  176. package/.catalog/agents/lp-researcher/AGENT.md +169 -0
  177. package/.catalog/agents/lp-reviewer/AGENT.md +218 -0
  178. package/.catalog/agents/lp-strategist/AGENT.md +159 -0
  179. package/.catalog/agents/magistrate/AGENT.md +43 -0
  180. package/.catalog/agents/manifestador/AGENT.md +312 -0
  181. package/.catalog/agents/marcus-carey/AGENT.md +233 -0
  182. package/.catalog/agents/marcus-leal/AGENT.md +70 -0
  183. package/.catalog/agents/market-economist/AGENT.md +60 -0
  184. package/.catalog/agents/marshall-ganz/AGENT.md +200 -0
  185. package/.catalog/agents/marty-neumeier/AGENT.md +203 -0
  186. package/.catalog/agents/matthew-dicks/AGENT.md +185 -0
  187. package/.catalog/agents/media-buyer/AGENT.md +192 -0
  188. package/.catalog/agents/medical-coder/AGENT.md +175 -0
  189. package/.catalog/agents/merchant/AGENT.md +43 -0
  190. package/.catalog/agents/mercury/AGENT.md +50 -0
  191. package/.catalog/agents/metadata-artist/AGENT.md +208 -0
  192. package/.catalog/agents/miller-sticky-brand/AGENT.md +213 -0
  193. package/.catalog/agents/mirror/AGENT.md +49 -0
  194. package/.catalog/agents/molly-pittman/AGENT.md +218 -0
  195. package/.catalog/agents/motion-designer/AGENT.md +88 -0
  196. package/.catalog/agents/movement-architect/AGENT.md +243 -0
  197. package/.catalog/agents/movement-chief/AGENT.md +168 -0
  198. package/.catalog/agents/naming-strategist/AGENT.md +204 -0
  199. package/.catalog/agents/nancy-duarte/AGENT.md +187 -0
  200. package/.catalog/agents/naval-ravikant/AGENT.md +284 -0
  201. package/.catalog/agents/nicholas-kusmich/AGENT.md +190 -0
  202. package/.catalog/agents/nick-mehta/AGENT.md +327 -0
  203. package/.catalog/agents/node-scorer/AGENT.md +137 -0
  204. package/.catalog/agents/objection-handler/AGENT.md +73 -0
  205. package/.catalog/agents/omar-santos/AGENT.md +239 -0
  206. package/.catalog/agents/operator-brain/AGENT.md +54 -0
  207. package/.catalog/agents/opportunity-strategist/AGENT.md +61 -0
  208. package/.catalog/agents/ops-coordinator/AGENT.md +75 -0
  209. package/.catalog/agents/oracle/AGENT.md +43 -0
  210. package/.catalog/agents/oren-klaff/AGENT.md +199 -0
  211. package/.catalog/agents/parent-report-agent/AGENT.md +186 -0
  212. package/.catalog/agents/park-howell/AGENT.md +185 -0
  213. package/.catalog/agents/parris-lampropoulos/AGENT.md +221 -0
  214. package/.catalog/agents/pathfinder/AGENT.md +60 -0
  215. package/.catalog/agents/patrick-lencioni/AGENT.md +427 -0
  216. package/.catalog/agents/pattern-analyst/AGENT.md +93 -0
  217. package/.catalog/agents/pedro-sobral/AGENT.md +191 -0
  218. package/.catalog/agents/perfectionist/AGENT.md +136 -0
  219. package/.catalog/agents/performance-analyst/AGENT.md +168 -0
  220. package/.catalog/agents/peter-fader/AGENT.md +279 -0
  221. package/.catalog/agents/peter-kim/AGENT.md +212 -0
  222. package/.catalog/agents/peter-thiel/AGENT.md +302 -0
  223. package/.catalog/agents/pixel-specialist/AGENT.md +177 -0
  224. package/.catalog/agents/playbook-enforcer/AGENT.md +194 -0
  225. package/.catalog/agents/postmortem-writer/AGENT.md +193 -0
  226. package/.catalog/agents/press-kit-hunter/AGENT.md +101 -0
  227. package/.catalog/agents/priority-engine/AGENT.md +71 -0
  228. package/.catalog/agents/proactive-outreach/AGENT.md +211 -0
  229. package/.catalog/agents/progress-tracker/AGENT.md +192 -0
  230. package/.catalog/agents/project-architect/AGENT.md +70 -0
  231. package/.catalog/agents/proposal-writer/AGENT.md +74 -0
  232. package/.catalog/agents/quality-reviewer/AGENT.md +184 -0
  233. package/.catalog/agents/rafa-ads/AGENT.md +236 -0
  234. package/.catalog/agents/rafa-content/AGENT.md +126 -0
  235. package/.catalog/agents/rafa-copy-master/AGENT.md +150 -0
  236. package/.catalog/agents/rafa-growth-router/AGENT.md +168 -0
  237. package/.catalog/agents/rafa-hooks/AGENT.md +106 -0
  238. package/.catalog/agents/rafa-leads/AGENT.md +113 -0
  239. package/.catalog/agents/rafa-lens/AGENT.md +62 -0
  240. package/.catalog/agents/railway-conductor/AGENT.md +70 -0
  241. package/.catalog/agents/ralph-burns/AGENT.md +196 -0
  242. package/.catalog/agents/ray-dalio/AGENT.md +619 -0
  243. package/.catalog/agents/redline-drafter/AGENT.md +198 -0
  244. package/.catalog/agents/reference-hunter/AGENT.md +192 -0
  245. package/.catalog/agents/reid-hoffman/AGENT.md +311 -0
  246. package/.catalog/agents/remediation-suggester/AGENT.md +173 -0
  247. package/.catalog/agents/resume-parser/AGENT.md +171 -0
  248. package/.catalog/agents/retrospective-agent/AGENT.md +70 -0
  249. package/.catalog/agents/review-summary-writer/AGENT.md +177 -0
  250. package/.catalog/agents/ripper/AGENT.md +154 -0
  251. package/.catalog/agents/risk-flagger/AGENT.md +196 -0
  252. package/.catalog/agents/robert-collier/AGENT.md +216 -0
  253. package/.catalog/agents/rogue/AGENT.md +149 -0
  254. package/.catalog/agents/root-cause-correlator/AGENT.md +187 -0
  255. package/.catalog/agents/runbook-executor/AGENT.md +180 -0
  256. package/.catalog/agents/russell-brunson/AGENT.md +262 -0
  257. package/.catalog/agents/ry-schwartz/AGENT.md +218 -0
  258. package/.catalog/agents/sales-strategist/AGENT.md +74 -0
  259. package/.catalog/agents/scale-optimizer/AGENT.md +177 -0
  260. package/.catalog/agents/schema-validator/AGENT.md +173 -0
  261. package/.catalog/agents/scribe/AGENT.md +101 -0
  262. package/.catalog/agents/sculptor/AGENT.md +110 -0
  263. package/.catalog/agents/sean-ellis/AGENT.md +336 -0
  264. package/.catalog/agents/security-auditor/AGENT.md +195 -0
  265. package/.catalog/agents/security-reviewer/AGENT.md +178 -0
  266. package/.catalog/agents/security-sentinel/AGENT.md +47 -0
  267. package/.catalog/agents/sentinel/AGENT.md +54 -0
  268. package/.catalog/agents/shannon-runner/AGENT.md +141 -0
  269. package/.catalog/agents/shawn-coyne/AGENT.md +241 -0
  270. package/.catalog/agents/shield/AGENT.md +43 -0
  271. package/.catalog/agents/shortlist-ranker/AGENT.md +168 -0
  272. package/.catalog/agents/simon-sinek/AGENT.md +324 -0
  273. package/.catalog/agents/skills-matcher/AGENT.md +181 -0
  274. package/.catalog/agents/smelter/AGENT.md +50 -0
  275. package/.catalog/agents/solana-dev/AGENT.md +187 -0
  276. package/.catalog/agents/status-page-updater/AGENT.md +204 -0
  277. package/.catalog/agents/stefan-georgi/AGENT.md +221 -0
  278. package/.catalog/agents/story-chief/AGENT.md +188 -0
  279. package/.catalog/agents/strategist/AGENT.md +113 -0
  280. package/.catalog/agents/style-enforcer/AGENT.md +180 -0
  281. package/.catalog/agents/summary-reporter/AGENT.md +236 -0
  282. package/.catalog/agents/task-decomposer/AGENT.md +138 -0
  283. package/.catalog/agents/task-manager/AGENT.md +75 -0
  284. package/.catalog/agents/terminal/AGENT.md +43 -0
  285. package/.catalog/agents/test-agent/AGENT.md +8 -0
  286. package/.catalog/agents/threat-prioritizer/AGENT.md +183 -0
  287. package/.catalog/agents/todd-brown/AGENT.md +204 -0
  288. package/.catalog/agents/token-architect/AGENT.md +180 -0
  289. package/.catalog/agents/tokenomics-strategist/AGENT.md +172 -0
  290. package/.catalog/agents/tom-breeze/AGENT.md +208 -0
  291. package/.catalog/agents/tooltip-generator/AGENT.md +181 -0
  292. package/.catalog/agents/traffic-chief/AGENT.md +130 -0
  293. package/.catalog/agents/tree-integrator/AGENT.md +151 -0
  294. package/.catalog/agents/tree-orchestrator/AGENT.md +151 -0
  295. package/.catalog/agents/tree-validator/AGENT.md +154 -0
  296. package/.catalog/agents/trend-historian/AGENT.md +82 -0
  297. package/.catalog/agents/tunnel-master/AGENT.md +53 -0
  298. package/.catalog/agents/tutor-agent/AGENT.md +204 -0
  299. package/.catalog/agents/ui-engineer/AGENT.md +135 -0
  300. package/.catalog/agents/user-behavior-tracker/AGENT.md +183 -0
  301. package/.catalog/agents/ux-critic/AGENT.md +82 -0
  302. package/.catalog/agents/ux-designer/AGENT.md +138 -0
  303. package/.catalog/agents/vercel-pilot/AGENT.md +51 -0
  304. package/.catalog/agents/vision-chief/AGENT.md +234 -0
  305. package/.catalog/agents/visual-ads/AGENT.md +115 -0
  306. package/.catalog/agents/visual-director/AGENT.md +79 -0
  307. package/.catalog/agents/visual-generator/AGENT.md +141 -0
  308. package/.catalog/agents/visual-researcher/AGENT.md +100 -0
  309. package/.catalog/agents/voice/AGENT.md +43 -0
  310. package/.catalog/agents/vulcan/AGENT.md +107 -0
  311. package/.catalog/agents/wave-dispatcher/AGENT.md +172 -0
  312. package/.catalog/agents/weaver/AGENT.md +49 -0
  313. package/.catalog/agents/wes-kao/AGENT.md +301 -0
  314. package/.catalog/agents/wire/AGENT.md +43 -0
  315. package/.catalog/agents/yvon-chouinard/AGENT.md +308 -0
  316. package/.catalog/capabilities/deep-research/INDEX.md +26 -0
  317. package/.catalog/capabilities/deep-research/capability.yaml +30 -0
  318. package/.catalog/capabilities/deep-research/skills/advanced-query-planning.md +24 -0
  319. package/.catalog/capabilities/deep-research/skills/contradiction-analysis.md +24 -0
  320. package/.catalog/capabilities/deep-research/skills/evidence-synthesis.md +24 -0
  321. package/.catalog/capabilities/deep-research/skills/executive-briefing.md +24 -0
  322. package/.catalog/capabilities/deep-research/skills/source-credibility-scoring.md +24 -0
  323. package/.catalog/capabilities/deep-research/squads/research-squad/SQUAD.md +18 -0
  324. package/.catalog/capabilities/deep-research/workflows/deep-research-flow.yaml +15 -0
  325. package/.catalog/mcps/my-mcp/REFERENCE.md +7 -0
  326. package/.catalog/mcps/test-mcp/mcp.json +7 -0
  327. package/.catalog/skill-networks.json +29 -0
  328. package/.catalog/skills/1password/SKILL.md +34 -0
  329. package/.catalog/skills/apple-notes/SKILL.md +34 -0
  330. package/.catalog/skills/apple-reminders/SKILL.md +34 -0
  331. package/.catalog/skills/bear-notes/SKILL.md +34 -0
  332. package/.catalog/skills/blogwatcher/SKILL.md +34 -0
  333. package/.catalog/skills/blucli/SKILL.md +34 -0
  334. package/.catalog/skills/bluebubbles/SKILL.md +34 -0
  335. package/.catalog/skills/browser-use/SKILL.md +132 -0
  336. package/.catalog/skills/camsnap/SKILL.md +34 -0
  337. package/.catalog/skills/canvas/SKILL.md +34 -0
  338. package/.catalog/skills/clawhub/SKILL.md +34 -0
  339. package/.catalog/skills/coding-agent/SKILL.md +34 -0
  340. package/.catalog/skills/design-extractor/OPENLIFE_INSTALL.md +24 -0
  341. package/.catalog/skills/design-extractor/SKILL.md +413 -0
  342. package/.catalog/skills/design-extractor/references/css-patterns.md +97 -0
  343. package/.catalog/skills/discord/SKILL.md +34 -0
  344. package/.catalog/skills/eightctl/SKILL.md +34 -0
  345. package/.catalog/skills/gemini/SKILL.md +34 -0
  346. package/.catalog/skills/gh-issues/SKILL.md +34 -0
  347. package/.catalog/skills/gifgrep/SKILL.md +34 -0
  348. package/.catalog/skills/github/SKILL.md +34 -0
  349. package/.catalog/skills/gog/SKILL.md +34 -0
  350. package/.catalog/skills/goplaces/SKILL.md +34 -0
  351. package/.catalog/skills/healthcheck/SKILL.md +34 -0
  352. package/.catalog/skills/himalaya/SKILL.md +34 -0
  353. package/.catalog/skills/imsg/SKILL.md +34 -0
  354. package/.catalog/skills/mcporter/SKILL.md +34 -0
  355. package/.catalog/skills/model-usage/SKILL.md +34 -0
  356. package/.catalog/skills/nano-banana-pro/SKILL.md +34 -0
  357. package/.catalog/skills/nano-pdf/SKILL.md +34 -0
  358. package/.catalog/skills/node-connect/SKILL.md +34 -0
  359. package/.catalog/skills/notion/SKILL.md +34 -0
  360. package/.catalog/skills/obsidian/SKILL.md +34 -0
  361. package/.catalog/skills/openai-image-gen/SKILL.md +34 -0
  362. package/.catalog/skills/openai-whisper/SKILL.md +34 -0
  363. package/.catalog/skills/openai-whisper-api/SKILL.md +34 -0
  364. package/.catalog/skills/openhue/SKILL.md +34 -0
  365. package/.catalog/skills/oracle/SKILL.md +34 -0
  366. package/.catalog/skills/ordercli/SKILL.md +34 -0
  367. package/.catalog/skills/peekaboo/SKILL.md +34 -0
  368. package/.catalog/skills/sag/SKILL.md +34 -0
  369. package/.catalog/skills/sample-from-url/IMPORTED_REFERENCE.md +13 -0
  370. package/.catalog/skills/session-logs/SKILL.md +34 -0
  371. package/.catalog/skills/sherpa-onnx-tts/SKILL.md +34 -0
  372. package/.catalog/skills/skill-creator/SKILL.md +34 -0
  373. package/.catalog/skills/slack/SKILL.md +34 -0
  374. package/.catalog/skills/songsee/SKILL.md +34 -0
  375. package/.catalog/skills/sonoscli/SKILL.md +34 -0
  376. package/.catalog/skills/spotify-player/SKILL.md +34 -0
  377. package/.catalog/skills/summarize/SKILL.md +34 -0
  378. package/.catalog/skills/test-skill/REFERENCE.md +7 -0
  379. package/.catalog/skills/test-skill-autogen/SKILL.md +9 -0
  380. package/.catalog/skills/things-mac/SKILL.md +34 -0
  381. package/.catalog/skills/tmux/SKILL.md +34 -0
  382. package/.catalog/skills/trello/SKILL.md +34 -0
  383. package/.catalog/skills/video-frames/SKILL.md +34 -0
  384. package/.catalog/skills/voice-call/SKILL.md +34 -0
  385. package/.catalog/skills/wacli/SKILL.md +34 -0
  386. package/.catalog/skills/weather/SKILL.md +34 -0
  387. package/.catalog/skills/xurl/SKILL.md +34 -0
  388. package/.catalog/squads/00-governance-advisory-board/SQUAD.md +103 -0
  389. package/.catalog/squads/00-governance-advisory-board/workflows/wf-board-meeting.yaml +25 -0
  390. package/.catalog/squads/00-governance-advisory-board/workflows/wf-decision-framework.yaml +25 -0
  391. package/.catalog/squads/00-governance-c-level-squad/SQUAD.md +93 -0
  392. package/.catalog/squads/00-governance-c-level-squad/workflows/wf-board-presentation.yaml +25 -0
  393. package/.catalog/squads/00-governance-c-level-squad/workflows/wf-strategic-planning.yaml +25 -0
  394. package/.catalog/squads/00-governance-capital-ai/SQUAD.md +147 -0
  395. package/.catalog/squads/00-governance-capital-ai-canon-v1-livros-e-grandes-mentes/SQUAD.md +140 -0
  396. package/.catalog/squads/00-governance-capital-ai-definicao-canonica/SQUAD.md +49 -0
  397. package/.catalog/squads/00-governance-conselho/SQUAD.md +116 -0
  398. package/.catalog/squads/00-governance-host-quest/SQUAD.md +132 -0
  399. package/.catalog/squads/00-governance-project-ops-squad/SQUAD.md +97 -0
  400. package/.catalog/squads/00-governance-project-ops-squad/workflows/mission-to-project.yaml +25 -0
  401. package/.catalog/squads/00-governance-project-ops-squad/workflows/sprint-planning.yaml +25 -0
  402. package/.catalog/squads/00-governance-project-ops-squad/workflows/weekly-review.yaml +25 -0
  403. package/.catalog/squads/00-governance-scrap-master/SQUAD.md +124 -0
  404. package/.catalog/squads/01-meta-framework-ai-builder/SQUAD.md +167 -0
  405. package/.catalog/squads/01-meta-framework-aiobuilder-funcionalidades-inspiradas-em-claude-code/SQUAD.md +119 -0
  406. package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/SQUAD.md +130 -0
  407. package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/workflows/tree-analysis-flow.yaml +25 -0
  408. package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/workflows/tree-execution-flow.yaml +25 -0
  409. package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/workflows/tree-planning-flow.yaml +25 -0
  410. package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/workflows/tree-resume-flow.yaml +25 -0
  411. package/.catalog/squads/02-product-growth-ads-xpower/SQUAD.md +129 -0
  412. package/.catalog/squads/02-product-growth-awards/SQUAD.md +123 -0
  413. package/.catalog/squads/02-product-growth-brand-squad/SQUAD.md +136 -0
  414. package/.catalog/squads/02-product-growth-brand-squad/workflows/wf-brand-creation.yaml +25 -0
  415. package/.catalog/squads/02-product-growth-brand-squad/workflows/wf-rebrand.yaml +25 -0
  416. package/.catalog/squads/02-product-growth-copy-squad/SQUAD.md +148 -0
  417. package/.catalog/squads/02-product-growth-copy-squad/workflows/wf-copy-review-cycle.yaml +25 -0
  418. package/.catalog/squads/02-product-growth-copy-squad/workflows/wf-full-copy-project.yaml +25 -0
  419. package/.catalog/squads/02-product-growth-design-squad/SQUAD.md +98 -0
  420. package/.catalog/squads/02-product-growth-design-squad/workflows/wf-design-system-creation.yaml +25 -0
  421. package/.catalog/squads/02-product-growth-design-squad/workflows/wf-feature-design.yaml +25 -0
  422. package/.catalog/squads/02-product-growth-fabrica-ads/SQUAD.md +157 -0
  423. package/.catalog/squads/02-product-growth-fabrica-imortais-backup/SQUAD.md +148 -0
  424. package/.catalog/squads/02-product-growth-hormozi-squad/SQUAD.md +118 -0
  425. package/.catalog/squads/02-product-growth-hormozi-squad/workflows/wf-business-turnaround.yaml +25 -0
  426. package/.catalog/squads/02-product-growth-hormozi-squad/workflows/wf-offer-creation.yaml +25 -0
  427. package/.catalog/squads/02-product-growth-movement/SQUAD.md +94 -0
  428. package/.catalog/squads/02-product-growth-movement/workflows/wf-movement-launch.yaml +25 -0
  429. package/.catalog/squads/02-product-growth-saas-onboarding-activator/SQUAD.md +103 -0
  430. package/.catalog/squads/02-product-growth-saas-onboarding-activator/workflows/full-onboarding-activation-workflow.yaml +25 -0
  431. package/.catalog/squads/02-product-growth-saas-onboarding-activator/workflows/quick-engagement-boost-workflow.yaml +25 -0
  432. package/.catalog/squads/02-product-growth-sales-squad/SQUAD.md +112 -0
  433. package/.catalog/squads/02-product-growth-sales-squad/workflows/followup-sequence.yaml +25 -0
  434. package/.catalog/squads/02-product-growth-sales-squad/workflows/full-sales-cycle.yaml +25 -0
  435. package/.catalog/squads/02-product-growth-sales-squad/workflows/proposal-flow.yaml +25 -0
  436. package/.catalog/squads/02-product-growth-storytelling/SQUAD.md +106 -0
  437. package/.catalog/squads/02-product-growth-storytelling/workflows/wf-brand-narrative.yaml +25 -0
  438. package/.catalog/squads/02-product-growth-storytelling/workflows/wf-story-development.yaml +25 -0
  439. package/.catalog/squads/02-product-growth-traffic-masters/SQUAD.md +117 -0
  440. package/.catalog/squads/02-product-growth-traffic-masters/workflows/wf-account-audit.yaml +25 -0
  441. package/.catalog/squads/02-product-growth-traffic-masters/workflows/wf-campaign-launch.yaml +25 -0
  442. package/.catalog/squads/02-product-growth-ultimate-landingpage/SQUAD.md +114 -0
  443. package/.catalog/squads/03-engineering-quality-automated-code-review-squad/SQUAD.md +102 -0
  444. package/.catalog/squads/03-engineering-quality-automated-code-review-squad/workflows/full-code-review-workflow.yaml +25 -0
  445. package/.catalog/squads/03-engineering-quality-automated-code-review-squad/workflows/quick-security-check-workflow.yaml +25 -0
  446. package/.catalog/squads/03-engineering-quality-cloudflare-mini/SQUAD.md +65 -0
  447. package/.catalog/squads/03-engineering-quality-seguranca/SQUAD.md +24 -0
  448. package/.catalog/squads/04-data-security-cybersecurity/SQUAD.md +113 -0
  449. package/.catalog/squads/04-data-security-cybersecurity/workflows/wf-incident-response.yaml +25 -0
  450. package/.catalog/squads/04-data-security-cybersecurity/workflows/wf-pentest-engagement.yaml +25 -0
  451. package/.catalog/squads/04-data-security-data-quality-guardian/SQUAD.md +102 -0
  452. package/.catalog/squads/04-data-security-data-quality-guardian/workflows/full-data-quality-audit-workflow.yaml +25 -0
  453. package/.catalog/squads/04-data-security-data-quality-guardian/workflows/quick-data-check-workflow.yaml +25 -0
  454. package/.catalog/squads/04-data-security-data-squad/SQUAD.md +95 -0
  455. package/.catalog/squads/04-data-security-data-squad/workflows/wf-analytics-setup.yaml +25 -0
  456. package/.catalog/squads/04-data-security-data-squad/workflows/wf-growth-sprint.yaml +25 -0
  457. package/.catalog/squads/04-data-security-incident-response-squad/SQUAD.md +103 -0
  458. package/.catalog/squads/04-data-security-incident-response-squad/workflows/full-incident-response-workflow.yaml +25 -0
  459. package/.catalog/squads/04-data-security-incident-response-squad/workflows/rapid-triage-workflow.yaml +25 -0
  460. package/.catalog/squads/04-data-security-soc-alert-triage/SQUAD.md +103 -0
  461. package/.catalog/squads/04-data-security-soc-alert-triage/workflows/full-alert-triage-workflow.yaml +25 -0
  462. package/.catalog/squads/04-data-security-soc-alert-triage/workflows/rapid-classification-workflow.yaml +25 -0
  463. package/.catalog/squads/05-domain-specialists-adaptive-tutor-k12/SQUAD.md +102 -0
  464. package/.catalog/squads/05-domain-specialists-adaptive-tutor-k12/workflows/full-tutoring-cycle-workflow.yaml +25 -0
  465. package/.catalog/squads/05-domain-specialists-adaptive-tutor-k12/workflows/quick-practice-session-workflow.yaml +25 -0
  466. package/.catalog/squads/05-domain-specialists-ambient-clinical-scribe/SQUAD.md +102 -0
  467. package/.catalog/squads/05-domain-specialists-ambient-clinical-scribe/workflows/full-documentation-workflow.yaml +25 -0
  468. package/.catalog/squads/05-domain-specialists-ambient-clinical-scribe/workflows/quick-note-workflow.yaml +25 -0
  469. package/.catalog/squads/05-domain-specialists-bibliotecaria/SQUAD.md +121 -0
  470. package/.catalog/squads/05-domain-specialists-contract-review-squad/SQUAD.md +104 -0
  471. package/.catalog/squads/05-domain-specialists-contract-review-squad/workflows/full-contract-review-workflow.yaml +25 -0
  472. package/.catalog/squads/05-domain-specialists-contract-review-squad/workflows/quick-risk-assessment-workflow.yaml +25 -0
  473. package/.catalog/squads/05-domain-specialists-crypto-token-forge/SQUAD.md +143 -0
  474. package/.catalog/squads/05-domain-specialists-crypto-token-forge/workflows/full-token-launch-workflow.yaml +25 -0
  475. package/.catalog/squads/05-domain-specialists-crypto-token-forge/workflows/memecoin-express-workflow.yaml +25 -0
  476. package/.catalog/squads/05-domain-specialists-crypto-token-forge/workflows/utility-token-launch-workflow.yaml +25 -0
  477. package/.catalog/squads/05-domain-specialists-legaltech/SQUAD.md +28 -0
  478. package/.catalog/squads/05-domain-specialists-resume-screener-squad/SQUAD.md +102 -0
  479. package/.catalog/squads/05-domain-specialists-resume-screener-squad/workflows/full-resume-screening-workflow.yaml +25 -0
  480. package/.catalog/squads/05-domain-specialists-resume-screener-squad/workflows/quick-skills-match-workflow.yaml +25 -0
  481. package/.catalog/squads/mirofish-intel-mirofish-intel/SQUAD.md +70 -0
  482. package/.catalog/squads/mirofish-mirofish-squad/SQUAD.md +177 -0
  483. package/.catalog/squads/openlife-auto-criar-pipeline-de-revis-o-jur-dica-para-contratos-1777092830690/SQUAD.md +16 -0
  484. package/.catalog/squads/operator-cli/SQUAD.md +33 -0
  485. package/.catalog/squads/telegram-autonomy/SQUAD.md +34 -0
  486. package/.catalog/squads/test-squad/SQUAD.md +8 -0
  487. package/.catalog/teams.json +16 -0
  488. package/.openlife/method/agents/atlas.md +102 -0
  489. package/.openlife/method/agents/builder.md +92 -0
  490. package/.openlife/method/agents/conductor.md +93 -0
  491. package/.openlife/method/agents/forge.md +96 -0
  492. package/.openlife/method/agents/genesis.md +115 -0
  493. package/.openlife/method/agents/lyra.md +85 -0
  494. package/.openlife/method/agents/maestro.md +92 -0
  495. package/.openlife/method/agents/mesh.md +101 -0
  496. package/.openlife/method/agents/prism.md +85 -0
  497. package/.openlife/method/agents/sentinel.md +115 -0
  498. package/.openlife/method/agents/steward.md +93 -0
  499. package/.openlife/method/agents/vortex.md +94 -0
  500. package/dist/cli/CommandFlowRunner.js +167 -0
  501. package/dist/cli/install/Phases.js +43 -0
  502. package/dist/index.js +118 -0
  503. package/dist/orchestrator/AgentRegistry.js +45 -1
  504. package/dist/orchestrator/ProjectMetadata.js +183 -0
  505. package/dist/orchestrator/SkillRegistryV2.js +48 -3
  506. package/dist/orchestrator/SquadRegistry.js +47 -1
  507. package/dist/test_flow_run_cli.js +183 -0
  508. package/dist/test_host_uninstaller.js +12 -2
  509. package/dist/test_openlife_method_inventory.js +183 -0
  510. package/dist/test_workflow_e2e.js +10 -3
  511. package/dist-templates/claude-code/agents/openlife-atlas.md +12 -44
  512. package/dist-templates/claude-code/agents/openlife-builder.md +20 -0
  513. package/dist-templates/claude-code/agents/openlife-conductor.md +20 -0
  514. package/dist-templates/claude-code/agents/openlife-forge.md +12 -34
  515. package/dist-templates/claude-code/agents/openlife-genesis.md +12 -51
  516. package/dist-templates/claude-code/agents/openlife-lyra.md +12 -32
  517. package/dist-templates/claude-code/agents/openlife-maestro.md +27 -41
  518. package/dist-templates/claude-code/agents/openlife-mesh.md +20 -0
  519. package/dist-templates/claude-code/agents/openlife-prism.md +20 -0
  520. package/dist-templates/claude-code/agents/openlife-sentinel.md +20 -0
  521. package/dist-templates/claude-code/agents/openlife-steward.md +20 -0
  522. package/dist-templates/claude-code/agents/openlife-vortex.md +20 -0
  523. package/dist-templates/claude-code/commands/openlife/agents/atlas.md +24 -0
  524. package/dist-templates/claude-code/commands/openlife/agents/builder.md +24 -0
  525. package/dist-templates/claude-code/commands/openlife/agents/conductor.md +24 -0
  526. package/dist-templates/claude-code/commands/openlife/agents/forge.md +24 -0
  527. package/dist-templates/claude-code/commands/openlife/agents/genesis.md +24 -0
  528. package/dist-templates/claude-code/commands/openlife/agents/lyra.md +24 -0
  529. package/dist-templates/claude-code/commands/openlife/agents/maestro.md +24 -0
  530. package/dist-templates/claude-code/commands/openlife/agents/mesh.md +24 -0
  531. package/dist-templates/claude-code/commands/openlife/agents/prism.md +24 -0
  532. package/dist-templates/claude-code/commands/openlife/agents/sentinel.md +24 -0
  533. package/dist-templates/claude-code/commands/openlife/agents/steward.md +24 -0
  534. package/dist-templates/claude-code/commands/openlife/agents/vortex.md +24 -0
  535. package/dist-templates/claude-code/commands/openlife/ask.md +13 -7
  536. package/dist-templates/claude-code/commands/openlife/audit.md +14 -0
  537. package/dist-templates/claude-code/commands/openlife/doctor.md +11 -14
  538. package/dist-templates/claude-code/commands/openlife/dream.md +10 -16
  539. package/dist-templates/claude-code/commands/openlife/explore.md +14 -0
  540. package/dist-templates/claude-code/commands/openlife/flow/brownfield-discovery.md +20 -0
  541. package/dist-templates/claude-code/commands/openlife/flow/brownfield-fullstack.md +20 -0
  542. package/dist-templates/claude-code/commands/openlife/flow/brownfield-service.md +20 -0
  543. package/dist-templates/claude-code/commands/openlife/flow/brownfield-ui.md +20 -0
  544. package/dist-templates/claude-code/commands/openlife/flow/epic.md +20 -0
  545. package/dist-templates/claude-code/commands/openlife/flow/greenfield-fullstack.md +20 -0
  546. package/dist-templates/claude-code/commands/openlife/flow/greenfield-service.md +20 -0
  547. package/dist-templates/claude-code/commands/openlife/flow/greenfield-ui.md +20 -0
  548. package/dist-templates/claude-code/commands/openlife/flow/qa-loop.md +20 -0
  549. package/dist-templates/claude-code/commands/openlife/flow/release.md +20 -0
  550. package/dist-templates/claude-code/commands/openlife/flow/spec-pipeline.md +20 -0
  551. package/dist-templates/claude-code/commands/openlife/flow/story-cycle.md +20 -0
  552. package/dist-templates/claude-code/commands/openlife/health.md +14 -0
  553. package/dist-templates/claude-code/commands/openlife/plan.md +14 -0
  554. package/dist-templates/claude-code/commands/openlife/review.md +14 -0
  555. package/dist-templates/claude-code/commands/openlife/ship.md +14 -0
  556. package/dist-templates/claude-code/commands/openlife/start.md +25 -0
  557. package/dist-templates/claude-code/commands/openlife/status.md +10 -10
  558. package/dist-templates/claude-code/commands/openlife/story.md +18 -0
  559. package/dist-templates/codex/agents/openlife-atlas.md +12 -44
  560. package/dist-templates/codex/agents/openlife-builder.md +20 -0
  561. package/dist-templates/codex/agents/openlife-conductor.md +20 -0
  562. package/dist-templates/codex/agents/openlife-forge.md +12 -34
  563. package/dist-templates/codex/agents/openlife-genesis.md +12 -51
  564. package/dist-templates/codex/agents/openlife-lyra.md +12 -32
  565. package/dist-templates/codex/agents/openlife-maestro.md +27 -41
  566. package/dist-templates/codex/agents/openlife-mesh.md +20 -0
  567. package/dist-templates/codex/agents/openlife-prism.md +20 -0
  568. package/dist-templates/codex/agents/openlife-sentinel.md +20 -0
  569. package/dist-templates/codex/agents/openlife-steward.md +20 -0
  570. package/dist-templates/codex/agents/openlife-vortex.md +20 -0
  571. package/dist-templates/codex/commands/openlife/agents/atlas.md +24 -0
  572. package/dist-templates/codex/commands/openlife/agents/builder.md +24 -0
  573. package/dist-templates/codex/commands/openlife/agents/conductor.md +24 -0
  574. package/dist-templates/codex/commands/openlife/agents/forge.md +24 -0
  575. package/dist-templates/codex/commands/openlife/agents/genesis.md +24 -0
  576. package/dist-templates/codex/commands/openlife/agents/lyra.md +24 -0
  577. package/dist-templates/codex/commands/openlife/agents/maestro.md +24 -0
  578. package/dist-templates/codex/commands/openlife/agents/mesh.md +24 -0
  579. package/dist-templates/codex/commands/openlife/agents/prism.md +24 -0
  580. package/dist-templates/codex/commands/openlife/agents/sentinel.md +24 -0
  581. package/dist-templates/codex/commands/openlife/agents/steward.md +24 -0
  582. package/dist-templates/codex/commands/openlife/agents/vortex.md +24 -0
  583. package/dist-templates/codex/commands/openlife/ask.md +13 -7
  584. package/dist-templates/codex/commands/openlife/audit.md +14 -0
  585. package/dist-templates/codex/commands/openlife/doctor.md +11 -14
  586. package/dist-templates/codex/commands/openlife/dream.md +10 -16
  587. package/dist-templates/codex/commands/openlife/explore.md +14 -0
  588. package/dist-templates/codex/commands/openlife/flow/brownfield-discovery.md +20 -0
  589. package/dist-templates/codex/commands/openlife/flow/brownfield-fullstack.md +20 -0
  590. package/dist-templates/codex/commands/openlife/flow/brownfield-service.md +20 -0
  591. package/dist-templates/codex/commands/openlife/flow/brownfield-ui.md +20 -0
  592. package/dist-templates/codex/commands/openlife/flow/epic.md +20 -0
  593. package/dist-templates/codex/commands/openlife/flow/greenfield-fullstack.md +20 -0
  594. package/dist-templates/codex/commands/openlife/flow/greenfield-service.md +20 -0
  595. package/dist-templates/codex/commands/openlife/flow/greenfield-ui.md +20 -0
  596. package/dist-templates/codex/commands/openlife/flow/qa-loop.md +20 -0
  597. package/dist-templates/codex/commands/openlife/flow/release.md +20 -0
  598. package/dist-templates/codex/commands/openlife/flow/spec-pipeline.md +20 -0
  599. package/dist-templates/codex/commands/openlife/flow/story-cycle.md +20 -0
  600. package/dist-templates/codex/commands/openlife/health.md +14 -0
  601. package/dist-templates/codex/commands/openlife/plan.md +14 -0
  602. package/dist-templates/codex/commands/openlife/review.md +14 -0
  603. package/dist-templates/codex/commands/openlife/ship.md +14 -0
  604. package/dist-templates/codex/commands/openlife/start.md +25 -0
  605. package/dist-templates/codex/commands/openlife/status.md +10 -10
  606. package/dist-templates/codex/commands/openlife/story.md +18 -0
  607. package/dist-templates/gemini-cli/agents/openlife-atlas.md +12 -44
  608. package/dist-templates/gemini-cli/agents/openlife-builder.md +20 -0
  609. package/dist-templates/gemini-cli/agents/openlife-conductor.md +20 -0
  610. package/dist-templates/gemini-cli/agents/openlife-forge.md +12 -34
  611. package/dist-templates/gemini-cli/agents/openlife-genesis.md +12 -51
  612. package/dist-templates/gemini-cli/agents/openlife-lyra.md +12 -32
  613. package/dist-templates/gemini-cli/agents/openlife-maestro.md +27 -41
  614. package/dist-templates/gemini-cli/agents/openlife-mesh.md +20 -0
  615. package/dist-templates/gemini-cli/agents/openlife-prism.md +20 -0
  616. package/dist-templates/gemini-cli/agents/openlife-sentinel.md +20 -0
  617. package/dist-templates/gemini-cli/agents/openlife-steward.md +20 -0
  618. package/dist-templates/gemini-cli/agents/openlife-vortex.md +20 -0
  619. package/dist-templates/gemini-cli/commands/openlife/agents/atlas.md +24 -0
  620. package/dist-templates/gemini-cli/commands/openlife/agents/builder.md +24 -0
  621. package/dist-templates/gemini-cli/commands/openlife/agents/conductor.md +24 -0
  622. package/dist-templates/gemini-cli/commands/openlife/agents/forge.md +24 -0
  623. package/dist-templates/gemini-cli/commands/openlife/agents/genesis.md +24 -0
  624. package/dist-templates/gemini-cli/commands/openlife/agents/lyra.md +24 -0
  625. package/dist-templates/gemini-cli/commands/openlife/agents/maestro.md +24 -0
  626. package/dist-templates/gemini-cli/commands/openlife/agents/mesh.md +24 -0
  627. package/dist-templates/gemini-cli/commands/openlife/agents/prism.md +24 -0
  628. package/dist-templates/gemini-cli/commands/openlife/agents/sentinel.md +24 -0
  629. package/dist-templates/gemini-cli/commands/openlife/agents/steward.md +24 -0
  630. package/dist-templates/gemini-cli/commands/openlife/agents/vortex.md +24 -0
  631. package/dist-templates/gemini-cli/commands/openlife/ask.md +13 -7
  632. package/dist-templates/gemini-cli/commands/openlife/audit.md +14 -0
  633. package/dist-templates/gemini-cli/commands/openlife/doctor.md +11 -14
  634. package/dist-templates/gemini-cli/commands/openlife/dream.md +10 -16
  635. package/dist-templates/gemini-cli/commands/openlife/explore.md +14 -0
  636. package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-discovery.md +20 -0
  637. package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-fullstack.md +20 -0
  638. package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-service.md +20 -0
  639. package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-ui.md +20 -0
  640. package/dist-templates/gemini-cli/commands/openlife/flow/epic.md +20 -0
  641. package/dist-templates/gemini-cli/commands/openlife/flow/greenfield-fullstack.md +20 -0
  642. package/dist-templates/gemini-cli/commands/openlife/flow/greenfield-service.md +20 -0
  643. package/dist-templates/gemini-cli/commands/openlife/flow/greenfield-ui.md +20 -0
  644. package/dist-templates/gemini-cli/commands/openlife/flow/qa-loop.md +20 -0
  645. package/dist-templates/gemini-cli/commands/openlife/flow/release.md +20 -0
  646. package/dist-templates/gemini-cli/commands/openlife/flow/spec-pipeline.md +20 -0
  647. package/dist-templates/gemini-cli/commands/openlife/flow/story-cycle.md +20 -0
  648. package/dist-templates/gemini-cli/commands/openlife/health.md +14 -0
  649. package/dist-templates/gemini-cli/commands/openlife/plan.md +14 -0
  650. package/dist-templates/gemini-cli/commands/openlife/review.md +14 -0
  651. package/dist-templates/gemini-cli/commands/openlife/ship.md +14 -0
  652. package/dist-templates/gemini-cli/commands/openlife/start.md +25 -0
  653. package/dist-templates/gemini-cli/commands/openlife/status.md +10 -10
  654. package/dist-templates/gemini-cli/commands/openlife/story.md +18 -0
  655. package/dist-templates/workflows/brownfield-fullstack.yaml +131 -0
  656. package/dist-templates/workflows/brownfield-service.yaml +111 -0
  657. package/dist-templates/workflows/brownfield-ui.yaml +115 -0
  658. package/dist-templates/workflows/continuous-deployment.yaml +139 -0
  659. package/dist-templates/workflows/epic-orchestration.yaml +101 -0
  660. package/dist-templates/workflows/greenfield-service.yaml +154 -0
  661. package/dist-templates/workflows/greenfield-ui.yaml +140 -0
  662. package/dist-templates/workflows/spec-pipeline.yaml +135 -0
  663. package/package.json +6 -2
  664. package/scripts/generate-slash-commands.js +220 -0
  665. package/scripts/generate-squad-workflow-stubs.js +144 -0
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ // src/orchestrator/ProjectMetadata.ts
3
+ // Read/write `.openlife/project.json` — records the project's mode
4
+ // (greenfield / brownfield / not-applicable), detected stack, and
5
+ // recommended entry workflow. Consumed by `/openlife:start` and the
6
+ // install wizard's project-mode phase.
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.projectMetadataPath = projectMetadataPath;
42
+ exports.readProjectMetadata = readProjectMetadata;
43
+ exports.writeProjectMetadata = writeProjectMetadata;
44
+ exports.detectStack = detectStack;
45
+ exports.detectMode = detectMode;
46
+ exports.recommendWorkflow = recommendWorkflow;
47
+ exports.buildMetadata = buildMetadata;
48
+ const fs = __importStar(require("fs"));
49
+ const path = __importStar(require("path"));
50
+ const FILE_REL = path.join('.openlife', 'project.json');
51
+ /** Resolve the metadata file path relative to a root (default: process.cwd()). */
52
+ function projectMetadataPath(root = process.cwd()) {
53
+ return path.join(root, FILE_REL);
54
+ }
55
+ /** Read existing metadata, returning null if file is missing or unparseable. */
56
+ function readProjectMetadata(root = process.cwd()) {
57
+ const fp = projectMetadataPath(root);
58
+ if (!fs.existsSync(fp))
59
+ return null;
60
+ try {
61
+ const parsed = JSON.parse(fs.readFileSync(fp, 'utf-8'));
62
+ if (!parsed.mode || !parsed.createdAt)
63
+ return null;
64
+ return {
65
+ mode: parsed.mode,
66
+ createdAt: parsed.createdAt,
67
+ updatedAt: parsed.updatedAt || parsed.createdAt,
68
+ detectedStack: parsed.detectedStack || [],
69
+ recommendedWorkflow: parsed.recommendedWorkflow || recommendWorkflow(parsed.mode, parsed.detectedStack || []),
70
+ notes: parsed.notes,
71
+ };
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ }
77
+ /** Write metadata, creating .openlife/ if necessary. */
78
+ function writeProjectMetadata(meta, root = process.cwd()) {
79
+ const fp = projectMetadataPath(root);
80
+ fs.mkdirSync(path.dirname(fp), { recursive: true });
81
+ fs.writeFileSync(fp, JSON.stringify(meta, null, 2) + '\n');
82
+ return fp;
83
+ }
84
+ /**
85
+ * Detect the project's stack from cwd. Cheap heuristic — file presence only,
86
+ * does not parse contents. Used to suggest a default mode and a recommended
87
+ * workflow in the install wizard.
88
+ */
89
+ function detectStack(root = process.cwd()) {
90
+ const stack = [];
91
+ if (fs.existsSync(path.join(root, 'package.json'))) {
92
+ stack.push('node');
93
+ try {
94
+ const pkg = JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf-8'));
95
+ if (pkg.devDependencies?.typescript || pkg.dependencies?.typescript)
96
+ stack.push('typescript');
97
+ if (pkg.dependencies?.react || pkg.dependencies?.next)
98
+ stack.push('react');
99
+ if (pkg.dependencies?.vue || pkg.dependencies?.nuxt)
100
+ stack.push('vue');
101
+ if (pkg.dependencies?.svelte)
102
+ stack.push('svelte');
103
+ if (pkg.dependencies?.express || pkg.dependencies?.fastify || pkg.dependencies?.hono)
104
+ stack.push('node-server');
105
+ }
106
+ catch { /* ignore */ }
107
+ }
108
+ if (fs.existsSync(path.join(root, 'go.mod')))
109
+ stack.push('go');
110
+ if (fs.existsSync(path.join(root, 'Cargo.toml')))
111
+ stack.push('rust');
112
+ if (fs.existsSync(path.join(root, 'pyproject.toml')) || fs.existsSync(path.join(root, 'requirements.txt')))
113
+ stack.push('python');
114
+ if (fs.existsSync(path.join(root, 'Gemfile')))
115
+ stack.push('ruby');
116
+ if (fs.existsSync(path.join(root, 'composer.json')))
117
+ stack.push('php');
118
+ if (fs.existsSync(path.join(root, 'pubspec.yaml')))
119
+ stack.push('flutter');
120
+ if (fs.existsSync(path.join(root, 'docker-compose.yml')) || fs.existsSync(path.join(root, 'Dockerfile')))
121
+ stack.push('docker');
122
+ if (fs.existsSync(path.join(root, 'supabase')))
123
+ stack.push('supabase');
124
+ if (fs.existsSync(path.join(root, 'prisma')))
125
+ stack.push('prisma');
126
+ return stack;
127
+ }
128
+ /**
129
+ * Detect mode hint from cwd. Returns `brownfield` if cwd appears to be an
130
+ * established project (presence of stack files AND > 10 git commits OR a
131
+ * non-trivial src/ folder); `greenfield` otherwise.
132
+ */
133
+ function detectMode(root = process.cwd()) {
134
+ const stack = detectStack(root);
135
+ if (stack.length === 0)
136
+ return 'greenfield';
137
+ const gitDir = path.join(root, '.git');
138
+ if (fs.existsSync(gitDir)) {
139
+ try {
140
+ const { execFileSync } = require('child_process');
141
+ const count = execFileSync('git', ['rev-list', '--count', 'HEAD'], {
142
+ cwd: root, encoding: 'utf-8', timeout: 5000,
143
+ }).trim();
144
+ if (parseInt(count, 10) > 10)
145
+ return 'brownfield';
146
+ }
147
+ catch { /* ignore */ }
148
+ }
149
+ // Has stack but no git history → likely greenfield setup-in-progress
150
+ return 'greenfield';
151
+ }
152
+ /** Map (mode, stack) to a recommended workflow id from dist-templates/workflows/. */
153
+ function recommendWorkflow(mode, stack) {
154
+ if (mode === 'not-applicable')
155
+ return 'spec-pipeline';
156
+ const hasUI = stack.some((s) => ['react', 'vue', 'svelte', 'flutter'].includes(s));
157
+ const hasServer = stack.some((s) => ['node-server', 'go', 'rust', 'python', 'ruby', 'php'].includes(s));
158
+ if (mode === 'brownfield') {
159
+ // Brownfield always starts with discovery the first time.
160
+ return 'brownfield-discovery';
161
+ }
162
+ // Greenfield
163
+ if (hasUI && hasServer)
164
+ return 'greenfield-fullstack';
165
+ if (hasUI)
166
+ return 'greenfield-ui';
167
+ if (hasServer)
168
+ return 'greenfield-service';
169
+ return 'greenfield-fullstack';
170
+ }
171
+ /** Convenience: build a fresh ProjectMetadata for a chosen mode. */
172
+ function buildMetadata(mode, root = process.cwd(), notes) {
173
+ const now = new Date().toISOString();
174
+ const stack = detectStack(root);
175
+ return {
176
+ mode,
177
+ createdAt: now,
178
+ updatedAt: now,
179
+ detectedStack: stack,
180
+ recommendedWorkflow: recommendWorkflow(mode, stack),
181
+ notes,
182
+ };
183
+ }
@@ -1,15 +1,60 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.SkillRegistryV2 = void 0;
37
+ const path = __importStar(require("path"));
4
38
  const FileSkillProvider_1 = require("./providers/FileSkillProvider");
5
39
  const CloudSkillProvider_1 = require("./providers/CloudSkillProvider");
6
40
  const CompositeSkillProvider_1 = require("./providers/CompositeSkillProvider");
41
+ // v1.8.3+: when no explicit OPENLIFE_SKILL_ROOT(S) is set, expose BOTH the
42
+ // user's project .catalog/skills (override) and the npm-package-bundled
43
+ // .catalog/skills (defaults). FileSkillProvider skips non-existent dirs.
44
+ function defaultSkillRoots() {
45
+ if (process.env.OPENLIFE_SKILL_ROOTS) {
46
+ return process.env.OPENLIFE_SKILL_ROOTS.split(':').filter(Boolean);
47
+ }
48
+ if (process.env.OPENLIFE_SKILL_ROOT)
49
+ return [process.env.OPENLIFE_SKILL_ROOT];
50
+ const cwdRoot = path.join(process.cwd(), '.catalog', 'skills');
51
+ const packageRoot = path.join(__dirname, '..', '..', '.catalog', 'skills');
52
+ return cwdRoot === packageRoot ? [cwdRoot] : [cwdRoot, packageRoot];
53
+ }
7
54
  class SkillRegistryV2 {
8
55
  provider;
9
56
  skills = [];
10
- constructor(provider = new CompositeSkillProvider_1.CompositeSkillProvider(new CloudSkillProvider_1.CloudSkillProvider(process.env.OPENLIFE_CLOUD_SKILLS_FILE || ''), new FileSkillProvider_1.FileSkillProvider(process.env.OPENLIFE_SKILL_ROOTS
11
- ? process.env.OPENLIFE_SKILL_ROOTS.split(':').filter(Boolean)
12
- : [process.env.OPENLIFE_SKILL_ROOT || `${process.cwd()}/.catalog/skills`]))) {
57
+ constructor(provider = new CompositeSkillProvider_1.CompositeSkillProvider(new CloudSkillProvider_1.CloudSkillProvider(process.env.OPENLIFE_CLOUD_SKILLS_FILE || ''), new FileSkillProvider_1.FileSkillProvider(defaultSkillRoots()))) {
13
58
  this.provider = provider;
14
59
  this.load();
15
60
  }
@@ -1,10 +1,56 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.SquadRegistry = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
4
39
  const FileSquadProvider_1 = require("./providers/FileSquadProvider");
5
40
  const CloudSquadProvider_1 = require("./providers/CloudSquadProvider");
6
41
  const CompositeSquadProvider_1 = require("./providers/CompositeSquadProvider");
7
- const defaultSquadRoot = () => process.env.OPENLIFE_SQUAD_ROOT || process.cwd() + '/.catalog/squads';
42
+ // v1.8.3+: prefer the user's project-local .catalog/squads (override) and
43
+ // fall back to the bundled package .catalog/squads when running from a
44
+ // globally-installed @openlife/cli. FileSquadProvider takes a single string,
45
+ // so we pick the right one upfront rather than refactoring the provider.
46
+ const defaultSquadRoot = () => {
47
+ if (process.env.OPENLIFE_SQUAD_ROOT)
48
+ return process.env.OPENLIFE_SQUAD_ROOT;
49
+ const cwdRoot = path.join(process.cwd(), '.catalog', 'squads');
50
+ if (fs.existsSync(cwdRoot))
51
+ return cwdRoot;
52
+ return path.join(__dirname, '..', '..', '.catalog', 'squads');
53
+ };
8
54
  class SquadRegistry {
9
55
  provider;
10
56
  squads = [];
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ // src/test_flow_run_cli.ts
3
+ // Smoke test for the v1.9.0 `openlife flow` CLI surface and
4
+ // `openlife project-mode` commands. Exercises the runtime path without
5
+ // requiring an LLM or external CI.
6
+ //
7
+ // Covers:
8
+ // 1. listFlows() returns all 12 expected workflows from bundled source
9
+ // 2. findFlow(id) resolves a known workflow
10
+ // 3. dryRunFlow(id) produces a phase plan with > 0 steps
11
+ // 4. ProjectMetadata read/write roundtrip
12
+ // 5. detectMode + recommendWorkflow produce sane defaults
13
+ // 6. project mode persistence file shape is valid JSON
14
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ var desc = Object.getOwnPropertyDescriptor(m, k);
17
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
+ desc = { enumerable: true, get: function() { return m[k]; } };
19
+ }
20
+ Object.defineProperty(o, k2, desc);
21
+ }) : (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ }));
25
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
26
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
27
+ }) : function(o, v) {
28
+ o["default"] = v;
29
+ });
30
+ var __importStar = (this && this.__importStar) || (function () {
31
+ var ownKeys = function(o) {
32
+ ownKeys = Object.getOwnPropertyNames || function (o) {
33
+ var ar = [];
34
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
+ return ar;
36
+ };
37
+ return ownKeys(o);
38
+ };
39
+ return function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ })();
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ const fs = __importStar(require("fs"));
49
+ const os = __importStar(require("os"));
50
+ const path = __importStar(require("path"));
51
+ const CommandFlowRunner_1 = require("./cli/CommandFlowRunner");
52
+ const ProjectMetadata_1 = require("./orchestrator/ProjectMetadata");
53
+ let passed = 0;
54
+ let failed = 0;
55
+ function check(name, cond, detail) {
56
+ if (cond) {
57
+ passed++;
58
+ console.log(` ✓ ${name}`);
59
+ }
60
+ else {
61
+ failed++;
62
+ console.error(` ✗ ${name}${detail ? ` — ${detail}` : ''}`);
63
+ }
64
+ }
65
+ const REPO_ROOT = path.resolve(__dirname, '..');
66
+ // ── 1. listFlows ───────────────────────────────────────────────────────
67
+ console.log('\n[1] CommandFlowRunner.listFlows()');
68
+ const flows = (0, CommandFlowRunner_1.listFlows)(REPO_ROOT);
69
+ check('at least 12 workflows surfaced', flows.length >= 12, `got ${flows.length}`);
70
+ const flowIds = new Set(flows.map(f => f.id));
71
+ for (const expected of ['greenfield-fullstack', 'greenfield-service', 'greenfield-ui',
72
+ 'brownfield-discovery', 'brownfield-fullstack', 'brownfield-service',
73
+ 'brownfield-ui', 'story-development-cycle', 'qa-loop',
74
+ 'spec-pipeline', 'epic-orchestration', 'continuous-deployment']) {
75
+ check(`flow "${expected}" listed`, flowIds.has(expected));
76
+ }
77
+ // Every entry has the right shape
78
+ for (const f of flows.slice(0, 3)) {
79
+ check(`flow "${f.id}" has type`, !!f.type);
80
+ check(`flow "${f.id}" has steps > 0`, f.steps > 0, `steps=${f.steps}`);
81
+ }
82
+ // ── 2. findFlow ────────────────────────────────────────────────────────
83
+ console.log('\n[2] CommandFlowRunner.findFlow()');
84
+ const greenfieldFs = (0, CommandFlowRunner_1.findFlow)('greenfield-fullstack', REPO_ROOT);
85
+ check('findFlow("greenfield-fullstack") returns a workflow', greenfieldFs !== null);
86
+ check('found workflow has correct id', greenfieldFs?.workflow.id === 'greenfield-fullstack');
87
+ check('source is bundled when running from repo', greenfieldFs?.source === 'bundled' || greenfieldFs?.source === 'local');
88
+ const notFound = (0, CommandFlowRunner_1.findFlow)('definitely-does-not-exist', REPO_ROOT);
89
+ check('findFlow returns null for unknown id', notFound === null);
90
+ // ── 3. dryRunFlow ──────────────────────────────────────────────────────
91
+ console.log('\n[3] CommandFlowRunner.dryRunFlow()');
92
+ const summary = (0, CommandFlowRunner_1.dryRunFlow)('greenfield-service', REPO_ROOT);
93
+ check('dryRunFlow("greenfield-service") returns summary', summary !== null);
94
+ if (summary) {
95
+ check('summary has id', summary.id === 'greenfield-service');
96
+ check('summary has > 5 steps', summary.steps.length > 5, `got ${summary.steps.length}`);
97
+ check('summary has at least one phase marker', summary.steps.some(s => s.phase !== undefined));
98
+ check('summary has at least one executable step', summary.steps.some(s => s.id !== undefined));
99
+ const rendered = (0, CommandFlowRunner_1.renderDryRun)(summary);
100
+ check('renderDryRun produces > 5 lines', rendered.length > 5);
101
+ }
102
+ // ── 4. ProjectMetadata roundtrip ───────────────────────────────────────
103
+ console.log('\n[4] ProjectMetadata read/write roundtrip');
104
+ const tmpRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'openlife-method-test-'));
105
+ try {
106
+ const meta = (0, ProjectMetadata_1.buildMetadata)('greenfield', tmpRoot, 'test-run-note');
107
+ const fp = (0, ProjectMetadata_1.writeProjectMetadata)(meta, tmpRoot);
108
+ check('writeProjectMetadata returns path', fp.endsWith('project.json'));
109
+ check('file was actually written', fs.existsSync(fp));
110
+ const readBack = (0, ProjectMetadata_1.readProjectMetadata)(tmpRoot);
111
+ check('readProjectMetadata returns metadata', readBack !== null);
112
+ check('read mode matches written mode', readBack?.mode === 'greenfield');
113
+ check('read createdAt is ISO string', /\d{4}-\d{2}-\d{2}T/.test(readBack?.createdAt || ''));
114
+ check('read recommendedWorkflow is non-empty', !!readBack?.recommendedWorkflow);
115
+ check('read notes preserved', readBack?.notes === 'test-run-note');
116
+ // Round-trip with brownfield
117
+ const meta2 = (0, ProjectMetadata_1.buildMetadata)('brownfield', tmpRoot);
118
+ (0, ProjectMetadata_1.writeProjectMetadata)(meta2, tmpRoot);
119
+ const readBack2 = (0, ProjectMetadata_1.readProjectMetadata)(tmpRoot);
120
+ check('brownfield mode roundtrips', readBack2?.mode === 'brownfield');
121
+ check('brownfield recommends discovery', readBack2?.recommendedWorkflow === 'brownfield-discovery');
122
+ }
123
+ finally {
124
+ fs.rmSync(tmpRoot, { recursive: true, force: true });
125
+ }
126
+ // ── 5. detectMode + recommendWorkflow ──────────────────────────────────
127
+ console.log('\n[5] Heuristic detection');
128
+ // Empty tmpdir → greenfield
129
+ const emptyDir = fs.mkdtempSync(path.join(os.tmpdir(), 'openlife-empty-'));
130
+ try {
131
+ const mode = (0, ProjectMetadata_1.detectMode)(emptyDir);
132
+ check('empty dir → greenfield', mode === 'greenfield');
133
+ const rec = (0, ProjectMetadata_1.recommendWorkflow)(mode, []);
134
+ check('greenfield + no stack → greenfield-fullstack', rec === 'greenfield-fullstack');
135
+ }
136
+ finally {
137
+ fs.rmSync(emptyDir, { recursive: true, force: true });
138
+ }
139
+ // Tmp with package.json but no git → still greenfield
140
+ const pkgDir = fs.mkdtempSync(path.join(os.tmpdir(), 'openlife-pkg-'));
141
+ try {
142
+ fs.writeFileSync(path.join(pkgDir, 'package.json'), JSON.stringify({ name: 'x', dependencies: { react: '*' } }));
143
+ const stack = (0, ProjectMetadata_1.detectStack)(pkgDir);
144
+ check('detectStack finds node', stack.includes('node'));
145
+ check('detectStack finds react', stack.includes('react'));
146
+ const rec = (0, ProjectMetadata_1.recommendWorkflow)('greenfield', stack);
147
+ check('greenfield + react → greenfield-ui (no server)', rec === 'greenfield-ui');
148
+ }
149
+ finally {
150
+ fs.rmSync(pkgDir, { recursive: true, force: true });
151
+ }
152
+ // Brownfield always recommends discovery
153
+ const rec3 = (0, ProjectMetadata_1.recommendWorkflow)('brownfield', ['node', 'typescript', 'react']);
154
+ check('brownfield → discovery regardless of stack', rec3 === 'brownfield-discovery');
155
+ // ── 6. JSON file shape ─────────────────────────────────────────────────
156
+ console.log('\n[6] project.json shape');
157
+ const tmpRoot2 = fs.mkdtempSync(path.join(os.tmpdir(), 'openlife-shape-'));
158
+ try {
159
+ const meta = (0, ProjectMetadata_1.buildMetadata)('greenfield', tmpRoot2);
160
+ (0, ProjectMetadata_1.writeProjectMetadata)(meta, tmpRoot2);
161
+ const raw = fs.readFileSync((0, ProjectMetadata_1.projectMetadataPath)(tmpRoot2), 'utf-8');
162
+ let parsed = {};
163
+ try {
164
+ parsed = JSON.parse(raw);
165
+ }
166
+ catch { /* shape check below catches it */ }
167
+ check('file is valid JSON', !!parsed.mode);
168
+ check('has createdAt', typeof parsed.createdAt === 'string');
169
+ check('has updatedAt', typeof parsed.updatedAt === 'string');
170
+ check('has detectedStack array', Array.isArray(parsed.detectedStack));
171
+ check('has recommendedWorkflow string', typeof parsed.recommendedWorkflow === 'string');
172
+ }
173
+ finally {
174
+ fs.rmSync(tmpRoot2, { recursive: true, force: true });
175
+ }
176
+ // ── Done ───────────────────────────────────────────────────────────────
177
+ console.log('');
178
+ console.log(`Results: ${passed} passed, ${failed} failed`);
179
+ if (failed > 0) {
180
+ console.error('TEST_FLOW_RUN_CLI_FAIL');
181
+ process.exit(1);
182
+ }
183
+ console.log('TEST_FLOW_RUN_CLI_OK');
@@ -99,9 +99,19 @@ function testUninstallRemovesAllInstalledArtifacts() {
99
99
  // The openlife/ commands namespace directory should be removed (it was all ours and is now empty).
100
100
  const cmdsNs = path.join(tempRoot, '.claude', 'commands', 'openlife');
101
101
  assert(!fs.existsSync(cmdsNs), `empty openlife/ commands namespace should be removed: ${cmdsNs}`);
102
- // Counted: 5 agents + 4 commands + 1 mcp snippet = 10 removals.
102
+ // Count dynamically from dist-templates/claude-code/. The uninstaller
103
+ // removes top-level files (agents + top-level commands + MCP snippet),
104
+ // not files inside nested commands/openlife/{agents,flow}/ subdirs.
105
+ const distTemplateRoot = path.join(__dirname, '..', 'dist-templates', 'claude-code');
106
+ const agentCount = fs.existsSync(path.join(distTemplateRoot, 'agents'))
107
+ ? fs.readdirSync(path.join(distTemplateRoot, 'agents')).filter((f) => f.endsWith('.md')).length
108
+ : 0;
109
+ const commandCount = fs.existsSync(path.join(distTemplateRoot, 'commands', 'openlife'))
110
+ ? fs.readdirSync(path.join(distTemplateRoot, 'commands', 'openlife')).filter((f) => f.endsWith('.md')).length
111
+ : 0;
112
+ const expectedRemoved = agentCount + commandCount + 1; // +1 for MCP snippet
103
113
  const removed = result.files.filter((f) => f.action === 'removed').length;
104
- assert(removed === 10, `expected 10 'removed' actions (5 agents + 4 commands + 1 mcp); got ${removed}: ` +
114
+ assert(removed === expectedRemoved, `expected ${expectedRemoved} 'removed' actions (${agentCount} agents + ${commandCount} top-level commands + 1 mcp); got ${removed}: ` +
105
115
  JSON.stringify(result.files.map((f) => `${path.basename(f.destination)}:${f.action}`)));
106
116
  }
107
117
  finally {