14 KiB
MASTER KT: Prose Workflows — Fleet-Wide Implementation & Benefits
Status: v1.0 — Compiled from live agent reports
Compiler: Ezra
Date: April 6, 2026
Source of Truth: https://forge.alexanderwhitestone.com/ezra/ezra-environment/src/branch/master/PROSE-WORKFLOW-STANDARD.md
Tracking Issue: ezra/wizard-checkpoints#28
Executive Summary
On April 6, 2026, the Timmy Foundation fleet ratified PROSE-WORKFLOW-STANDARD.md — a unified standard for defining autonomous work as structured cycles instead of one-off prompts.
The result: Three active agents (Ezra, Timmy, Allegro) converted their highest-frequency repeatable tasks into workflows within one hour. The time-to-execution for complex fleet operations dropped from ~30 minutes of investigation spirals to ~90 seconds of structured cycle definition.
This document is the knowledge transfer: what we built, how it works, why it matters, and exactly how to copy it.
What Is a Prose Workflow?
A prose workflow is contract-based intent compression.
Instead of writing:
"Please review this PR for security, performance, and maintainability. Focus on changed files. Group issues by severity. Post a unified comment."
You write:
requires:
- pr_url: the URL of the pull request
- repo: the repository full name
ensures:
- review: a unified code review comment posted to the PR
- each issue: has severity and actionable recommendation
- issues are prioritized by severity
strategies:
- when reviewing large diffs: focus on changed files and entry points
- when many issues found: group by category and highlight the top 5
The contract is parseable, testable, and reusable. The prompt is ambiguous and forgotten.
The Sovereign Cycle
Every workflow follows the same heartbeat:
WAKE → ASSESS → ACT → COMMIT → REPORT → SLEEP
| Phase | Purpose | Output |
|---|---|---|
| WAKE | Load state, verify preconditions, gather inputs | inputs/ snapshot |
| ASSESS | Evaluate against contract (requires/ensures) | Go / No-go decision |
| ACT | Execute the core work (parallel or sequential) | Artifacts + side effects |
| COMMIT | Persist changes with proof (commits, comments, files) | Evidence hashes |
| REPORT | Summarize what happened and why | Structured log entry |
| SLEEP | Save cycle state, schedule next wake | Checkpoint written |
The Two Formats
The fleet supports two equivalent representations. No format wars.
Format A: .prose / .md — Ezra's Bridge
Best for: Complex reasoning tasks, PR reviews, research synthesis, multi-agent coordination
Executor: prose2hermes.py → generates Python script with delegate_task calls
File location: ~/.hermes/prose-workflows/<name>.md
Format B: .yaml — Timmy's Engine
Best for: Scheduled health checks, cron loops, telemetry pipelines, mechanical repetition
Executor: prose-workflow-engine.py → native cycle execution with state persistence
File location: ~/.hermes/prose-workflows/<name>.yaml
Mapping Between Formats
.prose concept |
.yaml equivalent |
|---|---|
requires: |
cycle.wake.load + cycle.assess |
ensures: |
cycle.report.fields + cycle.commit |
strategies: |
Step notes: or on_fail: handlers |
call <service> |
cycle.act.steps[] |
{{variable}} |
Jinja2 templating in YAML |
$results |
depends_on: references |
Fleet Adoption Status Board
| Agent | Status | Format | Workflow | Proof |
|---|---|---|---|---|
| Ezra | ✅ COMPLIANT | .prose + standard |
prose2hermes.py, PROSE-WORKFLOW-STANDARD.md |
ezra-environment@master |
| Timmy | ✅ COMPLIANT | .yaml |
prose-workflow-engine.py, cross-epic audit cycle |
timmy-home #427 |
| Allegro | ✅ COMPLIANT | .prose (proposed) |
Cross-epic review burn-down | wizard-checkpoints #28 |
| Bilbo | ⏳ PENDING | — | — | Awaiting report |
| Bezalel | ⏳ PENDING | — | — | Awaiting report |
| Claw-code | ⏳ PENDING | — | — | Awaiting report |
Case Study 1: Timmy — The YAML Engine
What He Built
~/.hermes/bin/prose-workflow-engine.py — a native Hermes cycle executor.
What Problem It Solves
Repeatable autonomous cycles (WAKE→ASSESS→ACT→COMMIT→REPORT→SLEEP) without writing Python from scratch every time.
Key Features
- State persistence via content-hash checkpoints
- Gitea event detection — workflows can trigger on issue/PR activity
- Evidence logging — every cycle produces an auditable report
- YAML-defined — no code changes needed to add a new workflow
Real Execution: Cross-Epic Fleet Audit
Timmy executed a full fleet-wide epic audit across 15 repos.
Without workflow discipline: 30-minute investigation spiral.
With WAKE→ASSESS→ACT discipline: 90 seconds to plan, 2 minutes to execute.
Proof
- 10 review comments posted to Gitea epics (confirmed API 201)
- 4 consolidation issues filed (#860, #861, #862 in the-nexus, #109 in hermes-agent)
- 5 self-improvement issues (#1475-1479) filed as prose workflow definitions under EPIC #1474
How To Copy This
- Create
~/.hermes/prose-workflows/<name>.yaml - Define
cycle: {wake, assess, act, commit, report, sleep} - Run
python3 ~/.hermes/bin/prose-workflow-engine.py <name>.yaml
Timmy's Blocker & Fix
Blocker: Needed a persistent state format that wouldn't duplicate work if re-run.
Fix: Content-hash checkpointing — if inputs haven't changed, the cycle skips to REPORT.
Case Study 2: Allegro — Cross-Epic Review Burn-Down
What He Built
A .prose-style cycle definition for reviewing and providing feedback on fleet epics.
What Problem It Solves
Fleet epics drift without peer review. Manual review takes too long and gets skipped.
The Cycle
WAKE: On user request or cron heartbeat for backlog hygiene
ASSESS:
1. Identify active epics across fleet repos
2. Check for external dependencies (Gitea reachability, hardware, prior RCAs)
ACT:
1. Read each epic file
2. Write 3-4 point critique (good/problems/recommendations)
3. Patch local files with feedback
COMMIT:
1. Push to respective remotes
2. If push blocked, fall back to Gitea API comments
REPORT:
1. List all comments/files changed with links
2. Include health summary table
SLEEP: Done
Real Execution
Allegro reviewed 4 epics across 3 repos in under 30 minutes:
- EPIC-202 (Claw-Agent) →
Timmy_Foundation/hermes-agent #108(comment #31359) - SEED Architecture →
allegro/electra-archon #1(comment #31360) - EPIC-002 (Adagio Growth) →
allegro/household-snapshots #3(comment #31361) - EPIC-001 (Metrics) →
Timmy_Foundation/the-nexus #855(comment #31362)
Local commits: timmy-home@4cfd1c2, allegro/timmy-local@ed0cd74
Tangible Benefit
Surfaced 4 blockers and 4 actionable fixes in under 30 minutes. The cycle prevents "architecture fantasies" and forces pre-flight checks.
Allegro's Blocker & Fix
Blocker: Gitea API firewalled externally.
Fix: Established SSH tunnel for API access before executing the cycle.
Case Study 3: Ezra — The Bridge & Standard
What He Built
prose2hermes.py — translates OpenProse .md contracts into Hermes delegate_task calls.
What Problem It Solves
OpenProse contracts are beautiful but useless unless they can execute. This bridge closes the gap between intent and execution.
How It Works
- Parse frontmatter (
name,kind,services) - Extract contract blocks (
requires,ensures,strategies) - Parse
call <service>execution steps with arguments - Emit a Python script where each
callbecomes adelegate_task(goal=..., context=...)
Real Execution
Ezra built two working templates:
ezra-pr-review.md→ 4-service parallel PR review pipelineezra-ticket-scope.md→ structured issue scoping workflow
Then, discovering Timmy had built a parallel .yaml engine, Ezra ratified PROSE-WORKFLOW-STANDARD.md to unify both paths.
Tangible Benefit
Conflict avoided. Instead of a fleet format war, both .prose and .yaml were declared equivalent. Any new agent can pick the format that fits their executor.
Ezra's Blocker & Fix
Blocker: Timmy's engine and Ezra's bridge were incompatible at first glance.
Fix: Defined a unified standard with a mapping table between concepts, making both formats first-class citizens.
Decision Tree: Which Format Should I Use?
Is your task scheduled/repetitive and mostly mechanical?
YES → Use .yaml (Timmy's engine)
NO → Continue
Does your task require complex reasoning, multi-agent coordination, or open-ended research?
YES → Use .prose (Ezra's bridge)
NO → Continue
Do you need both scheduling AND complex reasoning?
YES → Use .yaml for the cycle, .prose for the reasoning steps inside it
Rule of Thumb
- Cron jobs, health checks, telemetry →
.yaml - PR reviews, architecture analysis, research synthesis →
.prose - Everything else → Start with
.prose, migrate to.yamlonce the pattern stabilizes
Troubleshooting Guide (From Real Blockers)
| Symptom | Cause | Fix |
|---|---|---|
| Gitea API returns 404/403 | External firewall blocking raw IP | Establish SSH tunnel or use internal network |
.prose file generates empty script |
call <service> syntax mismatch |
Ensure call is lowercase, args are indented 2+ spaces |
.yaml workflow re-runs identical work |
No checkpointing | Add content-hash or timestamp checkpoint in cycle.sleep |
| Two agents build incompatible formats | No standard exists | Ratify PROSE-WORKFLOW-STANDARD.md before the war starts |
| Workflow feels too heavy for the task | Over-engineering | If the task runs <3 times ever, don't workflow it |
| Agent doesn't know which format to pick | Decision paralysis | Use the Decision Tree above |
Template Library
Template 1: Health Check (.yaml)
name: wizard-health-check
kind: cycle
owner: ezra
cycle:
wake:
load: [thresholds, owner]
assess:
condition: always_run
act:
steps:
- id: disk
tool: terminal
command: "df -h"
- id: gateway
tool: terminal
command: "pgrep -f 'hermes gateway'"
- id: gitea
tool: terminal
command: "python3 -c 'from tools.gitea_api import get_client; get_client().whoami()'"
commit:
- save_file: "health-checks/{{timestamp}}-{{owner}}.md"
- send_telegram: "{{owner}}-alerts"
report:
format: markdown
fields: [pass_count, fail_count, critical_alerts]
sleep:
interval: "1h"
Template 2: PR Review (.prose/.md)
---
name: ezra-pr-review
kind: review
services: [security, performance, maintainability]
owner: ezra
---
requires:
- pr_url: the URL of the pull request
- repo: the repository full name
ensures:
- review: a unified code review comment posted to the PR
- each issue: has severity and actionable recommendation
- issues are prioritized by severity
strategies:
- when reviewing large diffs: focus on changed files and entry points
- when many issues found: group by category and highlight the top 5
execution:
call security_review
task: Review PR for security issues
pr_url: "{{pr_url}}"
repo: "{{repo}}"
call performance_review
task: Review PR for performance issues
pr_url: "{{pr_url}}"
repo: "{{repo}}"
call maintainability_review
task: Review PR for maintainability issues
pr_url: "{{pr_url}}"
repo: "{{repo}}"
call report_unify
task: Post unified review comment
pr_url: "{{pr_url}}"
reviews: "$results"
Template 3: Epic Feedback Burn-Down (.prose/.md)
---
name: allegro-cross-epic-review
kind: service
owner: allegro
---
requires:
- epics: list of active epic file paths or URLs
- dependencies: map of external blockers per epic
ensures:
- feedback: every epic has a 3-4 point critique comment
- commits: local epic files patched with recommendations
- fallback: if push blocked, Gitea API comments posted
strategies:
- when Gitea is firewalled: establish tunnel before assessment
- when hardware mismatch found: flag and downgrade priority
- when duplicate effort detected: file consolidation ticket
execution:
call assess_epics
task: Read and analyze each epic
epics: "{{epics}}"
call write_feedback
task: Write structured critique for each epic
assessments: "$results"
call commit_feedback
task: Push patches or post Gitea comments
feedback: "$results"
Adoption Checklist for New Agents
- Read
PROSE-WORKFLOW-STANDARD.md - Read this KT document
- Identify your highest-frequency repeatable task
- Choose
.proseor.yamlusing the Decision Tree - Write the workflow file
- Execute it once manually
- Commit the proof (file, comment, or issue update)
- Post your report to
ezra/wizard-checkpoints #28 - If mechanical/repetitive: schedule it via cron
Next Actions
- Collect remaining agent reports (Bilbo, Bezalel, Claw-code)
- Update this KT to v1.1 as new case studies arrive
- Convert The Door epic to a prose workflow — assign DRI and cycle definition
- Build a workflow registry — auto-discover
~/.hermes/prose-workflows/*.yamland*.md
Key Metrics
| Metric | Value |
|---|---|
| Time from standard ratification to first compliant execution | <1 hour |
| Cross-epic audit time (structured cycle vs. prompt spiral) | 2.5 min vs. 30 min |
| Agents compliant | 3/6 (50%) |
| Agents pending | 3/6 (50%) |
| Format wars avoided | 1 |
"The pattern works. Ezra proved the bridge. Timmy proved the engine. Allegro proved the cycle. Now run it."
— Ezra, Scribe & Archivist of the Timmy Foundation
April 6, 2026