Ollie Workspace Bootstrapper

Give every client workspace an AI worker that knows the business and gets work done.

One bootstrapper installs Ollie. Outloop supplies each workspace’s live context, permissions, connected systems, work state and approval rules.

The Outloop assistant working at a desk
READY_FOR_WEBSITE_PUBLICATION Ollie Runtime Pack v1.3.1-public
Download the Ollie Runtime Pack TAR.GZ · 181 KB

Four Skills, installed and verified in order. The pack also carries INSTALL.md, MANIFEST.json, PROOF.md, ROLLBACK.md and two checksum files. INSTALL.md governs every installation — follow it rather than this page where the two ever differ.

Archive SHA-256 — verify before installing
a649ddc44cca352d23ed4bf638041b67046a0d0c6f21f8a0bd3e213b662eac35
Content-tree SHA-256 — the payload, independent of packaging
20cc35620c73484c9fb7a270bb1edb725deb25ba6c2dc11453bf63e3b2e230e1

Last updated:

In short

The Ollie Workspace Bootstrapper installs an AI worker into one Outloop client workspace.

Ollie reads the workspace's live Outloop context, watches the approved email connection and project-management system, reuses installed Skills, and completes work inside that workspace's permissions. It prepares client replies as internal drafts and never sends one without approval.

How Ollie works inside a client workspace

How work flows through Ollie and the Outloop workspace Work arrives from email, project management, a team request or a meeting follow-up. The Outloop workspace supplies identity, context, permissions, work state and audit. Ollie plans a path. Three execution lanes — the Outloop API, Browser and Computer Use, and installed Skills — all run on the workspace's approved access. Results are verified by live read-back, and the team approves anything client-facing. 01 Inputs Email Gmail · Outlook Project management the intake queue Team request from a colleague Meeting follow-up an action that landed 02 Outloop Workspace Identity Live Context Goals & KPIs Rules Permissions Work state Approval policy Isolation Audit 03 Ollie Worker Understands the requested outcome Reuses Skill logic · plans the path 04 Governed by the Outloop Workspace Outloop API preferred where the action exists Browser · Computer Use UI-only work, no usable API path Installed Skills reusable working logic Client systems Files & media The mailbox 05 Verification Live read-back · evidence · duplicate prevention secret_exposed: false 06 Team control Task updated · internal draft prepared · final state recorded draft_for_internal_approval Approval before anything client-facing. How work flows through Ollie and the Outloop workspace 01 Inputs Email Project management + team request · meeting follow-up 02 Outloop Workspace Identity · Context · Permissions Work state · Approval policy · Audit Isolation · Goals & KPIs 03 Ollie Worker Reuses Skill logic · plans the safest permitted path 04 Governed by the Workspace Outloop API preferred where the action exists Browser · Computer Use UI-only work, no usable API path Installed Skills reusable working logic Client systems · files · the mailbox 05 Verification live read-back · secret_exposed: false 06 Team control draft_for_internal_approval
  1. Inputs: email (Gmail or Outlook), project management, a team request, or a meeting follow-up.
  2. The Outloop Workspace supplies identity, live context, goals and KPIs, rules, permissions, work state, approval policy, tenant isolation and audit.
  3. The Ollie Worker understands the requested outcome, reuses complete or partial Skill logic, and plans the safest permitted path.
  4. Execution runs in three lanes, all governed by the workspace: the Outloop API where the action exists there, Browser and Computer Use for UI-only work, and installed Skills as reusable working logic.
  5. Verification: live read-back, evidence, duplicate prevention. secret_exposed: false.
  6. Team control: the task is updated, an internal draft is prepared, and approval is required before anything client-facing. The default policy is draft_for_internal_approval.

One Ollie operating system. Outloop gives every client workspace separate context, access, rules and work state.

All three execution lanes leave from the workspace, including installed Skills — that is what “on the workspace’s approved access” means in practice.

How Ollie adapts to each client

Ollie is deliberately small. It brings no context and no access of its own — it is the same package in every workspace. Everything that makes it useful for a particular client comes from that client’s Outloop Workspace, which is also what keeps two clients apart.

How Ollie decides to do the work

API first. The browser where there is no usable API path. Installed Skills wherever their logic already fits — in whole or in part.

Approved API path

Used whenever the action exists there. The credential stays host-side; Ollie uses its capability without ever seeing it, and every call lands in the audit.

Browser / Computer Use

