@openlife/cli 1.8.3 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/.catalog/agents/test-agent/AGENT.md +1 -1
  2. package/.catalog/mcps/test-mcp/mcp.json +1 -1
  3. package/.catalog/skills/sample-from-url/IMPORTED_REFERENCE.md +2 -2
  4. package/.catalog/skills/test-skill/REFERENCE.md +1 -1
  5. package/.catalog/squads/00-governance-advisory-board/workflows/wf-board-meeting.yaml +25 -0
  6. package/.catalog/squads/00-governance-advisory-board/workflows/wf-decision-framework.yaml +25 -0
  7. package/.catalog/squads/00-governance-c-level-squad/workflows/wf-board-presentation.yaml +25 -0
  8. package/.catalog/squads/00-governance-c-level-squad/workflows/wf-strategic-planning.yaml +25 -0
  9. package/.catalog/squads/00-governance-project-ops-squad/workflows/mission-to-project.yaml +25 -0
  10. package/.catalog/squads/00-governance-project-ops-squad/workflows/sprint-planning.yaml +25 -0
  11. package/.catalog/squads/00-governance-project-ops-squad/workflows/weekly-review.yaml +25 -0
  12. package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/workflows/tree-analysis-flow.yaml +25 -0
  13. package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/workflows/tree-execution-flow.yaml +25 -0
  14. package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/workflows/tree-planning-flow.yaml +25 -0
  15. package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/workflows/tree-resume-flow.yaml +25 -0
  16. package/.catalog/squads/02-product-growth-brand-squad/workflows/wf-brand-creation.yaml +25 -0
  17. package/.catalog/squads/02-product-growth-brand-squad/workflows/wf-rebrand.yaml +25 -0
  18. package/.catalog/squads/02-product-growth-copy-squad/workflows/wf-copy-review-cycle.yaml +25 -0
  19. package/.catalog/squads/02-product-growth-copy-squad/workflows/wf-full-copy-project.yaml +25 -0
  20. package/.catalog/squads/02-product-growth-design-squad/workflows/wf-design-system-creation.yaml +25 -0
  21. package/.catalog/squads/02-product-growth-design-squad/workflows/wf-feature-design.yaml +25 -0
  22. package/.catalog/squads/02-product-growth-hormozi-squad/workflows/wf-business-turnaround.yaml +25 -0
  23. package/.catalog/squads/02-product-growth-hormozi-squad/workflows/wf-offer-creation.yaml +25 -0
  24. package/.catalog/squads/02-product-growth-movement/workflows/wf-movement-launch.yaml +25 -0
  25. package/.catalog/squads/02-product-growth-saas-onboarding-activator/workflows/full-onboarding-activation-workflow.yaml +25 -0
  26. package/.catalog/squads/02-product-growth-saas-onboarding-activator/workflows/quick-engagement-boost-workflow.yaml +25 -0
  27. package/.catalog/squads/02-product-growth-sales-squad/workflows/followup-sequence.yaml +25 -0
  28. package/.catalog/squads/02-product-growth-sales-squad/workflows/full-sales-cycle.yaml +25 -0
  29. package/.catalog/squads/02-product-growth-sales-squad/workflows/proposal-flow.yaml +25 -0
  30. package/.catalog/squads/02-product-growth-storytelling/workflows/wf-brand-narrative.yaml +25 -0
  31. package/.catalog/squads/02-product-growth-storytelling/workflows/wf-story-development.yaml +25 -0
  32. package/.catalog/squads/02-product-growth-traffic-masters/workflows/wf-account-audit.yaml +25 -0
  33. package/.catalog/squads/02-product-growth-traffic-masters/workflows/wf-campaign-launch.yaml +25 -0
  34. package/.catalog/squads/03-engineering-quality-automated-code-review-squad/workflows/full-code-review-workflow.yaml +25 -0
  35. package/.catalog/squads/03-engineering-quality-automated-code-review-squad/workflows/quick-security-check-workflow.yaml +25 -0
  36. package/.catalog/squads/04-data-security-cybersecurity/workflows/wf-incident-response.yaml +25 -0
  37. package/.catalog/squads/04-data-security-cybersecurity/workflows/wf-pentest-engagement.yaml +25 -0
  38. package/.catalog/squads/04-data-security-data-quality-guardian/workflows/full-data-quality-audit-workflow.yaml +25 -0
  39. package/.catalog/squads/04-data-security-data-quality-guardian/workflows/quick-data-check-workflow.yaml +25 -0
  40. package/.catalog/squads/04-data-security-data-squad/workflows/wf-analytics-setup.yaml +25 -0
  41. package/.catalog/squads/04-data-security-data-squad/workflows/wf-growth-sprint.yaml +25 -0
  42. package/.catalog/squads/04-data-security-incident-response-squad/workflows/full-incident-response-workflow.yaml +25 -0
  43. package/.catalog/squads/04-data-security-incident-response-squad/workflows/rapid-triage-workflow.yaml +25 -0
  44. package/.catalog/squads/04-data-security-soc-alert-triage/workflows/full-alert-triage-workflow.yaml +25 -0
  45. package/.catalog/squads/04-data-security-soc-alert-triage/workflows/rapid-classification-workflow.yaml +25 -0
  46. package/.catalog/squads/05-domain-specialists-adaptive-tutor-k12/workflows/full-tutoring-cycle-workflow.yaml +25 -0
  47. package/.catalog/squads/05-domain-specialists-adaptive-tutor-k12/workflows/quick-practice-session-workflow.yaml +25 -0
  48. package/.catalog/squads/05-domain-specialists-ambient-clinical-scribe/workflows/full-documentation-workflow.yaml +25 -0
  49. package/.catalog/squads/05-domain-specialists-ambient-clinical-scribe/workflows/quick-note-workflow.yaml +25 -0
  50. package/.catalog/squads/05-domain-specialists-contract-review-squad/workflows/full-contract-review-workflow.yaml +25 -0
  51. package/.catalog/squads/05-domain-specialists-contract-review-squad/workflows/quick-risk-assessment-workflow.yaml +25 -0
  52. package/.catalog/squads/05-domain-specialists-crypto-token-forge/workflows/full-token-launch-workflow.yaml +25 -0
  53. package/.catalog/squads/05-domain-specialists-crypto-token-forge/workflows/memecoin-express-workflow.yaml +25 -0
  54. package/.catalog/squads/05-domain-specialists-crypto-token-forge/workflows/utility-token-launch-workflow.yaml +25 -0
  55. package/.catalog/squads/05-domain-specialists-resume-screener-squad/workflows/full-resume-screening-workflow.yaml +25 -0
  56. package/.catalog/squads/05-domain-specialists-resume-screener-squad/workflows/quick-skills-match-workflow.yaml +25 -0
  57. package/.catalog/squads/test-squad/SQUAD.md +1 -1
  58. package/.openlife/method/agents/atlas.md +102 -0
  59. package/.openlife/method/agents/builder.md +92 -0
  60. package/.openlife/method/agents/conductor.md +93 -0
  61. package/.openlife/method/agents/forge.md +96 -0
  62. package/.openlife/method/agents/genesis.md +115 -0
  63. package/.openlife/method/agents/lyra.md +85 -0
  64. package/.openlife/method/agents/maestro.md +92 -0
  65. package/.openlife/method/agents/mesh.md +101 -0
  66. package/.openlife/method/agents/prism.md +85 -0
  67. package/.openlife/method/agents/sentinel.md +115 -0
  68. package/.openlife/method/agents/steward.md +93 -0
  69. package/.openlife/method/agents/vortex.md +94 -0
  70. package/dist/cli/CommandFlowRunner.js +167 -0
  71. package/dist/cli/install/Phases.js +43 -0
  72. package/dist/index.js +118 -0
  73. package/dist/orchestrator/ProjectMetadata.js +183 -0
  74. package/dist/test_flow_run_cli.js +183 -0
  75. package/dist/test_host_uninstaller.js +12 -2
  76. package/dist/test_openlife_method_inventory.js +211 -0
  77. package/dist/test_workflow_e2e.js +10 -3
  78. package/dist-templates/claude-code/agents/openlife-atlas.md +12 -44
  79. package/dist-templates/claude-code/agents/openlife-builder.md +20 -0
  80. package/dist-templates/claude-code/agents/openlife-conductor.md +20 -0
  81. package/dist-templates/claude-code/agents/openlife-forge.md +12 -34
  82. package/dist-templates/claude-code/agents/openlife-genesis.md +12 -51
  83. package/dist-templates/claude-code/agents/openlife-lyra.md +12 -32
  84. package/dist-templates/claude-code/agents/openlife-maestro.md +27 -41
  85. package/dist-templates/claude-code/agents/openlife-mesh.md +20 -0
  86. package/dist-templates/claude-code/agents/openlife-prism.md +20 -0
  87. package/dist-templates/claude-code/agents/openlife-sentinel.md +20 -0
  88. package/dist-templates/claude-code/agents/openlife-steward.md +20 -0
  89. package/dist-templates/claude-code/agents/openlife-vortex.md +20 -0
  90. package/dist-templates/claude-code/commands/openlife/agents/atlas.md +28 -0
  91. package/dist-templates/claude-code/commands/openlife/agents/builder.md +28 -0
  92. package/dist-templates/claude-code/commands/openlife/agents/conductor.md +28 -0
  93. package/dist-templates/claude-code/commands/openlife/agents/forge.md +28 -0
  94. package/dist-templates/claude-code/commands/openlife/agents/genesis.md +28 -0
  95. package/dist-templates/claude-code/commands/openlife/agents/lyra.md +28 -0
  96. package/dist-templates/claude-code/commands/openlife/agents/maestro.md +28 -0
  97. package/dist-templates/claude-code/commands/openlife/agents/mesh.md +28 -0
  98. package/dist-templates/claude-code/commands/openlife/agents/prism.md +28 -0
  99. package/dist-templates/claude-code/commands/openlife/agents/sentinel.md +28 -0
  100. package/dist-templates/claude-code/commands/openlife/agents/steward.md +28 -0
  101. package/dist-templates/claude-code/commands/openlife/agents/vortex.md +28 -0
  102. package/dist-templates/claude-code/commands/openlife/ask.md +32 -9
  103. package/dist-templates/claude-code/commands/openlife/audit.md +43 -0
  104. package/dist-templates/claude-code/commands/openlife/doctor.md +9 -14
  105. package/dist-templates/claude-code/commands/openlife/dream.md +28 -13
  106. package/dist-templates/claude-code/commands/openlife/explore.md +32 -0
  107. package/dist-templates/claude-code/commands/openlife/flow/brownfield-discovery.md +38 -0
  108. package/dist-templates/claude-code/commands/openlife/flow/brownfield-fullstack.md +38 -0
  109. package/dist-templates/claude-code/commands/openlife/flow/brownfield-service.md +38 -0
  110. package/dist-templates/claude-code/commands/openlife/flow/brownfield-ui.md +38 -0
  111. package/dist-templates/claude-code/commands/openlife/flow/epic.md +38 -0
  112. package/dist-templates/claude-code/commands/openlife/flow/greenfield-fullstack.md +38 -0
  113. package/dist-templates/claude-code/commands/openlife/flow/greenfield-service.md +38 -0
  114. package/dist-templates/claude-code/commands/openlife/flow/greenfield-ui.md +38 -0
  115. package/dist-templates/claude-code/commands/openlife/flow/qa-loop.md +38 -0
  116. package/dist-templates/claude-code/commands/openlife/flow/release.md +38 -0
  117. package/dist-templates/claude-code/commands/openlife/flow/spec-pipeline.md +38 -0
  118. package/dist-templates/claude-code/commands/openlife/flow/story-cycle.md +38 -0
  119. package/dist-templates/claude-code/commands/openlife/health.md +37 -0
  120. package/dist-templates/claude-code/commands/openlife/plan.md +38 -0
  121. package/dist-templates/claude-code/commands/openlife/review.md +34 -0
  122. package/dist-templates/claude-code/commands/openlife/ship.md +35 -0
  123. package/dist-templates/claude-code/commands/openlife/start.md +38 -0
  124. package/dist-templates/claude-code/commands/openlife/status.md +8 -10
  125. package/dist-templates/claude-code/commands/openlife/story.md +34 -0
  126. package/dist-templates/codex/agents/openlife-atlas.md +12 -44
  127. package/dist-templates/codex/agents/openlife-builder.md +20 -0
  128. package/dist-templates/codex/agents/openlife-conductor.md +20 -0
  129. package/dist-templates/codex/agents/openlife-forge.md +12 -34
  130. package/dist-templates/codex/agents/openlife-genesis.md +12 -51
  131. package/dist-templates/codex/agents/openlife-lyra.md +12 -32
  132. package/dist-templates/codex/agents/openlife-maestro.md +27 -41
  133. package/dist-templates/codex/agents/openlife-mesh.md +20 -0
  134. package/dist-templates/codex/agents/openlife-prism.md +20 -0
  135. package/dist-templates/codex/agents/openlife-sentinel.md +20 -0
  136. package/dist-templates/codex/agents/openlife-steward.md +20 -0
  137. package/dist-templates/codex/agents/openlife-vortex.md +20 -0
  138. package/dist-templates/codex/commands/openlife/agents/atlas.md +28 -0
  139. package/dist-templates/codex/commands/openlife/agents/builder.md +28 -0
  140. package/dist-templates/codex/commands/openlife/agents/conductor.md +28 -0
  141. package/dist-templates/codex/commands/openlife/agents/forge.md +28 -0
  142. package/dist-templates/codex/commands/openlife/agents/genesis.md +28 -0
  143. package/dist-templates/codex/commands/openlife/agents/lyra.md +28 -0
  144. package/dist-templates/codex/commands/openlife/agents/maestro.md +28 -0
  145. package/dist-templates/codex/commands/openlife/agents/mesh.md +28 -0
  146. package/dist-templates/codex/commands/openlife/agents/prism.md +28 -0
  147. package/dist-templates/codex/commands/openlife/agents/sentinel.md +28 -0
  148. package/dist-templates/codex/commands/openlife/agents/steward.md +28 -0
  149. package/dist-templates/codex/commands/openlife/agents/vortex.md +28 -0
  150. package/dist-templates/codex/commands/openlife/ask.md +32 -9
  151. package/dist-templates/codex/commands/openlife/audit.md +43 -0
  152. package/dist-templates/codex/commands/openlife/doctor.md +9 -14
  153. package/dist-templates/codex/commands/openlife/dream.md +28 -13
  154. package/dist-templates/codex/commands/openlife/explore.md +32 -0
  155. package/dist-templates/codex/commands/openlife/flow/brownfield-discovery.md +38 -0
  156. package/dist-templates/codex/commands/openlife/flow/brownfield-fullstack.md +38 -0
  157. package/dist-templates/codex/commands/openlife/flow/brownfield-service.md +38 -0
  158. package/dist-templates/codex/commands/openlife/flow/brownfield-ui.md +38 -0
  159. package/dist-templates/codex/commands/openlife/flow/epic.md +38 -0
  160. package/dist-templates/codex/commands/openlife/flow/greenfield-fullstack.md +38 -0
  161. package/dist-templates/codex/commands/openlife/flow/greenfield-service.md +38 -0
  162. package/dist-templates/codex/commands/openlife/flow/greenfield-ui.md +38 -0
  163. package/dist-templates/codex/commands/openlife/flow/qa-loop.md +38 -0
  164. package/dist-templates/codex/commands/openlife/flow/release.md +38 -0
  165. package/dist-templates/codex/commands/openlife/flow/spec-pipeline.md +38 -0
  166. package/dist-templates/codex/commands/openlife/flow/story-cycle.md +38 -0
  167. package/dist-templates/codex/commands/openlife/health.md +37 -0
  168. package/dist-templates/codex/commands/openlife/plan.md +38 -0
  169. package/dist-templates/codex/commands/openlife/review.md +34 -0
  170. package/dist-templates/codex/commands/openlife/ship.md +35 -0
  171. package/dist-templates/codex/commands/openlife/start.md +38 -0
  172. package/dist-templates/codex/commands/openlife/status.md +8 -10
  173. package/dist-templates/codex/commands/openlife/story.md +34 -0
  174. package/dist-templates/gemini-cli/agents/openlife-atlas.md +12 -44
  175. package/dist-templates/gemini-cli/agents/openlife-builder.md +20 -0
  176. package/dist-templates/gemini-cli/agents/openlife-conductor.md +20 -0
  177. package/dist-templates/gemini-cli/agents/openlife-forge.md +12 -34
  178. package/dist-templates/gemini-cli/agents/openlife-genesis.md +12 -51
  179. package/dist-templates/gemini-cli/agents/openlife-lyra.md +12 -32
  180. package/dist-templates/gemini-cli/agents/openlife-maestro.md +27 -41
  181. package/dist-templates/gemini-cli/agents/openlife-mesh.md +20 -0
  182. package/dist-templates/gemini-cli/agents/openlife-prism.md +20 -0
  183. package/dist-templates/gemini-cli/agents/openlife-sentinel.md +20 -0
  184. package/dist-templates/gemini-cli/agents/openlife-steward.md +20 -0
  185. package/dist-templates/gemini-cli/agents/openlife-vortex.md +20 -0
  186. package/dist-templates/gemini-cli/commands/openlife/agents/atlas.md +28 -0
  187. package/dist-templates/gemini-cli/commands/openlife/agents/builder.md +28 -0
  188. package/dist-templates/gemini-cli/commands/openlife/agents/conductor.md +28 -0
  189. package/dist-templates/gemini-cli/commands/openlife/agents/forge.md +28 -0
  190. package/dist-templates/gemini-cli/commands/openlife/agents/genesis.md +28 -0
  191. package/dist-templates/gemini-cli/commands/openlife/agents/lyra.md +28 -0
  192. package/dist-templates/gemini-cli/commands/openlife/agents/maestro.md +28 -0
  193. package/dist-templates/gemini-cli/commands/openlife/agents/mesh.md +28 -0
  194. package/dist-templates/gemini-cli/commands/openlife/agents/prism.md +28 -0
  195. package/dist-templates/gemini-cli/commands/openlife/agents/sentinel.md +28 -0
  196. package/dist-templates/gemini-cli/commands/openlife/agents/steward.md +28 -0
  197. package/dist-templates/gemini-cli/commands/openlife/agents/vortex.md +28 -0
  198. package/dist-templates/gemini-cli/commands/openlife/ask.md +32 -9
  199. package/dist-templates/gemini-cli/commands/openlife/audit.md +43 -0
  200. package/dist-templates/gemini-cli/commands/openlife/doctor.md +9 -14
  201. package/dist-templates/gemini-cli/commands/openlife/dream.md +28 -13
  202. package/dist-templates/gemini-cli/commands/openlife/explore.md +32 -0
  203. package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-discovery.md +38 -0
  204. package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-fullstack.md +38 -0
  205. package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-service.md +38 -0
  206. package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-ui.md +38 -0
  207. package/dist-templates/gemini-cli/commands/openlife/flow/epic.md +38 -0
  208. package/dist-templates/gemini-cli/commands/openlife/flow/greenfield-fullstack.md +38 -0
  209. package/dist-templates/gemini-cli/commands/openlife/flow/greenfield-service.md +38 -0
  210. package/dist-templates/gemini-cli/commands/openlife/flow/greenfield-ui.md +38 -0
  211. package/dist-templates/gemini-cli/commands/openlife/flow/qa-loop.md +38 -0
  212. package/dist-templates/gemini-cli/commands/openlife/flow/release.md +38 -0
  213. package/dist-templates/gemini-cli/commands/openlife/flow/spec-pipeline.md +38 -0
  214. package/dist-templates/gemini-cli/commands/openlife/flow/story-cycle.md +38 -0
  215. package/dist-templates/gemini-cli/commands/openlife/health.md +37 -0
  216. package/dist-templates/gemini-cli/commands/openlife/plan.md +38 -0
  217. package/dist-templates/gemini-cli/commands/openlife/review.md +34 -0
  218. package/dist-templates/gemini-cli/commands/openlife/ship.md +35 -0
  219. package/dist-templates/gemini-cli/commands/openlife/start.md +38 -0
  220. package/dist-templates/gemini-cli/commands/openlife/status.md +8 -10
  221. package/dist-templates/gemini-cli/commands/openlife/story.md +34 -0
  222. package/dist-templates/workflows/brownfield-fullstack.yaml +131 -0
  223. package/dist-templates/workflows/brownfield-service.yaml +111 -0
  224. package/dist-templates/workflows/brownfield-ui.yaml +115 -0
  225. package/dist-templates/workflows/continuous-deployment.yaml +139 -0
  226. package/dist-templates/workflows/epic-orchestration.yaml +101 -0
  227. package/dist-templates/workflows/greenfield-service.yaml +154 -0
  228. package/dist-templates/workflows/greenfield-ui.yaml +140 -0
  229. package/dist-templates/workflows/spec-pipeline.yaml +135 -0
  230. package/package.json +5 -2
  231. package/scripts/generate-slash-commands.js +395 -0
  232. package/scripts/generate-squad-workflow-stubs.js +144 -0
@@ -0,0 +1,28 @@
1
+ ---
2
+ description: Activate Vortex — DevOps — EXCLUSIVE authority over git push, gh PR, MCP, releases
3
+ argument-hint: "[optional context]"
4
+ allowed-tools:
5
+ - Read
6
+ - Write
7
+ - Edit
8
+ - Bash(openlife:*)
9
+ - Grep
10
+ - Glob
11
+ - Agent
12
+ - AskUserQuestion
13
+ ---
14
+
15
+ **Mode:** host-native — you (the host LLM) become **Vortex** for this conversation.
16
+
17
+ Activation:
18
+
19
+ 1. Read `.openlife/method/agents/vortex.md` in full.
20
+ 2. Adopt the persona and execute the activation flow defined there:
21
+ - Display the persona greeting (icon + 1-line role)
22
+ - Show the top 5 commands
23
+ - HALT and await `*command` from the user
24
+ 3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
25
+
26
+ After the user's first `*command`, follow the persona's hand-off rules to suggest the next persona when appropriate.
27
+
28
+ This activation does NOT use any external model — you ARE the agent. The OpenLife Brain (external model chain) is reserved for headless / CI usage via `openlife ask` in a terminal.
@@ -1,14 +1,37 @@
1
1
  ---
2
- description: Ask the OpenLife Brain a question (uses primary/fallback model chain configured in models.json)
3
- argument-hint: <question>
4
- allowed-tools: Bash(openlife:*)
2
+ description: Ask OpenLife — the host LLM answers directly using the OpenLife method context (no external API key required)
3
+ argument-hint: "<question>"
4
+ allowed-tools:
5
+ - Read
6
+ - Write
7
+ - Edit
8
+ - Bash(openlife:*)
9
+ - Grep
10
+ - Glob
11
+ - Agent
12
+ - AskUserQuestion
5
13
  ---
6
14
 
7
- Run `openlife ask "$ARGUMENTS"` and return the Brain's answer.
15
+ **Mode:** host-native (the host LLM running this conversation answers directly — no external API key required).
8
16
 
9
- Notes:
10
- - The Brain uses the configured `models.json` chain (primary + fallbacks). If the primary fails, it falls through automatically.
11
- - The `OPENLIFE_ASK_TIMEOUT_MS` env var caps the total time (default 90s).
12
- - If the user wants a specific model, suggest they edit `models.json` or set the env var — don't pass model flags inline (the `ask` command doesn't accept them).
17
+ Answer the user's question directly using your own reasoning. You ARE the OpenLife Brain when invoked through a host CLI.
13
18
 
14
- After the answer comes back, present it cleanly to the user. If `ask` errors (timeout, all models failed), report the error and suggest `openlife system doctor` to diagnose.
19
+ Optional context (read only when relevant to the question):
20
+ - `.openlife/method/agents/lyra.md` — research / synthesis persona to adopt when the question is research-shaped
21
+ - `.openlife/project.json` — current project mode (greenfield/brownfield)
22
+ - `.catalog/` — user's agents, squads, skills, capabilities
23
+ - `dist-templates/workflows/` — bundled method workflows
24
+
25
+ If the question is open-ended or asks for OpenLife status, prefer answering from this conversation's existing context rather than reading files speculatively. If the user explicitly wants the external model chain (e.g., for batch / cron / cost-tracking reasons), they can invoke `openlife ask "..."` directly in a terminal or pass `--external` to this command.
26
+
27
+ ---
28
+
29
+ ### Want the external model chain instead?
30
+
31
+ If you specifically need the configured `models.json` chain (for cost-tracking, batch, or non-host contexts), run the command in a terminal:
32
+
33
+ ```bash
34
+ openlife ask "$ARGUMENTS"
35
+ ```
36
+
37
+ That path uses the Brain dispatcher and requires the appropriate API key in `.env`. The slash command (this one) intentionally bypasses external APIs to keep host-CLI usage zero-config.
@@ -0,0 +1,43 @@
1
+ ---
2
+ description: Run brownfield-discovery — host LLM orchestrates the 10-phase audit of an existing codebase
3
+ allowed-tools:
4
+ - Read
5
+ - Write
6
+ - Edit
7
+ - Bash(openlife:*)
8
+ - Grep
9
+ - Glob
10
+ - Agent
11
+ - AskUserQuestion
12
+ ---
13
+
14
+ **Mode:** host-native (the host LLM running this conversation answers directly — no external API key required).
15
+
16
+ Orchestrate the brownfield-discovery workflow yourself, playing multiple personas inline.
17
+
18
+ 1. Read `dist-templates/workflows/brownfield-discovery.yaml` to understand the 10 phases
19
+ 2. Walk through:
20
+ - Phase 1 (Atlas): system-architecture.md
21
+ - Phase 2 (Mesh, conditional): SCHEMA.md + DB-AUDIT.md
22
+ - Phase 3 (Prism, conditional): frontend-spec.md
23
+ - Phase 4 (Atlas): technical-debt-DRAFT.md
24
+ - Phase 5 (Mesh): db-specialist-review.md
25
+ - Phase 6 (Prism): ux-specialist-review.md
26
+ - Phase 7 (Sentinel): qa-review.md (gate: APPROVED / NEEDS WORK)
27
+ - Phase 8 (Atlas): technical-debt-assessment.md (final)
28
+ - Phase 9 (Lyra): TECHNICAL-DEBT-REPORT.md (executive)
29
+ - Phase 10 (Genesis): Epic + stories ready for backlog
30
+
31
+ Each phase ends with the user OK'ing before the next.
32
+
33
+ ---
34
+
35
+ ### Want the external model chain instead?
36
+
37
+ If you specifically need the configured `models.json` chain (for cost-tracking, batch, or non-host contexts), run the command in a terminal:
38
+
39
+ ```bash
40
+ openlife audit "$ARGUMENTS"
41
+ ```
42
+
43
+ That path uses the Brain dispatcher and requires the appropriate API key in `.env`. The slash command (this one) intentionally bypasses external APIs to keep host-CLI usage zero-config.
@@ -1,19 +1,14 @@
1
1
  ---
