Skip to content
Fermium

Workflows

A workflow is a markdown file inside an agent, workflows/<name>.md, that holds the recipe for one recurring job: when it applies, what to ask for, the steps, the templates to start from and where the result goes. Agents recognise the job and follow the file.

A skill says how anything you make should look. A workflow says how your team does one recurring job: the all-hands deck, the release notes, a customer QBR. It is a file inside an agent, workflows/<name>.md. Write it once, point it at the house template, say where the result goes, and any agent that loads the agent can run the job the same way every time.

Skills versus workflows

Skill Workflow
Answers how should anything we make look and read how do we do this one recurring job
Shape guidelines, patterns, brand rules steps, inputs to ask for, templates to start from, where the result goes
Applied always, with the agent when the job comes up: a trigger phrase matches, or you ask for it by name
File skills/<name>.md workflows/<name>.md
Example "Charts: one accent colour, no 3D, axis titles in sentence case" "All-hands deck: duplicate the deck template, ask for the month and the three headline metrics, fill sections 1 to 5, publish to Leadership/All hands as All hands {month} {year}"

The file

workflows/ holds files directly, with no subfolders; names use letters, digits, ., _ and - and end in .md. The body is the recipe in plain markdown: what the job produces, what to ask for, the steps, the output, the checks.

The header lines

A workflow file can start with header lines between --- fences, one key: value per line. Use this form when you write one by hand:

---
name: All-hands deck
description: The monthly all-hands slide deck.
triggers: all hands deck, monthly all-hands
input: month | required | The month the deck covers | e.g. September 2026
input: wins | optional | Wins worth a slide each
output: kind=html; folder=Leadership/All hands; title_pattern=All hands {month} {year}; tags=all-hands; listing=team
templates: [[all-hands-template]], doc:01J7ZK3N9QW0X4B2C6D8E0F1G2
---

# All-hands deck

## Steps

1. Duplicate the deck template.
2. ...
Line Meaning Used by
name the workflow's title the file's title in the app and in load_brain
description one line on what the job is the summary in load_brain
triggers comma-separated phrases that mean the job came up the triggers list in load_brain
input one line per input: name, required or optional, a description, and e.g. an example, separated by vertical bars the agent, when it reads the file
output key=value pairs separated by ;: kind, folder, title_pattern, tags, brain, listing, visibility the agent
templates documents to duplicate, as [[alias]] or doc:<id> the agent
enabled: false marks the workflow as switched off the agent

Fermium itself reads name, description and triggers. Without header lines the title is the first heading and the summary is the first paragraph. Everything else is text the agent reads and follows, so a workflow written as plain prose works too.

Workflows are protected

A workflow changes under review, like BRAIN.md and skills:

  • In the app, open the agent, pick the workflow under Knowledge and choose Edit. With write access you choose between Save directly and Propose change; with read access your edit goes to Review. New file with type Workflow creates one from a starter with sections for what to ask for, the steps and the output.
  • From an agent, brain_write or propose_change on workflows/<name>.md files a proposal that a person with write access approves in the Review tab, in whole or hunk by hunk. See Proposals and review.

Prompts that work: "Propose an all-hands deck workflow for the leadership agent: trigger on 'all hands deck', ask for the month and the three headline metrics, duplicate the deck template, publish to Leadership/All hands as All hands {month} {year}." "Add a check to the release notes workflow that every item links to its ticket."

An agent that includes another agent hands out that agent's workflows too, marked with where they came from.

How an agent runs one

  1. load_brain returns workflows: for each one the path, title, summary, triggers and the agent it came from. That is enough to recognise a job when a request matches a trigger phrase, or when you name the workflow. The workflow list is never trimmed from the payload.
  2. brain_read on the workflow's path returns the file. The agent reads it, asks for every required input, and keeps the agent's skills in front of it.
  3. When the file names a template, duplicate_doc copies it into a new document the agent's user owns, same kind and files. The agent fills the copy and never edits the template itself.
  4. The agent publishes to the output line: the root and folder, the title pattern, the tags, listing and visibility.
  5. What is worth keeping from the run (a decision, a preference, an outcome) goes into the journal with brain_remember.

Templates are ordinary documents. An agent can duplicate only templates its user may open; naming a document in a workflow never widens access to it.

A worked example: the all-hands deck

Ada runs the monthly all-hands. Her workspace has an agent called leadership with a deck skill, and an HTML deck the team likes, with the alias all-hands-template.

  1. She opens the leadership agent, chooses New file, type Workflow, title "All-hands deck", and writes the header lines above and the steps: duplicate the deck, fill the title slide from the month, put the three metrics on slide 2 with the chart skill, one slide per win, close with next month's dates, and the checks: no placeholder text left, every metric has a source. She has write access, so she saves directly.
  2. She adds a line for it to INDEX.md.
  3. Next month a colleague tells their agent: "Put together the all hands deck." The agent has loaded the leadership agent, sees all hands deck among the triggers, reads workflows/all-hands-deck.md, asks for the month and the three metrics, calls duplicate_doc on the template with the title All hands October 2026, fills the copy following the agent's skills, moves it to Leadership/All hands, tags it all-hands and lists it for the team.
  4. The agent's Activity tab shows the load and the read, with who and when.

The Workflows page

The Workflows page, opened from the command palette or New → From a workflow, lists the workflows of every agent you can open, grouped by agent. Workflows defined on that page before workflows became agent files still work and are listed below them. Agents run them with use_workflow; see the MCP reference.