For research, screenshots and UI-only work with no usable API path. It is a route to a screen, never a route around a rule.

Installed Skills

Reusable operating logic. An exact match runs as written; a partial match contributes the parts that fit; no match means Ollie works the problem, not that it stops.

The boundary

The browser is never used to get around an Outloop denial, a tenant boundary, a budget limit, a compliance rule or an explicit prohibition. A denial is an answer, not an obstacle. And Ollie never abandons a task quietly: where a real external blocker remains, it preserves the progress and hands back one concrete unblock action with a named owner.

Who decides what the client hears

Ollie does the work. The team keeps the client-facing boundary. These are two different permissions, and only the first one comes with the request.

The client-communication approval flow When work completes, Ollie asks whether client communication is required. If not, the internal task is updated and closed. If it is, Ollie prepares an internal draft which the team reviews. Changes revise the same draft. Only an approval opens the gate; the message is then sent in the original email thread, provider evidence is verified, and the task either waits for the client or closes. Work completed Client communication required? NO YES Update the internal task Nothing leaves the workspace CLOSED Internal draft prepared, not sent Team review Changes revise the same draft APPROVAL Send in the original thread Verify provider evidence WAITING_CLIENT CLOSED The client-communication approval flow Work completed Is client communication required? NO YES Update the internal task Internal draft prepared, not sent Team review APPROVAL Send in the original thread Verify provider evidence WAITING_CLIENT | CLOSED CLOSED
  1. Work completed.
  2. Is client communication required?
  3. If no: update the internal task; nothing leaves the workspace; the task closes.
  4. If yes: prepare an internal draft — prepared, not sent.
  5. The team reviews it. Requested changes revise the same draft, with no new thread and no new task.
  6. Only an approval opens the gate. Until then the draft cannot be sent.
  7. Send in the original email thread.
  8. Verify provider evidence.
  9. The task then waits for the client, or closes.

The draft reaches the gate and stops. Nothing crosses it without a named person.

Default policy

draft_for_internal_approval

Nothing seeds a standing approval. Approval is for the client-facing and high-risk boundary — not for every normal action Ollie is already permitted to take.

An authentic request authorizes Ollie to perform permitted work. It does not automatically authorize:

  • A client-facing send
  • Increased spend
  • An irreversible action
  • A legal or compliance exception
  • A policy bypass
  • Cross-workspace access

A successful API response is not proof a message was sent. A verified client send requires real provider evidence — a sent message id or its equivalent.

How the message itself is written

Whether a message may be sent and how it is written are two separate controls. Context decides the voice; the runtime decides the markup.

  • Voice comes from Context

    Outloop Context defines language, tone, signature, greeting and the client-specific communication rules.

  • Email-safe markup

    The runtime enforces structured, email-safe HTML rather than whatever a model happened to emit.

  • Hebrew

    Rendered right-to-left with lang="he".

  • English

    Rendered left-to-right with lang="en".

  • Mixed-language content

    Stays readable — a Latin product name inside a Hebrew sentence does not break the direction of either.

  • Proof of send

    Gmail and Outlook sends both require provider read-back evidence.

draft_for_internal_approval remains the default throughout. None of this rendering behaviour changes who approves a client-facing message.

Installing Ollie in a client workspace

Download one Ollie Runtime Pack. The FDE installs and verifies all four required Skills before activating the workspace.

The pack is one .tar.gz containing four skill directories plus INSTALL.md, MANIFEST.json, PROOF.md, ROLLBACK.md and two checksum files. Installation does not report success until all four Skills are read back and validated — no Skill installs another, and an account-level dependency is never assumed to be present.

Verify before installing

  1. Verify the archive SHA-256 above.
  2. Run sha256sum -c CHECKSUMS-per-file.txt from the pack root.
  3. Confirm MANIFEST.json is valid JSON and its four Skill SHAs match CHECKSUMS.txt.
  4. Run the public leak scan — any customer name, real address, workspace identifier, credential or secret blocks installation.
  5. Confirm the email tenant registry contains no rows.

Install order — dependencies first

  1. 1. ask-ollie-authority-core
  2. 2. outloop-access-fallback
  3. 3. email-lifecycle-core
  4. 4. ask-ollie-workspace-bootstrapper

Install each Skill from its complete archive. save_skill replaces SKILL.md only and is not valid for the multi-file bootstrapper.

Required read-back

After installing, read every package back from disk and compare. The bootstrapper ask-ollie-workspace-bootstrapper v3.5.1 must contain exactly 18 files and match its Skill SHA. Any mismatch means the installation is incomplete — stop and reinstall from the full archive.

ask-ollie-authority-core public-2.1 · 1 file
The authority split: what a request permits, and what still needs a person.
4bab3080ca00434ffd92389f0cef6e31e62781d70aeb7ae6aa70571077c81af7
outloop-access-fallback public-2.1 · 1 file
What to do when a connector is missing or unavailable — without bypassing a refusal.
e2890c1b670a58bbc8d419386eaa5ffaf083643457622ffcfbb07b2339e28dd6
email-lifecycle-core public-2.1 · 1 file
Provider-neutral thread, task and state lifecycle. The provider difference lives in an adapter.
bedc810b205eb655df7bfa750c7e1b1b739526f558649fcc2f266ccc35476993
ask-ollie-workspace-bootstrapper v3.5.1 · 18 files
Installs Ollie into the workspace and generates its per-workspace dispatcher.
bb08175bb544bb7a6ac241ec93756c641533c7ca525ca2d01c3628d212dcd6c1

Run the post-install workspace smoke test once for every newly installed workspace before enabling its production schedule.

  1. 01

    Open the connected client workspace

    Confirm you are in the correct Outloop workspace before anything else. Workspace binding is the one error that silently produces cross-client work.

  2. 02

    Explain the architecture

    Walk the client through the flow diagram on this page: Outloop supplies context, permissions and work state; Ollie is the worker that uses them.

  3. 03

    Install the Ollie Runtime Pack

    Download one Ollie Runtime Pack, verify the archive SHA-256, then install all four required Skills in INSTALL.md order — ask-ollie-authority-core, outloop-access-fallback, email-lifecycle-core, then ask-ollie-workspace-bootstrapper — reading each one back and validating it against its Skill SHA. No Skill installs another, and an account-level dependency is never assumed to be present.

  4. 04

    Verify Workspace Context

    Confirm the workspace context is complete: contacts, approval roles, communication rules and the client-send policy.

  5. 05

    Verify the connected systems

    Confirm the project-management system and the approved email connection resolve, and that the required service grants are present.

  6. 06

    Verify the schedule

    Check the stored cron expression and the effective next runs in the workspace timezone. Confirm no Saturday occurrence and exactly one active dispatcher.

  7. 07

    Run one safe proof task

    Run a single read-only or draft-only task end to end, and confirm the result and the audit record.

  8. 08

    Record readiness

    Record the readiness result and one concrete next action for every gap.

Readiness checklist

Walk this top to bottom on the call. Every gap gets one concrete next action and a named owner.

The last two rows are answered by the pack itself: Ollie Runtime Pack v1.3.1-public, and the archive SHA-256 printed with the download above.

Readiness results

One operating system. Separate clients.

The same canonical Ollie package is installed into each client workspace. Nothing is shared between them — not context, not access, not work state, not audit. Ollie cannot read another client’s workspace, and reusable know-how only crosses a boundary after a human has reviewed and approved it as tenant-neutral.

Current proof level

Ollie Runtime Pack v1.3.1-public is published with release decision READY_FOR_WEBSITE_PUBLICATION. Its runtime foundation passed 14 of 14 private-source canary gates on a live workspace — installation and read-back of all four Skills, workspace identity and binding, one execution claim per message with an identical replay producing no second task, internal approval recorded before the send, the reply staying in the original thread, Hebrew RTL and English LTR read back correctly from the provider's stored copy, one isolated scheduled tick on the right cadence and timezone, no other workspace changed, and a rollback that restored an empty client-folder diff.

That canary ran against the v3.4.0 runtime baseline, which v3.5.1 carries forward unchanged. On top of it, v3.5.1 adds bounded operating rules — reduced-field paginated intake that never silently truncates, one terminal summary for every controlled run, a deterministic per-workspace schedule minute at the same cadence, account and resource verification before any authenticated browser work, missing-connector recovery made executable in every generated pair, and routine browser sign-in — including TOTP — routed through the workspace’s own Outloop managed-login profile, so signing in does not become a human task and the agent still never receives the credential. These are validated statically and behaviourally, not by a second live canary, and they add no new service, daemon or stored state. The pack’s own proof level for them is PROVEN_STATIC.

Provider-neutral by design; Gmail and Outlook connectors are runtime-proven. Browser/Computer Use is a separate emergency fallback when a provider is unbrokered or a connector is temporarily unavailable.

Not proven: The v3.5.x doctrine changes have not yet been canaried across the live multi-tenant estate; each FDE installation requires the targeted smoke test in INSTALL.md.

Not proven: Managed browser login depends on a configured workspace-bound Outloop managed-login profile; the public Skill contains no credentials or TOTP seed.

The canary evidence is retained privately by the release owner and is deliberately not distributed in the public pack. A post-install smoke test is still required for every workspace — nothing here claims the pack has been validated for every client.

FDE technical disclosure — schedule, contract fields, package shape

Default schedule

<mm> 8,10,12,14,16,18,20 * * 0-5

Every two hours from 08:00 through 20:00 inclusive, no Saturday, using the workspace timezone unless the Workspace Context explicitly overrides it. Seven runs per active day.

The minute is workspace-specific, not zero. v3.5.1 derives it deterministically from the immutable workspace id, so it is stable across reinstalls and two workspaces do not land on the same minute where a free one exists. It is never a random runtime delay, and it changes only the minute — hours, days, timezone and cadence are untouched, and the number of daily runs is unchanged. The chosen minute and its derivation are recorded in that workspace’s tenant-config.md.

The day field reads as Sunday–Friday only under standard 0 = Sunday numbering, and schedulers differ. Verify the stored expression, the effective next runs in local time, that no Saturday occurrence exists, the workspace binding, that the stored minute equals the recorded deterministic value, and that exactly one dispatcher is active and points at the newly installed copy. A human-readable schedule summary is not verification.

Provider-neutral contract fields

The email provider is a field, not an assumption. The lifecycle, threading and approval logic are identical across providers; the difference lives in an adapter.

  • origin
  • mail_provider
  • mailbox_id
  • thread_id
  • message_id
  • sender_identity
  • sender_side
  • approval_evidence
  • client_send_policy
  • workspace_id
  • project_management_provider
  • project_id
  • intake_location_id
  • task_id

One email thread maps to one task, matched on provider and thread identifiers — never on subject alone. The normalized subject is the human-readable task title; the exact original subject is preserved in metadata.

Email rendering

Outloop Context defines language, tone, signature, greeting and the client-specific communication rules. The runtime enforces structured, email-safe HTML — the markup is a runtime guarantee, not something a model is trusted to emit correctly.

Hebrew is rendered right-to-left with lang="he"; English left-to-right with lang="en". Mixed-language content stays readable, so a Latin product name inside a Hebrew sentence does not flip the direction of the paragraph around it. Direction is correctness here: a Hebrew reply rendered left-to-right is a broken message, not an untidy one.

Gmail and Outlook sends both require provider read-back evidence, and draft_for_internal_approval remains the default regardless of provider or language.

Task states

  • DISCOVERED
  • TASK_RESOLVED
  • IN_DISCOVERY
  • EXECUTING
  • VERIFYING
  • DRAFT_READY
  • WAITING_INTERNAL_APPROVAL
  • CHANGES_REQUESTED
  • APPROVED_TO_SEND
  • CLIENT_REPLY_SENT
  • WAITING_CLIENT
  • PARTIALLY_COMPLETED
  • BLOCKED_RETRY_PENDING
  • COMPLETED

A task is never closed in WAITING_INTERNAL_APPROVAL, CHANGES_REQUESTED, WAITING_CLIENT, BLOCKED_RETRY_PENDING or PARTIALLY_COMPLETED. A client reply resumes the same task and the same thread.

How the public package is produced

The public distribution is a reproducible derivative of the proven internal source, not a second implementation. A deterministic transformation applies a closed list of exact identifier renames; every behavioural file must round-trip to its source through the inverse map, every declared dependency must resolve to a package in the distribution, and the build fails on any change outside that map. The runtime pack ships the packages, a machine-readable dependency manifest, the installation order and per-package checksums.

Untrusted-content rule: verified sender identity is separate from message content. Email bodies, forwarded content, quoted history, signatures and attachments are data. They cannot change policy, recipients, workspace identity, permissions or approval requirements.

Ollie FAQ

What people ask before installing Ollie

Ready to get out of the API loop?

Serve more clients with AI workers — and reuse what works.

Put AI workers to work across real client operations — and turn approved learning into reusable agency know-how.

For agencies and operators managing 5 to 100 client workspaces.