@openlife/cli 1.9.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.
- package/.catalog/agents/test-agent/AGENT.md +1 -1
- package/.catalog/mcps/test-mcp/mcp.json +1 -1
- package/.catalog/skills/sample-from-url/IMPORTED_REFERENCE.md +2 -2
- package/.catalog/skills/test-skill/REFERENCE.md +1 -1
- package/.catalog/squads/test-squad/SQUAD.md +1 -1
- package/dist/test_openlife_method_inventory.js +31 -3
- package/dist-templates/claude-code/commands/openlife/agents/atlas.md +5 -1
- package/dist-templates/claude-code/commands/openlife/agents/builder.md +5 -1
- package/dist-templates/claude-code/commands/openlife/agents/conductor.md +5 -1
- package/dist-templates/claude-code/commands/openlife/agents/forge.md +5 -1
- package/dist-templates/claude-code/commands/openlife/agents/genesis.md +5 -1
- package/dist-templates/claude-code/commands/openlife/agents/lyra.md +5 -1
- package/dist-templates/claude-code/commands/openlife/agents/maestro.md +5 -1
- package/dist-templates/claude-code/commands/openlife/agents/mesh.md +5 -1
- package/dist-templates/claude-code/commands/openlife/agents/prism.md +5 -1
- package/dist-templates/claude-code/commands/openlife/agents/sentinel.md +5 -1
- package/dist-templates/claude-code/commands/openlife/agents/steward.md +5 -1
- package/dist-templates/claude-code/commands/openlife/agents/vortex.md +5 -1
- package/dist-templates/claude-code/commands/openlife/ask.md +23 -6
- package/dist-templates/claude-code/commands/openlife/audit.md +31 -2
- package/dist-templates/claude-code/commands/openlife/doctor.md +0 -2
- package/dist-templates/claude-code/commands/openlife/dream.md +23 -2
- package/dist-templates/claude-code/commands/openlife/explore.md +20 -2
- package/dist-templates/claude-code/commands/openlife/flow/brownfield-discovery.md +24 -6
- package/dist-templates/claude-code/commands/openlife/flow/brownfield-fullstack.md +24 -6
- package/dist-templates/claude-code/commands/openlife/flow/brownfield-service.md +24 -6
- package/dist-templates/claude-code/commands/openlife/flow/brownfield-ui.md +24 -6
- package/dist-templates/claude-code/commands/openlife/flow/epic.md +24 -6
- package/dist-templates/claude-code/commands/openlife/flow/greenfield-fullstack.md +24 -6
- package/dist-templates/claude-code/commands/openlife/flow/greenfield-service.md +24 -6
- package/dist-templates/claude-code/commands/openlife/flow/greenfield-ui.md +24 -6
- package/dist-templates/claude-code/commands/openlife/flow/qa-loop.md +24 -6
- package/dist-templates/claude-code/commands/openlife/flow/release.md +24 -6
- package/dist-templates/claude-code/commands/openlife/flow/spec-pipeline.md +24 -6
- package/dist-templates/claude-code/commands/openlife/flow/story-cycle.md +24 -6
- package/dist-templates/claude-code/commands/openlife/health.md +25 -2
- package/dist-templates/claude-code/commands/openlife/plan.md +26 -2
- package/dist-templates/claude-code/commands/openlife/review.md +22 -2
- package/dist-templates/claude-code/commands/openlife/ship.md +23 -2
- package/dist-templates/claude-code/commands/openlife/start.md +21 -8
- package/dist-templates/claude-code/commands/openlife/status.md +0 -2
- package/dist-templates/claude-code/commands/openlife/story.md +20 -4
- package/dist-templates/codex/commands/openlife/agents/atlas.md +5 -1
- package/dist-templates/codex/commands/openlife/agents/builder.md +5 -1
- package/dist-templates/codex/commands/openlife/agents/conductor.md +5 -1
- package/dist-templates/codex/commands/openlife/agents/forge.md +5 -1
- package/dist-templates/codex/commands/openlife/agents/genesis.md +5 -1
- package/dist-templates/codex/commands/openlife/agents/lyra.md +5 -1
- package/dist-templates/codex/commands/openlife/agents/maestro.md +5 -1
- package/dist-templates/codex/commands/openlife/agents/mesh.md +5 -1
- package/dist-templates/codex/commands/openlife/agents/prism.md +5 -1
- package/dist-templates/codex/commands/openlife/agents/sentinel.md +5 -1
- package/dist-templates/codex/commands/openlife/agents/steward.md +5 -1
- package/dist-templates/codex/commands/openlife/agents/vortex.md +5 -1
- package/dist-templates/codex/commands/openlife/ask.md +23 -6
- package/dist-templates/codex/commands/openlife/audit.md +31 -2
- package/dist-templates/codex/commands/openlife/doctor.md +0 -2
- package/dist-templates/codex/commands/openlife/dream.md +23 -2
- package/dist-templates/codex/commands/openlife/explore.md +20 -2
- package/dist-templates/codex/commands/openlife/flow/brownfield-discovery.md +24 -6
- package/dist-templates/codex/commands/openlife/flow/brownfield-fullstack.md +24 -6
- package/dist-templates/codex/commands/openlife/flow/brownfield-service.md +24 -6
- package/dist-templates/codex/commands/openlife/flow/brownfield-ui.md +24 -6
- package/dist-templates/codex/commands/openlife/flow/epic.md +24 -6
- package/dist-templates/codex/commands/openlife/flow/greenfield-fullstack.md +24 -6
- package/dist-templates/codex/commands/openlife/flow/greenfield-service.md +24 -6
- package/dist-templates/codex/commands/openlife/flow/greenfield-ui.md +24 -6
- package/dist-templates/codex/commands/openlife/flow/qa-loop.md +24 -6
- package/dist-templates/codex/commands/openlife/flow/release.md +24 -6
- package/dist-templates/codex/commands/openlife/flow/spec-pipeline.md +24 -6
- package/dist-templates/codex/commands/openlife/flow/story-cycle.md +24 -6
- package/dist-templates/codex/commands/openlife/health.md +25 -2
- package/dist-templates/codex/commands/openlife/plan.md +26 -2
- package/dist-templates/codex/commands/openlife/review.md +22 -2
- package/dist-templates/codex/commands/openlife/ship.md +23 -2
- package/dist-templates/codex/commands/openlife/start.md +21 -8
- package/dist-templates/codex/commands/openlife/status.md +0 -2
- package/dist-templates/codex/commands/openlife/story.md +20 -4
- package/dist-templates/gemini-cli/commands/openlife/agents/atlas.md +5 -1
- package/dist-templates/gemini-cli/commands/openlife/agents/builder.md +5 -1
- package/dist-templates/gemini-cli/commands/openlife/agents/conductor.md +5 -1
- package/dist-templates/gemini-cli/commands/openlife/agents/forge.md +5 -1
- package/dist-templates/gemini-cli/commands/openlife/agents/genesis.md +5 -1
- package/dist-templates/gemini-cli/commands/openlife/agents/lyra.md +5 -1
- package/dist-templates/gemini-cli/commands/openlife/agents/maestro.md +5 -1
- package/dist-templates/gemini-cli/commands/openlife/agents/mesh.md +5 -1
- package/dist-templates/gemini-cli/commands/openlife/agents/prism.md +5 -1
- package/dist-templates/gemini-cli/commands/openlife/agents/sentinel.md +5 -1
- package/dist-templates/gemini-cli/commands/openlife/agents/steward.md +5 -1
- package/dist-templates/gemini-cli/commands/openlife/agents/vortex.md +5 -1
- package/dist-templates/gemini-cli/commands/openlife/ask.md +23 -6
- package/dist-templates/gemini-cli/commands/openlife/audit.md +31 -2
- package/dist-templates/gemini-cli/commands/openlife/doctor.md +0 -2
- package/dist-templates/gemini-cli/commands/openlife/dream.md +23 -2
- package/dist-templates/gemini-cli/commands/openlife/explore.md +20 -2
- package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-discovery.md +24 -6
- package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-fullstack.md +24 -6
- package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-service.md +24 -6
- package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-ui.md +24 -6
- package/dist-templates/gemini-cli/commands/openlife/flow/epic.md +24 -6
- package/dist-templates/gemini-cli/commands/openlife/flow/greenfield-fullstack.md +24 -6
- package/dist-templates/gemini-cli/commands/openlife/flow/greenfield-service.md +24 -6
- package/dist-templates/gemini-cli/commands/openlife/flow/greenfield-ui.md +24 -6
- package/dist-templates/gemini-cli/commands/openlife/flow/qa-loop.md +24 -6
- package/dist-templates/gemini-cli/commands/openlife/flow/release.md +24 -6
- package/dist-templates/gemini-cli/commands/openlife/flow/spec-pipeline.md +24 -6
- package/dist-templates/gemini-cli/commands/openlife/flow/story-cycle.md +24 -6
- package/dist-templates/gemini-cli/commands/openlife/health.md +25 -2
- package/dist-templates/gemini-cli/commands/openlife/plan.md +26 -2
- package/dist-templates/gemini-cli/commands/openlife/review.md +22 -2
- package/dist-templates/gemini-cli/commands/openlife/ship.md +23 -2
- package/dist-templates/gemini-cli/commands/openlife/start.md +21 -8
- package/dist-templates/gemini-cli/commands/openlife/status.md +0 -2
- package/dist-templates/gemini-cli/commands/openlife/story.md +20 -4
- package/package.json +1 -1
- package/scripts/generate-slash-commands.js +209 -34
|
@@ -125,16 +125,44 @@ for (const id of EXPECTED_WORKFLOWS) {
|
|
|
125
125
|
console.log('[4] Slash commands per host');
|
|
126
126
|
const EXPECTED_TOP = ['ask', 'doctor', 'status', 'dream', 'start', 'plan', 'story', 'review', 'ship', 'explore', 'audit', 'health'];
|
|
127
127
|
const EXPECTED_FLOWS = ['greenfield-fullstack', 'greenfield-service', 'greenfield-ui', 'brownfield-discovery', 'brownfield-fullstack', 'brownfield-service', 'brownfield-ui', 'story-cycle', 'qa-loop', 'spec-pipeline', 'epic', 'release'];
|
|
128
|
+
// v1.10.0+: commands classified as host-native must NOT primarily shell
|
|
129
|
+
// out to `openlife <verb>`. They use the host LLM's own reasoning.
|
|
130
|
+
// Runtime-state commands DO shell out (real diagnostics).
|
|
131
|
+
const HOST_NATIVE_TOP = new Set(['ask', 'dream', 'start', 'plan', 'story', 'review', 'ship', 'explore', 'audit', 'health']);
|
|
132
|
+
const RUNTIME_TOP = new Set(['doctor', 'status']);
|
|
128
133
|
for (const host of HOSTS) {
|
|
129
134
|
const base = path.join(REPO_ROOT, 'dist-templates', host, 'commands', 'openlife');
|
|
130
135
|
for (const name of EXPECTED_TOP) {
|
|
131
|
-
|
|
136
|
+
const fp = path.join(base, `${name}.md`);
|
|
137
|
+
check(`${host}/commands/openlife/${name}.md exists`, fs.existsSync(fp));
|
|
138
|
+
if (!fs.existsSync(fp))
|
|
139
|
+
continue;
|
|
140
|
+
const content = readUtf8(fp);
|
|
141
|
+
if (HOST_NATIVE_TOP.has(name)) {
|
|
142
|
+
check(`${host}/${name} declares host-native mode`, /\*\*Mode:\*\*\s*host-native/.test(content));
|
|
143
|
+
}
|
|
144
|
+
if (RUNTIME_TOP.has(name)) {
|
|
145
|
+
// Runtime commands SHOULD shell out (legitimate diagnostic invocation)
|
|
146
|
+
check(`${host}/${name} (runtime) invokes openlife shell command`, /`openlife\s+/.test(content));
|
|
147
|
+
}
|
|
132
148
|
}
|
|
133
149
|
for (const id of EXPECTED_PERSONAS) {
|
|
134
|
-
|
|
150
|
+
const fp = path.join(base, 'agents', `${id}.md`);
|
|
151
|
+
check(`${host}/commands/openlife/agents/${id}.md exists`, fs.existsSync(fp));
|
|
152
|
+
if (!fs.existsSync(fp))
|
|
153
|
+
continue;
|
|
154
|
+
const content = readUtf8(fp);
|
|
155
|
+
check(`${host}/agents/${id} declares host-native mode`, /\*\*Mode:\*\*\s*host-native/.test(content));
|
|
156
|
+
check(`${host}/agents/${id} references persona file at runtime path`, content.includes(`.openlife/method/agents/${id}.md`));
|
|
135
157
|
}
|
|
136
158
|
for (const flow of EXPECTED_FLOWS) {
|
|
137
|
-
|
|
159
|
+
const fp = path.join(base, 'flow', `${flow}.md`);
|
|
160
|
+
check(`${host}/commands/openlife/flow/${flow}.md exists`, fs.existsSync(fp));
|
|
161
|
+
if (!fs.existsSync(fp))
|
|
162
|
+
continue;
|
|
163
|
+
const content = readUtf8(fp);
|
|
164
|
+
check(`${host}/flow/${flow} declares host-native mode`, /\*\*Mode:\*\*\s*host-native/.test(content));
|
|
165
|
+
check(`${host}/flow/${flow} references the workflow YAML`, /dist-templates\/workflows\/[\w-]+\.yaml/.test(content));
|
|
138
166
|
}
|
|
139
167
|
}
|
|
140
168
|
// ── 5. No "aiox" leak in shipped content ───────────────────────────────
|
|
@@ -12,7 +12,9 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native — you (the host LLM) become **Atlas** for this conversation.
|
|
16
|
+
|
|
17
|
+
Activation:
|
|
16
18
|
|
|
17
19
|
1. Read `.openlife/method/agents/atlas.md` in full.
|
|
18
20
|
2. Adopt the persona and execute the activation flow defined there:
|
|
@@ -22,3 +24,5 @@ Activate **Atlas** from the OpenLife method.
|
|
|
22
24
|
3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
|
|
23
25
|
|
|
24
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.
|
|
@@ -12,7 +12,9 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native — you (the host LLM) become **Builder** for this conversation.
|
|
16
|
+
|
|
17
|
+
Activation:
|
|
16
18
|
|
|
17
19
|
1. Read `.openlife/method/agents/builder.md` in full.
|
|
18
20
|
2. Adopt the persona and execute the activation flow defined there:
|
|
@@ -22,3 +24,5 @@ Activate **Builder** from the OpenLife method.
|
|
|
22
24
|
3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
|
|
23
25
|
|
|
24
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.
|
|
@@ -12,7 +12,9 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native — you (the host LLM) become **Conductor** for this conversation.
|
|
16
|
+
|
|
17
|
+
Activation:
|
|
16
18
|
|
|
17
19
|
1. Read `.openlife/method/agents/conductor.md` in full.
|
|
18
20
|
2. Adopt the persona and execute the activation flow defined there:
|
|
@@ -22,3 +24,5 @@ Activate **Conductor** from the OpenLife method.
|
|
|
22
24
|
3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
|
|
23
25
|
|
|
24
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.
|
|
@@ -12,7 +12,9 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native — you (the host LLM) become **Forge** for this conversation.
|
|
16
|
+
|
|
17
|
+
Activation:
|
|
16
18
|
|
|
17
19
|
1. Read `.openlife/method/agents/forge.md` in full.
|
|
18
20
|
2. Adopt the persona and execute the activation flow defined there:
|
|
@@ -22,3 +24,5 @@ Activate **Forge** from the OpenLife method.
|
|
|
22
24
|
3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
|
|
23
25
|
|
|
24
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.
|
|
@@ -12,7 +12,9 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native — you (the host LLM) become **Genesis** for this conversation.
|
|
16
|
+
|
|
17
|
+
Activation:
|
|
16
18
|
|
|
17
19
|
1. Read `.openlife/method/agents/genesis.md` in full.
|
|
18
20
|
2. Adopt the persona and execute the activation flow defined there:
|
|
@@ -22,3 +24,5 @@ Activate **Genesis** from the OpenLife method.
|
|
|
22
24
|
3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
|
|
23
25
|
|
|
24
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.
|
|
@@ -12,7 +12,9 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native — you (the host LLM) become **Lyra** for this conversation.
|
|
16
|
+
|
|
17
|
+
Activation:
|
|
16
18
|
|
|
17
19
|
1. Read `.openlife/method/agents/lyra.md` in full.
|
|
18
20
|
2. Adopt the persona and execute the activation flow defined there:
|
|
@@ -22,3 +24,5 @@ Activate **Lyra** from the OpenLife method.
|
|
|
22
24
|
3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
|
|
23
25
|
|
|
24
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.
|
|
@@ -12,7 +12,9 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native — you (the host LLM) become **Maestro** for this conversation.
|
|
16
|
+
|
|
17
|
+
Activation:
|
|
16
18
|
|
|
17
19
|
1. Read `.openlife/method/agents/maestro.md` in full.
|
|
18
20
|
2. Adopt the persona and execute the activation flow defined there:
|
|
@@ -22,3 +24,5 @@ Activate **Maestro** from the OpenLife method.
|
|
|
22
24
|
3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
|
|
23
25
|
|
|
24
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.
|
|
@@ -12,7 +12,9 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native — you (the host LLM) become **Mesh** for this conversation.
|
|
16
|
+
|
|
17
|
+
Activation:
|
|
16
18
|
|
|
17
19
|
1. Read `.openlife/method/agents/mesh.md` in full.
|
|
18
20
|
2. Adopt the persona and execute the activation flow defined there:
|
|
@@ -22,3 +24,5 @@ Activate **Mesh** from the OpenLife method.
|
|
|
22
24
|
3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
|
|
23
25
|
|
|
24
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.
|
|
@@ -12,7 +12,9 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native — you (the host LLM) become **Prism** for this conversation.
|
|
16
|
+
|
|
17
|
+
Activation:
|
|
16
18
|
|
|
17
19
|
1. Read `.openlife/method/agents/prism.md` in full.
|
|
18
20
|
2. Adopt the persona and execute the activation flow defined there:
|
|
@@ -22,3 +24,5 @@ Activate **Prism** from the OpenLife method.
|
|
|
22
24
|
3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
|
|
23
25
|
|
|
24
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.
|
|
@@ -12,7 +12,9 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native — you (the host LLM) become **Sentinel** for this conversation.
|
|
16
|
+
|
|
17
|
+
Activation:
|
|
16
18
|
|
|
17
19
|
1. Read `.openlife/method/agents/sentinel.md` in full.
|
|
18
20
|
2. Adopt the persona and execute the activation flow defined there:
|
|
@@ -22,3 +24,5 @@ Activate **Sentinel** from the OpenLife method.
|
|
|
22
24
|
3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
|
|
23
25
|
|
|
24
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.
|
|
@@ -12,7 +12,9 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native — you (the host LLM) become **Steward** for this conversation.
|
|
16
|
+
|
|
17
|
+
Activation:
|
|
16
18
|
|
|
17
19
|
1. Read `.openlife/method/agents/steward.md` in full.
|
|
18
20
|
2. Adopt the persona and execute the activation flow defined there:
|
|
@@ -22,3 +24,5 @@ Activate **Steward** from the OpenLife method.
|
|
|
22
24
|
3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
|
|
23
25
|
|
|
24
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.
|
|
@@ -12,7 +12,9 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native — you (the host LLM) become **Vortex** for this conversation.
|
|
16
|
+
|
|
17
|
+
Activation:
|
|
16
18
|
|
|
17
19
|
1. Read `.openlife/method/agents/vortex.md` in full.
|
|
18
20
|
2. Adopt the persona and execute the activation flow defined there:
|
|
@@ -22,3 +24,5 @@ Activate **Vortex** from the OpenLife method.
|
|
|
22
24
|
3. If `$ARGUMENTS` is non-empty, treat it as an initial task or context for the persona.
|
|
23
25
|
|
|
24
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,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Ask the
|
|
2
|
+
description: Ask OpenLife — the host LLM answers directly using the OpenLife method context (no external API key required)
|
|
3
3
|
argument-hint: "<question>"
|
|
4
4
|
allowed-tools:
|
|
5
5
|
- Read
|
|
@@ -12,9 +12,26 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Mode:** host-native (the host LLM running this conversation answers directly — no external API key required).
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
-
|
|
17
|
+
Answer the user's question directly using your own reasoning. You ARE the OpenLife Brain when invoked through a host CLI.
|
|
18
|
+
|
|
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.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Run brownfield-discovery — 10-phase audit of an existing codebase
|
|
2
|
+
description: Run brownfield-discovery — host LLM orchestrates the 10-phase audit of an existing codebase
|
|
3
3
|
allowed-tools:
|
|
4
4
|
- Read
|
|
5
5
|
- Write
|
|
@@ -11,4 +11,33 @@ allowed-tools:
|
|
|
11
11
|
- AskUserQuestion
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
|
|
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,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Dream Organizer — surface ideas, pending stories, and prioritization from accumulated context (host LLM answers directly)
|
|
3
3
|
allowed-tools:
|
|
4
4
|
- Read
|
|
5
5
|
- Write
|
|
@@ -11,4 +11,25 @@ allowed-tools:
|
|
|
11
11
|
- AskUserQuestion
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
**Mode:** host-native (the host LLM running this conversation answers directly — no external API key required).
|
|
15
|
+
|
|
16
|
+
Run the OpenLife Dream Organizer using your own reasoning, not an external model.
|
|
17
|
+
|
|
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
|
|
22
|
+
|
|
23
|
+
If the user wants the external model chain for richer ideation: `openlife dream "..."` in a terminal.
|
|
24
|
+
|
|
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.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Exploratory ideation
|
|
2
|
+
description: Exploratory ideation — host LLM acts as Lyra for divergent brainstorming then convergent narrative
|
|
3
3
|
allowed-tools:
|
|
4
4
|
- Read
|
|
5
5
|
- Write
|
|
@@ -11,4 +11,22 @@ allowed-tools:
|
|
|
11
11
|
- AskUserQuestion
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
|
|
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.
|
|
@@ -10,11 +10,29 @@ allowed-tools:
|
|
|
10
10
|
- AskUserQuestion
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**Mode:** host-native — you (the host LLM) orchestrate the `brownfield-discovery` workflow yourself, playing the personas as needed.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
- Each phase invokes one or more OpenLife method agents.
|
|
17
|
-
- On any failure: surface the failing step + which agent is responsible, then offer to escalate to `@openlife-maestro`.
|
|
18
|
-
- `--dry-run` prints the phase plan without executing.
|
|
15
|
+
### Step 1 — Load the workflow definition
|
|
19
16
|
|
|
20
|
-
|
|
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.
|
|
@@ -10,11 +10,29 @@ allowed-tools:
|
|
|
10
10
|
- AskUserQuestion
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**Mode:** host-native — you (the host LLM) orchestrate the `brownfield-fullstack` workflow yourself, playing the personas as needed.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
- Each phase invokes one or more OpenLife method agents.
|
|
17
|
-
- On any failure: surface the failing step + which agent is responsible, then offer to escalate to `@openlife-maestro`.
|
|
18
|
-
- `--dry-run` prints the phase plan without executing.
|
|
15
|
+
### Step 1 — Load the workflow definition
|
|
19
16
|
|
|
20
|
-
|
|
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.
|
|
@@ -10,11 +10,29 @@ allowed-tools:
|
|
|
10
10
|
- AskUserQuestion
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**Mode:** host-native — you (the host LLM) orchestrate the `brownfield-service` workflow yourself, playing the personas as needed.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
- Each phase invokes one or more OpenLife method agents.
|
|
17
|
-
- On any failure: surface the failing step + which agent is responsible, then offer to escalate to `@openlife-maestro`.
|
|
18
|
-
- `--dry-run` prints the phase plan without executing.
|
|
15
|
+
### Step 1 — Load the workflow definition
|
|
19
16
|
|
|
20
|
-
|
|
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.
|
|
@@ -10,11 +10,29 @@ allowed-tools:
|
|
|
10
10
|
- AskUserQuestion
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**Mode:** host-native — you (the host LLM) orchestrate the `brownfield-ui` workflow yourself, playing the personas as needed.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
- Each phase invokes one or more OpenLife method agents.
|
|
17
|
-
- On any failure: surface the failing step + which agent is responsible, then offer to escalate to `@openlife-maestro`.
|
|
18
|
-
- `--dry-run` prints the phase plan without executing.
|
|
15
|
+
### Step 1 — Load the workflow definition
|
|
19
16
|
|
|
20
|
-
|
|
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.
|
|
@@ -10,11 +10,29 @@ allowed-tools:
|
|
|
10
10
|
- AskUserQuestion
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**Mode:** host-native — you (the host LLM) orchestrate the `epic-orchestration` workflow yourself, playing the personas as needed.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
- Each phase invokes one or more OpenLife method agents.
|
|
17
|
-
- On any failure: surface the failing step + which agent is responsible, then offer to escalate to `@openlife-maestro`.
|
|
18
|
-
- `--dry-run` prints the phase plan without executing.
|
|
15
|
+
### Step 1 — Load the workflow definition
|
|
19
16
|
|
|
20
|
-
|
|
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.
|