Stories A promise's telling · drafted 2026-09-24

Vespio

Donal runs an agency on the substrate ONE already ships — every client isolated, every agent and skill pushed by one command, no backend of his own to build or maintain.

The seven beats

World
Every agency before this one built its own backend under every client. Vespio builds none — it runs on the same six dimensions and fourteen operations any BaaS tenant gets.
Cast
Donal, running the agency; his clients, each an isolated workspace; Claude Code, wired in as a named actor; the agents Donal publishes.
Knock
A client site needs to be listed in three hundred directories, once, correctly, and the agency needs to prove it happened.
Want
One repo, one command, live on ONE as an agency — clients as workspaces, agents pushed to the substrate, a queue any machine can read.
Way
world:create-workspace nests a client under the agency; world:create-thing declares a row; a script — human or agent — reads the queue and writes the result back.
Turn
The tutorial runs the same six calls a person would type, against a live account, and an agent runs it exactly as written — no console, no SDK.
Lesson
Open — a Lesson is learned by someone, and this one is not written yet.

This story carries its beats but no written telling yet — text/vespio.md has no “The story” section.

Connected to

Every link here was checked against the repo when the page was built. 4 names the story uses could not be found and are shown without a link.

People

  • Donal — the agency owner
  • a client of the agency

Agents

Each opens a chat with that agent.

  • Claude Code, as a named actor in Donal's workspace
  • VERIFY: no agent slug in one.ie/ai/agents is named for Vespio-specific work

Skills

Each opens the skill's page.

  • vespio

Paths

The flows this story walks — trigger → step → step.

  1. trigger: bun run setup → tool: world:create-workspace → tool: world:create-actor
  2. trigger: bun run push → tool: world:create-workspace (clients/*.toml) → tool: world:create-thing (agents, skills) → VERIFY: agency:push:complete
  3. trigger: a directory queued → agent: work the queue → tool: world:create-thing (record the attempt)
  4. trigger: bash .claude/scripts/vespio-sync.sh → condition: factory-repo.sh manifest → tool: copy portable/needs-env files

Promises

What it holds; a told promise opens its own story.

Events

Every event is a signal; each names the path it marks or warns.

  • world:create-workspace · from the agency's own push script, per clients/*.toml VERIFY: whether the resolver marks a path on success is not read in this file tags: vespio, client
  • world:create-thing · from the queue worker, human or agent, recording an attempt VERIFY: whether the resolver marks a path on success is not read in this file tags: vespio, directory
  • world:create-actor · from the agency's own setup script VERIFY: whether the resolver marks a path on success is not read in this file tags: vespio

Transactions

  • VERIFY: this file names no money moving; see § Pricing

Analytics

  • a directory-submission board, N sites × M directories, one row per attempt per site (text/baas-tutorial-vespio.md § What you are building)