2
2
  description: Run OpenLife health checks (API keys, model chain, runtime catalogs, daemon state)
3
- allowed-tools: Bash(openlife:*)
3
+ allowed-tools:
4
+ - Read
5
+ - Bash(openlife:*)
6
+ - Grep
7
+ - Glob
8
+ - Agent
9
+ - AskUserQuestion
4
10
  ---
5
11
 
6
- Run `openlife system doctor` and walk the user through the results.
12
+ Run `openlife system doctor` and walk the user through results.
7
13
 
8
- For each failed check:
9
- 1. Quote the failure line
10
- 2. Explain in 1 sentence what the check verifies
11
- 3. Suggest the concrete fix (usually setting an env var or running a follow-up command)
12
-
13
- Common failures and fixes:
14
- - **Missing `GEMINI_API_KEY` / `OPENAI_API_KEY` / `ANTHROPIC_API_KEY`** → add to `.env` at project root
15
- - **Missing `TELEGRAM_BOT_TOKEN`** → only required if profile is `autonomous`
16
- - **Catalog empty** → run `openlife system setup` (likely incomplete install)
17
- - **Ollama not reachable** → optional unless `OPENLIFE_ENABLE_OLLAMA=true`
18
-
19
- If everything passes, say so concisely — don't pad.
14
+ For each failed check: quote the line, explain in 1 sentence what it verifies, suggest the concrete fix.
@@ -1,20 +1,35 @@
1
1
  ---
2
- description: Run the OpenLife Dream Organizer — surfaces ideas, pending stories, and prioritization from accumulated context
3
- allowed-tools: Bash(openlife:*)
2
+ description: Dream Organizer — surface ideas, pending stories, and prioritization from accumulated context (host LLM answers directly)
3
+ allowed-tools:
4
+ - Read
5
+ - Write
6
+ - Edit
7
+ - Bash(openlife:*)
8
+ - Grep
9
+ - Glob
10
+ - Agent
11
+ - AskUserQuestion
4
12
  ---
5
13
 
6
- Run `openlife dream` (the Dream Organizer) and present the output as a ranked list of next actions for the user.
14
+ **Mode:** host-native (the host LLM running this conversation answers directly no external API key required).
7
15
 
8
- The Dream Organizer reads:
9
- - Conversation memory (last sessions)
10
- - Pending stories in `docs/stories/`
11
- - Open governance consents in `.openlife/governance-consents.json`
12
- - Mission state in `.openlife/`
16
+ Run the OpenLife Dream Organizer using your own reasoning, not an external model.
13
17
 
14
- Format the output as:
18
+ 1. Read recent context from this conversation + any planning files the user has open
19
+ 2. Optionally read `.catalog/` for project-specific ideas already captured
20
+ 3. Surface unprioritized ideas, pending stories, and recommendations grouped by theme
21
+ 4. Be opinionated about priority order — don't return a flat list
15
22
 
16
- 1. **Top 3 priorities** the highest-signal items with one-line justification
17
- 2. **Deferred** — items the Dream Organizer parked
18
- 3. **Open questions** — anything the user needs to decide before work can proceed
23
+ If the user wants the external model chain for richer ideation: `openlife dream "..."` in a terminal.
19
24
 
20
- Don't make up items the command didn't return.
25
+ ---
26
+
27
+ ### Want the external model chain instead?
28
+
29
+ If you specifically need the configured `models.json` chain (for cost-tracking, batch, or non-host contexts), run the command in a terminal:
30
+
31
+ ```bash
32
+ openlife dream "$ARGUMENTS"
33
+ ```
34
+
35
+ That path uses the Brain dispatcher and requires the appropriate API key in `.env`. The slash command (this one) intentionally bypasses external APIs to keep host-CLI usage zero-config.
@@ -0,0 +1,32 @@
1
+ ---
2
+ description: Exploratory ideation — host LLM acts as Lyra for divergent brainstorming then convergent narrative
3
+ allowed-tools:
4
+ - Read
5
+ - Write
6
+ - Edit
7
+ - Bash(openlife:*)
8
+ - Grep
9
+ - Glob
10
+ - Agent
11
+ - AskUserQuestion
12
+ ---
13
+
14
+ **Mode:** host-native (the host LLM running this conversation answers directly — no external API key required).
15
+
16
+ Read `.openlife/method/agents/lyra.md`, become Lyra, and run `*brainstorm "$ARGUMENTS"`.
17
+
18
+ Surface options + tradeoffs. Mark confidence per claim (high / medium / low). Cite sources when claims are non-obvious.
19
+
20
+ Do NOT commit to a plan in this command — that's `/openlife:plan`. Explore is divergent; Plan is convergent.
21
+
22
+ ---
23
+
24
+ ### Want the external model chain instead?
25
+
26
+ If you specifically need the configured `models.json` chain (for cost-tracking, batch, or non-host contexts), run the command in a terminal:
27
+
28
+ ```bash
29
+ openlife explore "$ARGUMENTS"
30
+ ```
31
+
32
+ That path uses the Brain dispatcher and requires the appropriate API key in `.env`. The slash command (this one) intentionally bypasses external APIs to keep host-CLI usage zero-config.
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: Brownfield Discovery: 10-phase audit of an existing codebase
3
+ argument-hint: "[--dry-run] [--vars key=value]"
4
+ allowed-tools:
5
+ - Read
6
+ - Bash(openlife:*)
7
+ - Grep
8
+ - Glob
9
+ - Agent
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ **Mode:** host-native — you (the host LLM) orchestrate the `brownfield-discovery` workflow yourself, playing the personas as needed.
14
+
15
+ ### Step 1 — Load the workflow definition
16
+
17
+ Read `dist-templates/workflows/brownfield-discovery.yaml` (project local override at `.openlife/method/workflows/brownfield-discovery.yaml` or `.catalog/workflows/brownfield-discovery.yaml` takes precedence if present).
18
+
19
+ If `$ARGUMENTS` contains `--dry-run`, ALSO shell out to `openlife flow run brownfield-discovery --dry-run` to print the phase plan, then STOP.
20
+
21
+ ### Step 2 — Walk the phases
22
+
23
+ For each phase in the workflow's `sequence`:
24
+
25
+ 1. Announce which phase you're entering and which persona owns this phase (the `agent:` field on the step)
26
+ 2. Read `.openlife/method/agents/<persona-id>.md` for the active persona — adopt that persona for this phase
27
+ 3. Execute the step's `action` using the persona's discipline (commands, hand-off rules, anti-patterns)
28
+ 4. Produce the artifacts listed in `creates:` — write them to the paths declared in the YAML
29
+ 5. If `elicit: true`, ask the user via AskUserQuestion before proceeding
30
+ 6. Hand off to the next phase's persona; announce the handoff
31
+
32
+ ### Step 3 — Surface failures explicitly
33
+
34
+ On any step failure: identify the failing step, the active persona, and offer to escalate to `@openlife-maestro` (read `.openlife/method/agents/maestro.md`).
35
+
36
+ ### Why host-native, not shell?
37
+
38
+ Running the workflow this way uses your reasoning (the host LLM) instead of the external Brain chain. Zero API key needed for orchestration. If the user wants the external Brain to drive (headless / batch / cron), they can run `openlife flow run brownfield-discovery "$ARGUMENTS"` in a terminal.
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: Brownfield Full-Stack: enhance an existing full-stack app
3
+ argument-hint: "[--dry-run] [--vars key=value]"
4
+ allowed-tools:
5
+ - Read
6
+ - Bash(openlife:*)
7
+ - Grep
8
+ - Glob
9
+ - Agent
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ **Mode:** host-native — you (the host LLM) orchestrate the `brownfield-fullstack` workflow yourself, playing the personas as needed.
14
+
15
+ ### Step 1 — Load the workflow definition
16
+
17
+ Read `dist-templates/workflows/brownfield-fullstack.yaml` (project local override at `.openlife/method/workflows/brownfield-fullstack.yaml` or `.catalog/workflows/brownfield-fullstack.yaml` takes precedence if present).
18
+
19
+ If `$ARGUMENTS` contains `--dry-run`, ALSO shell out to `openlife flow run brownfield-fullstack --dry-run` to print the phase plan, then STOP.
20
+
21
+ ### Step 2 — Walk the phases
22
+
23
+ For each phase in the workflow's `sequence`:
24
+
25
+ 1. Announce which phase you're entering and which persona owns this phase (the `agent:` field on the step)
26
+ 2. Read `.openlife/method/agents/<persona-id>.md` for the active persona — adopt that persona for this phase
27
+ 3. Execute the step's `action` using the persona's discipline (commands, hand-off rules, anti-patterns)
28
+ 4. Produce the artifacts listed in `creates:` — write them to the paths declared in the YAML
29
+ 5. If `elicit: true`, ask the user via AskUserQuestion before proceeding
30
+ 6. Hand off to the next phase's persona; announce the handoff
31
+
32
+ ### Step 3 — Surface failures explicitly
33
+
34
+ On any step failure: identify the failing step, the active persona, and offer to escalate to `@openlife-maestro` (read `.openlife/method/agents/maestro.md`).
35
+
36
+ ### Why host-native, not shell?
37
+
38
+ Running the workflow this way uses your reasoning (the host LLM) instead of the external Brain chain. Zero API key needed for orchestration. If the user wants the external Brain to drive (headless / batch / cron), they can run `openlife flow run brownfield-fullstack "$ARGUMENTS"` in a terminal.
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: Brownfield Service: modify an existing service / API
3
+ argument-hint: "[--dry-run] [--vars key=value]"
4
+ allowed-tools:
5
+ - Read
6
+ - Bash(openlife:*)
7
+ - Grep
8
+ - Glob
9
+ - Agent
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ **Mode:** host-native — you (the host LLM) orchestrate the `brownfield-service` workflow yourself, playing the personas as needed.
14
+
15
+ ### Step 1 — Load the workflow definition
16
+
17
+ Read `dist-templates/workflows/brownfield-service.yaml` (project local override at `.openlife/method/workflows/brownfield-service.yaml` or `.catalog/workflows/brownfield-service.yaml` takes precedence if present).
18
+
19
+ If `$ARGUMENTS` contains `--dry-run`, ALSO shell out to `openlife flow run brownfield-service --dry-run` to print the phase plan, then STOP.
20
+
21
+ ### Step 2 — Walk the phases
22
+
23
+ For each phase in the workflow's `sequence`:
24
+
25
+ 1. Announce which phase you're entering and which persona owns this phase (the `agent:` field on the step)
26
+ 2. Read `.openlife/method/agents/<persona-id>.md` for the active persona — adopt that persona for this phase
27
+ 3. Execute the step's `action` using the persona's discipline (commands, hand-off rules, anti-patterns)
28
+ 4. Produce the artifacts listed in `creates:` — write them to the paths declared in the YAML
29
+ 5. If `elicit: true`, ask the user via AskUserQuestion before proceeding
30
+ 6. Hand off to the next phase's persona; announce the handoff
31
+
32
+ ### Step 3 — Surface failures explicitly
33
+
34
+ On any step failure: identify the failing step, the active persona, and offer to escalate to `@openlife-maestro` (read `.openlife/method/agents/maestro.md`).
35
+
36
+ ### Why host-native, not shell?
37
+
38
+ Running the workflow this way uses your reasoning (the host LLM) instead of the external Brain chain. Zero API key needed for orchestration. If the user wants the external Brain to drive (headless / batch / cron), they can run `openlife flow run brownfield-service "$ARGUMENTS"` in a terminal.
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: Brownfield UI: refactor or enhance an existing UI
3
+ argument-hint: "[--dry-run] [--vars key=value]"
4
+ allowed-tools:
5
+ - Read
6
+ - Bash(openlife:*)
7
+ - Grep
8
+ - Glob
9
+ - Agent
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ **Mode:** host-native — you (the host LLM) orchestrate the `brownfield-ui` workflow yourself, playing the personas as needed.
14
+
15
+ ### Step 1 — Load the workflow definition
16
+
17
+ Read `dist-templates/workflows/brownfield-ui.yaml` (project local override at `.openlife/method/workflows/brownfield-ui.yaml` or `.catalog/workflows/brownfield-ui.yaml` takes precedence if present).
18
+
19
+ If `$ARGUMENTS` contains `--dry-run`, ALSO shell out to `openlife flow run brownfield-ui --dry-run` to print the phase plan, then STOP.
20
+
21
+ ### Step 2 — Walk the phases
22
+
23
+ For each phase in the workflow's `sequence`:
24
+
25
+ 1. Announce which phase you're entering and which persona owns this phase (the `agent:` field on the step)
26
+ 2. Read `.openlife/method/agents/<persona-id>.md` for the active persona — adopt that persona for this phase
27
+ 3. Execute the step's `action` using the persona's discipline (commands, hand-off rules, anti-patterns)
28
+ 4. Produce the artifacts listed in `creates:` — write them to the paths declared in the YAML
29
+ 5. If `elicit: true`, ask the user via AskUserQuestion before proceeding
30
+ 6. Hand off to the next phase's persona; announce the handoff
31
+
32
+ ### Step 3 — Surface failures explicitly
33
+
34
+ On any step failure: identify the failing step, the active persona, and offer to escalate to `@openlife-maestro` (read `.openlife/method/agents/maestro.md`).
35
+
36
+ ### Why host-native, not shell?
37
+
38
+ Running the workflow this way uses your reasoning (the host LLM) instead of the external Brain chain. Zero API key needed for orchestration. If the user wants the external Brain to drive (headless / batch / cron), they can run `openlife flow run brownfield-ui "$ARGUMENTS"` in a terminal.
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: Epic Orchestration: coordinate multiple dependent stories within an epic
3
+ argument-hint: "[--dry-run] [--vars key=value]"
4
+ allowed-tools:
5
+ - Read
6
+ - Bash(openlife:*)
7
+ - Grep
8
+ - Glob
9
+ - Agent
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ **Mode:** host-native — you (the host LLM) orchestrate the `epic-orchestration` workflow yourself, playing the personas as needed.
14
+
15
+ ### Step 1 — Load the workflow definition
16
+
17
+ Read `dist-templates/workflows/epic-orchestration.yaml` (project local override at `.openlife/method/workflows/epic-orchestration.yaml` or `.catalog/workflows/epic-orchestration.yaml` takes precedence if present).
18
+
19
+ If `$ARGUMENTS` contains `--dry-run`, ALSO shell out to `openlife flow run epic-orchestration --dry-run` to print the phase plan, then STOP.
20
+
21
+ ### Step 2 — Walk the phases
22
+
23
+ For each phase in the workflow's `sequence`:
24
+
25
+ 1. Announce which phase you're entering and which persona owns this phase (the `agent:` field on the step)
26
+ 2. Read `.openlife/method/agents/<persona-id>.md` for the active persona — adopt that persona for this phase
27
+ 3. Execute the step's `action` using the persona's discipline (commands, hand-off rules, anti-patterns)
28
+ 4. Produce the artifacts listed in `creates:` — write them to the paths declared in the YAML
29
+ 5. If `elicit: true`, ask the user via AskUserQuestion before proceeding
30
+ 6. Hand off to the next phase's persona; announce the handoff
31
+
32
+ ### Step 3 — Surface failures explicitly
33
+
34
+ On any step failure: identify the failing step, the active persona, and offer to escalate to `@openlife-maestro` (read `.openlife/method/agents/maestro.md`).
35
+
36
+ ### Why host-native, not shell?
37
+
38
+ Running the workflow this way uses your reasoning (the host LLM) instead of the external Brain chain. Zero API key needed for orchestration. If the user wants the external Brain to drive (headless / batch / cron), they can run `openlife flow run epic-orchestration "$ARGUMENTS"` in a terminal.
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: Greenfield Full-Stack: end-to-end new app from concept to shippable stories
3
+ argument-hint: "[--dry-run] [--vars key=value]"
4
+ allowed-tools:
5
+ - Read
6
+ - Bash(openlife:*)
7
+ - Grep
8
+ - Glob
9
+ - Agent
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ **Mode:** host-native — you (the host LLM) orchestrate the `greenfield-fullstack` workflow yourself, playing the personas as needed.
14
+
15
+ ### Step 1 — Load the workflow definition
16
+
17
+ Read `dist-templates/workflows/greenfield-fullstack.yaml` (project local override at `.openlife/method/workflows/greenfield-fullstack.yaml` or `.catalog/workflows/greenfield-fullstack.yaml` takes precedence if present).
18
+
19
+ If `$ARGUMENTS` contains `--dry-run`, ALSO shell out to `openlife flow run greenfield-fullstack --dry-run` to print the phase plan, then STOP.
20
+
21
+ ### Step 2 — Walk the phases
22
+
23
+ For each phase in the workflow's `sequence`:
24
+
25
+ 1. Announce which phase you're entering and which persona owns this phase (the `agent:` field on the step)
26
+ 2. Read `.openlife/method/agents/<persona-id>.md` for the active persona — adopt that persona for this phase
27
+ 3. Execute the step's `action` using the persona's discipline (commands, hand-off rules, anti-patterns)
28
+ 4. Produce the artifacts listed in `creates:` — write them to the paths declared in the YAML
29
+ 5. If `elicit: true`, ask the user via AskUserQuestion before proceeding
30
+ 6. Hand off to the next phase's persona; announce the handoff
31
+
32
+ ### Step 3 — Surface failures explicitly
33
+
34
+ On any step failure: identify the failing step, the active persona, and offer to escalate to `@openlife-maestro` (read `.openlife/method/agents/maestro.md`).
35
+
36
+ ### Why host-native, not shell?
37
+
38
+ Running the workflow this way uses your reasoning (the host LLM) instead of the external Brain chain. Zero API key needed for orchestration. If the user wants the external Brain to drive (headless / batch / cron), they can run `openlife flow run greenfield-fullstack "$ARGUMENTS"` in a terminal.
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: Greenfield Service: backend-only / API-only / CLI / worker / MCP server
3
+ argument-hint: "[--dry-run] [--vars key=value]"
4
+ allowed-tools:
5
+ - Read
6
+ - Bash(openlife:*)
7
+ - Grep
8
+ - Glob
9
+ - Agent
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ **Mode:** host-native — you (the host LLM) orchestrate the `greenfield-service` workflow yourself, playing the personas as needed.
14
+
15
+ ### Step 1 — Load the workflow definition
16
+
17
+ Read `dist-templates/workflows/greenfield-service.yaml` (project local override at `.openlife/method/workflows/greenfield-service.yaml` or `.catalog/workflows/greenfield-service.yaml` takes precedence if present).
18
+
19
+ If `$ARGUMENTS` contains `--dry-run`, ALSO shell out to `openlife flow run greenfield-service --dry-run` to print the phase plan, then STOP.
20
+
21
+ ### Step 2 — Walk the phases
22
+
23
+ For each phase in the workflow's `sequence`:
24
+
25
+ 1. Announce which phase you're entering and which persona owns this phase (the `agent:` field on the step)
26
+ 2. Read `.openlife/method/agents/<persona-id>.md` for the active persona — adopt that persona for this phase
27
+ 3. Execute the step's `action` using the persona's discipline (commands, hand-off rules, anti-patterns)
28
+ 4. Produce the artifacts listed in `creates:` — write them to the paths declared in the YAML
29
+ 5. If `elicit: true`, ask the user via AskUserQuestion before proceeding
30
+ 6. Hand off to the next phase's persona; announce the handoff
31
+
32
+ ### Step 3 — Surface failures explicitly
33
+
34
+ On any step failure: identify the failing step, the active persona, and offer to escalate to `@openlife-maestro` (read `.openlife/method/agents/maestro.md`).
35
+
36
+ ### Why host-native, not shell?
37
+
38
+ Running the workflow this way uses your reasoning (the host LLM) instead of the external Brain chain. Zero API key needed for orchestration. If the user wants the external Brain to drive (headless / batch / cron), they can run `openlife flow run greenfield-service "$ARGUMENTS"` in a terminal.
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: Greenfield UI: frontend-only / SPA / landing / admin panel / docs site
3
+ argument-hint: "[--dry-run] [--vars key=value]"
4
+ allowed-tools:
5
+ - Read
6
+ - Bash(openlife:*)
7
+ - Grep
8
+ - Glob
9
+ - Agent
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ **Mode:** host-native — you (the host LLM) orchestrate the `greenfield-ui` workflow yourself, playing the personas as needed.
14
+
15
+ ### Step 1 — Load the workflow definition
16
+
17
+ Read `dist-templates/workflows/greenfield-ui.yaml` (project local override at `.openlife/method/workflows/greenfield-ui.yaml` or `.catalog/workflows/greenfield-ui.yaml` takes precedence if present).
18
+
19
+ If `$ARGUMENTS` contains `--dry-run`, ALSO shell out to `openlife flow run greenfield-ui --dry-run` to print the phase plan, then STOP.
20
+
21
+ ### Step 2 — Walk the phases
22
+
23
+ For each phase in the workflow's `sequence`:
24
+
25
+ 1. Announce which phase you're entering and which persona owns this phase (the `agent:` field on the step)
26
+ 2. Read `.openlife/method/agents/<persona-id>.md` for the active persona — adopt that persona for this phase
27
+ 3. Execute the step's `action` using the persona's discipline (commands, hand-off rules, anti-patterns)
28
+ 4. Produce the artifacts listed in `creates:` — write them to the paths declared in the YAML
29
+ 5. If `elicit: true`, ask the user via AskUserQuestion before proceeding
30
+ 6. Hand off to the next phase's persona; announce the handoff
31
+
32
+ ### Step 3 — Surface failures explicitly
33
+
34
+ On any step failure: identify the failing step, the active persona, and offer to escalate to `@openlife-maestro` (read `.openlife/method/agents/maestro.md`).
35
+
36
+ ### Why host-native, not shell?
37
+
38
+ Running the workflow this way uses your reasoning (the host LLM) instead of the external Brain chain. Zero API key needed for orchestration. If the user wants the external Brain to drive (headless / batch / cron), they can run `openlife flow run greenfield-ui "$ARGUMENTS"` in a terminal.
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: QA Loop: iterative review-fix cycle (max 5 iterations) between Sentinel and Builder
3
+ argument-hint: "[--dry-run] [--vars key=value]"
4
+ allowed-tools:
5
+ - Read
6
+ - Bash(openlife:*)
7
+ - Grep
8
+ - Glob
9
+ - Agent
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ **Mode:** host-native — you (the host LLM) orchestrate the `qa-loop` workflow yourself, playing the personas as needed.
14
+
15
+ ### Step 1 — Load the workflow definition
16
+
17
+ Read `dist-templates/workflows/qa-loop.yaml` (project local override at `.openlife/method/workflows/qa-loop.yaml` or `.catalog/workflows/qa-loop.yaml` takes precedence if present).
18
+
19
+ If `$ARGUMENTS` contains `--dry-run`, ALSO shell out to `openlife flow run qa-loop --dry-run` to print the phase plan, then STOP.
20
+
21
+ ### Step 2 — Walk the phases
22
+
23
+ For each phase in the workflow's `sequence`:
24
+
25
+ 1. Announce which phase you're entering and which persona owns this phase (the `agent:` field on the step)
26
+ 2. Read `.openlife/method/agents/<persona-id>.md` for the active persona — adopt that persona for this phase
27
+ 3. Execute the step's `action` using the persona's discipline (commands, hand-off rules, anti-patterns)
28
+ 4. Produce the artifacts listed in `creates:` — write them to the paths declared in the YAML
29
+ 5. If `elicit: true`, ask the user via AskUserQuestion before proceeding
30
+ 6. Hand off to the next phase's persona; announce the handoff
31
+
32
+ ### Step 3 — Surface failures explicitly
33
+
34
+ On any step failure: identify the failing step, the active persona, and offer to escalate to `@openlife-maestro` (read `.openlife/method/agents/maestro.md`).
35
+
36
+ ### Why host-native, not shell?
37
+
38
+ Running the workflow this way uses your reasoning (the host LLM) instead of the external Brain chain. Zero API key needed for orchestration. If the user wants the external Brain to drive (headless / batch / cron), they can run `openlife flow run qa-loop "$ARGUMENTS"` in a terminal.
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: Continuous Deployment: release pipeline driven by Vortex (PR → merge → tag → publish)
3
+ argument-hint: "[--dry-run] [--vars key=value]"
4
+ allowed-tools:
5
+ - Read
6
+ - Bash(openlife:*)
7
+ - Grep
8
+ - Glob
9
+ - Agent
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ **Mode:** host-native — you (the host LLM) orchestrate the `continuous-deployment` workflow yourself, playing the personas as needed.
14
+
15
+ ### Step 1 — Load the workflow definition
16
+
17
+ Read `dist-templates/workflows/continuous-deployment.yaml` (project local override at `.openlife/method/workflows/continuous-deployment.yaml` or `.catalog/workflows/continuous-deployment.yaml` takes precedence if present).
18
+
19
+ If `$ARGUMENTS` contains `--dry-run`, ALSO shell out to `openlife flow run continuous-deployment --dry-run` to print the phase plan, then STOP.
20
+
21
+ ### Step 2 — Walk the phases
22
+
23
+ For each phase in the workflow's `sequence`:
24
+
25
+ 1. Announce which phase you're entering and which persona owns this phase (the `agent:` field on the step)
26
+ 2. Read `.openlife/method/agents/<persona-id>.md` for the active persona — adopt that persona for this phase
27
+ 3. Execute the step's `action` using the persona's discipline (commands, hand-off rules, anti-patterns)
28
+ 4. Produce the artifacts listed in `creates:` — write them to the paths declared in the YAML
29
+ 5. If `elicit: true`, ask the user via AskUserQuestion before proceeding
30
+ 6. Hand off to the next phase's persona; announce the handoff
31
+
32
+ ### Step 3 — Surface failures explicitly
33
+
34
+ On any step failure: identify the failing step, the active persona, and offer to escalate to `@openlife-maestro` (read `.openlife/method/agents/maestro.md`).
35
+
36
+ ### Why host-native, not shell?
37
+
38
+ Running the workflow this way uses your reasoning (the host LLM) instead of the external Brain chain. Zero API key needed for orchestration. If the user wants the external Brain to drive (headless / batch / cron), they can run `openlife flow run continuous-deployment "$ARGUMENTS"` in a terminal.