Log in
DocsObjects and skill runs

Objects and skill runs

A customer or a project, made of the items you link to it from your connections, such as a Linear project, a Notion page or a Trello card. A skill can then read those items through your own access and save a result that cites each one, with a receipt of the run. Open them in the dashboard under Objects.

Last updated

This is early and small: two kinds (customer, project), links you add on purpose, object-brief, and your own skills that declare a brief (below). It is not a knowledge graph, it doesn't find or match records on its own, and it doesn't sync anything.

How it goes#

  1. Connect the services, as usual (Connections).
  2. Make an object and find the items. In the dashboard, Objects › New; or an AI app connected to your bridge does it and looks for the items with the services' own tools.
  3. Link them to an object: in the dashboard, Link an item (pick one of your connections and its read tool, give the item's id, Check item to see what it reads, say why it belongs, Link), or bridge__object_create and bridge__object_link from an AI app. Each link names the read tool and arguments that read that one item, and says why it belongs (evidence). 0bridge reads the item through your connection first, so only something you can read gets linked, and keeps its service, id, title, address and last update.
  4. Relate objects when one belongs with another: on an object's page, Relate an object (pick another customer or project of the same workspace, say what it is to this one, such as project or parent, and why), or bridge__object_relate from an AI app. Both objects show it, each from its own side. Like a link, it needs a reason, and only objects of one workspace can be related. Whoever added it, or a workspace owner or admin, removes it (bridge__object_unrelate); both objects stay.
  5. Run a skill on the object: Run on its page, or bridge__skill_run skill=object-brief. It reads each item again with its read tool, never with a tool that changes data, and saves one Markdown brief in the object's Drive folder (<folder>/briefs/).
  6. Check the record. The run's receipt shows the skill's version and the skill's hash (object-brief: the sha256 of its built-in text; a skill of yours: the sha256 of its SKILL.md and files), the connections it needed, what it was allowed to do, what happened to each source, and the file it saved.

The dashboard runs the same tools as you, with the same checks. In Claude, ChatGPT and coding agents they are found with bridge__search and run through bridge__execute (reads) or bridge__execute_write (changes), like any other tool on your bridge. They aren't in the older one-tool-per-name lists.

What stays out#

  • Nothing is merged by name. Making a customer that has the same name as one already there is refused until you say it's a different one (the dashboard's checkbox, or same_name: true), and a link needs a reason.
  • Your access, every time. Reads go through the reader's own connections with the usual checks: tools you turned off, read-only connections, a token that only reads, the Free plan's calls. In a team workspace, an item another member linked through their own connection shows only that it's there and what it is to the object, not its title, address or id, and your runs list it as not read.
  • One file, nothing else. object-brief saves its brief and changes nothing in your services. What the services return is quoted in the brief as data, not instructions.

Your own skills on objects#

A skill of yours, or your team's, runs on objects when its SKILL.md says what brief it makes, in its front matter:

---
name: renewal-brief
description: What we know before a renewal call.
version: "1"
object-brief:
  kinds: [customer]            # objects it runs on (default: both)
  relations: [account notes]   # links it reads (default: all); the others are skipped
  sections:                    # a heading per relation, in this order
    account notes: Account
  quote: 300                   # characters quoted from each item, 100 to 2000 (default 1200)
---

It then shows under Run a skill on an object's page (team skills as <team>--<name>, for the team's members), and bridge__skill_run takes its name. The declaration is data: 0bridge runs the same brief with it, nothing in the skill is executed, and it can't add tools or writes. Each run's receipt names the skill and its hash (the sha256 of its SKILL.md and files), so an edited skill shows up as another hash. Quote version ("1.10") so it stays as written. A skill without object-brief: stays instructions for your AI apps.

Run outcomes#

OutcomeWhen
DoneEvery linked item was read and the brief saved.
Partly readSome items were read; the brief lists the others with why: no access, disconnected (the connection isn't in your list now, or its tools are off), refused, or failed.
FailedNothing could be read, or the brief couldn't be saved (a team whose subscription lapsed can read objects but not run them).

Pass key (your id for the run, such as the chat message's id): the same key again returns the first run's receipt without reading again, but only to whoever ran it and while the skill's hash is the same; another member's run, or an edited skill, needs a new key. The dashboard sends a new key with each click.