Skip to content

Add project-scoped scratchpads (durable agent + human notes over MCP) #538

Description

@b-barry

What

Durable, project-scoped Markdown notes that persist across runs, are read/written by agents via the Fabro MCP server, and are viewable/editable by humans in the web UI. Inspired by [Soloterm's scratchpads](https://soloterm.com/api/v1/docs/scratchpads).

Why

Fabro has context (ephemeral, stage-to-stage), artifacts (write-once results), variables (typed config), and Git checkpoints (code) — but no durable, shared working note that survives across runs and that parallel branches, sub-agents, child runs, and humans can all read and append to.

Top use case: durable handoffs in fan-out/fan-in graphs — a supervisor writes the plan, parallel workers append findings, the merge node reads it back. Fabro can do this natively because it owns the run graph; an external scratchpad MCP can't.

Proposed shape

  • Model: named Markdown note (id, title, body, timestamps, revision/ETag), project-scoped. Stored in the existing object store / SlateDB; included in fabro dump.
  • MCP tools: scratchpad_list, _read, _write, _append_section, _edit (with If-Match), _tail, _find. Prefer section-append + revisioned edits over blind replace (concurrent writers).
  • Workflow: readable/writable from any stage; shared across sub-agents/child runs/branches; usable in prompt templates; emits run events.
  • UI / CLI / REST: per-project panel with live updates; fabro scratchpad … with --json; project REST endpoints with If-Match (matching automations/environments).
  • Config: [server.scratchpads] to toggle + set size limits; respect secret redaction.

Non-goals

Not artifacts/checkpoints, not typed config (variables), not multi-tenant ACLs (inherits single-tenant posture), not a CRDT editor.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions