Skip to content

Commit 89bd7ac

Browse files
committed
feat(workflow): implement standalone TOML execution
- Add octomind workflow CLI command for TOML files - Move workflow definitions from main config to separate files - Add auto_capabilities configuration setting - Document GIT_TREE and HOME template variables - Update builtin server tool mappings for core and runtime - Update default compression model to gpt-5-mini - Rename default tap to muvon/tap - Add capability command to session reference - Refine MCP server and compression documentation - Remove /workflow slash command from editor integrations - Update session command counts and architecture docs
1 parent 3da9a4f commit 89bd7ac

15 files changed

Lines changed: 56 additions & 41 deletions

README.md

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ You're in an interactive session with a specialist that can read your code, run
292292
| `schedule` | Inject messages at future times |
293293
| `skill` | Inject reusable instruction packs from taps |
294294
| `tap` | Delegate to any specialist role from a tap registry |
295+
| `capability` | Auto-activate capabilities by semantic intent matching |
295296

296297
### Filesystem tools (via [octofs](https://github.com/muvon/octofs))
297298

@@ -323,20 +324,16 @@ temperature = 0.2
323324
server_refs = ["filesystem", "github"]
324325
allowed_tools = ["view", "ast_grep", "create_pr"]
325326

326-
# Workflows — multi-step, each step its own model and toolset
327-
[[workflows]]
328-
name = "deep_review"
329-
[[workflows.steps]]
330-
name = "analyze"
331-
layer = "context_researcher" # gemini-flash, broad context
332-
[[workflows.steps]]
333-
name = "critique"
334-
layer = "senior_reviewer" # claude-opus, precision
335-
336327
# Sandbox — lock all writes to current directory
337328
sandbox = true
338329
```
339330

331+
```bash
332+
# Workflows — multi-step, each step its own model and toolset
333+
# Defined in standalone TOML files, run via CLI
334+
octomind workflow deep_review.toml
335+
```
336+
340337
- **Roles** — model, temperature, system prompt, MCP servers, tool permissions per role.
341338
- **Layers** — chained AI sub-agents that run after each response.
342339
- **Guardrails** — deterministic policy (guards, hooks, validators) and input pipes.
@@ -366,7 +363,7 @@ octomind acp developer:general
366363
octomind run developer "Explain the auth module" --format plain
367364

368365
# Structured JSON output for pipelines
369-
octomind run developer "List TODO items" --schema todos.json --format jsonl
366+
octomind run developer "List TODO items" --format jsonl
370367
```
371368

372369
One binary. Every workflow.

doc/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ Real-world examples showing how to solve practical problems with Octomind.
8080
| Document | Description |
8181
|----------|-------------|
8282
| [CLI Reference](reference/01-cli-reference.md) | All CLI commands and flags |
83-
| [Session Commands](reference/02-session-commands.md) | All 25 interactive session commands |
83+
| [Session Commands](reference/02-session-commands.md) | All 27 interactive session commands |
8484
| [Config Reference](reference/03-config-reference.md) | Every configuration field documented |
8585
| [Environment Variables](reference/04-environment-variables.md) | API keys, overrides, template variables |
8686

doc/dev/02-architecture.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ src/
3232
roles.rs # Role configuration
3333
mcp.rs # MCP server config (Builtin/Http/Stdio)
3434
hooks.rs # Webhook hook config
35-
workflows.rs # Workflow + step definitions
3635
guardrails.rs # Guardrails (pipe) configuration
3736
layers.rs # Layer configuration
3837
agents.rs # Agent (ACP) configuration
@@ -86,7 +85,7 @@ src/
8685
8786
chat/
8887
mod.rs # Chat orchestration
89-
commands.rs # Command constants (28 entries, COMMANDS array)
88+
commands.rs # Command constants (27 entries, COMMANDS array)
9089
animation.rs / animation_manager.rs # Spinner & animation
9190
status_prefix.rs # Shared status formatting (prompt + spinner)
9291
assistant_output.rs # Assistant output formatting
@@ -123,7 +122,7 @@ src/
123122
core.rs # ChatSession struct, SessionInitParams builder
124123
api_executor.rs # API call execution
125124
api_prep.rs # API call preparation (compression, auto-activation)
126-
commands/ # 28 command handler modules
125+
commands/ # 26 command handler modules (28 files incl. mod.rs + utils.rs)
127126
display.rs # Session display
128127
error_utils.rs # Error utilities
129128
layer_processor.rs # Layer processing in session context

doc/dev/03-mcp-server-development.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ For external tools, prefer configuring a `stdio` or `http` server in config.
1515

1616
| Server | Location | Purpose |
1717
|--------|----------|---------|
18-
| `core` | `src/mcp/core/` | Plan, tap, capability, skills, scheduling, dynamic servers |
18+
| `core` | `src/mcp/core/` | Plan, tap |
1919
| `runtime` | `src/mcp/runtime/` | MCP management, agent delegation, skills, scheduling, capability |
2020
| `agent` | `src/mcp/agent/` | Agent delegation via ACP |
2121

doc/integration/04-tap-system.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ octomind untap myorg/my-agents
4949

5050
### Built-in Tap
5151

52-
The default tap `muvon/octomind-tap` is always active and ships production-ready agents.
52+
The default tap `muvon/tap` is always active and ships production-ready agents.
5353

5454
## Tap Priority
5555

5656
When multiple taps provide the same agent tag, priority is:
5757
1. User-added taps (in order added)
58-
2. Built-in default tap (`muvon/octomind-tap`)
58+
2. Built-in default tap (`muvon/tap`)
5959

6060
## Using Tap Agents
6161

doc/reference/01-cli-reference.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,22 @@ octomind config --validate
179179
octomind config --list-themes
180180
```
181181

182+
## `octomind workflow <FILE>`
183+
184+
Run a multi-step workflow defined in a TOML file.
185+
186+
| Flag | Short | Description |
187+
|------|-------|-------------|
188+
| `FILE` | | Path to workflow TOML file (required) |
189+
| `--dry-run` | | Validate and print execution plan without spawning processes |
190+
191+
Reads input from stdin. Per-step progress, cost, and token stats go to stderr. The final step's output goes to stdout.
192+
193+
```bash
194+
echo "build a JSON-to-CSV CLI in Rust" | octomind workflow myflow.toml
195+
octomind workflow myflow.toml --dry-run
196+
```
197+
182198
## `octomind completion <SHELL>`
183199

184200
Generate shell completion scripts.

doc/reference/03-config-reference.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ All values shown match `config-templates/default.toml`. Fields marked **(require
1616
| `custom_instructions_file_name` | string | `"INSTRUCTIONS.md"` | File auto-loaded as user message in new sessions. Empty string to disable. |
1717
| `custom_constraints_file_name` | string | `"CONSTRAINTS.md"` | File appended to each request in `<constraints>` tags. Empty string to disable. |
1818
| `sandbox` | bool | `false` | Restrict filesystem writes to working directory. Also available as `--sandbox` CLI flag. |
19+
| `auto_capabilities` | bool | `true` | Enable automatic capability activation on user messages. Disable to require manual `capability(action="enable")` calls. |
1920

2021
## Performance & Limits
2122

@@ -121,10 +122,8 @@ MCP server definitions. Three types supported: `builtin`, `http`, `stdio`.
121122

122123
**Builtin servers** (always available, no external process):
123124

124-
| Name | Tools | Purpose |
125-
|------|-------|---------|
126-
| `core` | `plan`, `schedule`, `capability`, `tap` | High-level day-to-day tools |
127-
| `runtime` | `mcp`, `agent`, `skill` | Low-level harness reconfiguration |
125+
| `core` | `plan`, `tap` | High-level planning and agent management |
126+
| `runtime` | `mcp`, `agent`, `skill`, `schedule`, `capability` | Harness reconfiguration and scheduling |
128127
| `agent` | `agent_<name>` per `[[agents]]` entry | ACP sub-agent dispatch |
129128

130129
`filesystem` is no longer a builtin — it's an external `stdio` server backed by `octofs`. See [MCP Tools](../usage/07-mcp-tools.md) for the tool surface.
@@ -450,6 +449,8 @@ Available in `system` and `welcome` fields:
450449
| `{{OS}}` | Operating system |
451450
| `{{BINARIES}}` | Available binary tools |
452451
| `{{GIT_STATUS}}` | Git repository status |
452+
| `{{GIT_TREE}}` | Project file tree |
453453
| `{{README}}` | Contents of README.md in project root |
454+
| `{{HOME}}` | User's home directory path |
454455
| `{{CONTEXT}}` | Session context (for layers) |
455456
| `{{SYSTEM}}` | Parent system prompt (for layers) |

doc/reference/04-environment-variables.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,11 @@ Available in `system` and `welcome` config fields. Use `octomind vars` to see cu
5656
| `{{DATE}}` | Current date |
5757
| `{{SHELL}}` | User's shell (e.g., `bash`, `zsh`) |
5858
| `{{OS}}` | Operating system name |
59-
| `{{BINARIES}}` | Available binary tools on PATH |
59+
| `{{BINARIES}}` | Available development tools and their versions |
6060
| `{{GIT_STATUS}}` | Git repository status (branch, changes) |
61+
| `{{GIT_TREE}}` | Project file tree |
6162
| `{{README}}` | Contents of `README.md` in project root |
63+
| `{{HOME}}` | User's home directory path |
6264
| `{{CONTEXT}}` | Session context (for layer system prompts) |
6365
| `{{SYSTEM}}` | Parent system prompt (for layer system prompts) |
6466

doc/troubleshooting/02-migration-guide.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,14 +125,14 @@ The `core` builtin server was split into two: high-level tools stay in `core`, l
125125
| Tool | Old server | New server |
126126
|------|------------|------------|
127127
| `plan` | `core` | `core` |
128-
| `schedule` | `core` | `core` |
129-
| `capability` | `core` | `core` |
130128
| `tap` *(new)* | -- | `core` |
131129
| `mcp` | `core` | **`runtime`** |
132130
| `agent` | `core` | **`runtime`** |
133131
| `skill` | `core` | **`runtime`** |
132+
| `schedule` | `core` | **`runtime`** |
133+
| `capability` | `core` | **`runtime`** |
134134

135-
If your config or tap manifest has `server_refs = ["core", ...]` and the role calls any of `mcp`, `agent`, or `skill`, add `"runtime"` to the list:
135+
If your config or tap manifest has `server_refs = ["core", ...]` and the role calls any of `mcp`, `agent`, `skill`, `schedule`, or `capability`, add `"runtime"` to the list:
136136

137137
```diff
138138
[roles.mcp]
@@ -154,7 +154,7 @@ tools = []
154154

155155
If you have a hand-rolled config without it, add the block.
156156

157-
Roles that don't call `mcp`/`agent`/`skill` (most roles) don't need `"runtime"` at all — drop it from `server_refs` to keep the tool surface tighter.
157+
Roles that don't call `mcp`/`agent`/`skill`/`schedule`/`capability` (most roles) don't need `"runtime"` at all — drop it from `server_refs` to keep the tool surface tighter.
158158

159159
## Filesystem Is Now External
160160

doc/usage/03-configuration.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,9 @@ System prompts and welcome messages support variables:
244244
| `{{BINARIES}}` | Available binaries in PATH |
245245
| `{{OS}}` | Operating system |
246246
| `{{GIT_STATUS}}` | Git status |
247+
| `{{GIT_TREE}}` | Project file tree |
247248
| `{{README}}` | Project README.md contents |
248-
249+
| `{{HOME}}` | User's home directory path |
249250
Use `octomind vars` to see all current values.
250251

251252
## Further Reading

0 commit comments

Comments
 (0)