Solutions

Meetings & scheduling

The call is over; the doc and the board are not.

#proj-atlaspublic channel5 tool calls

A thread turned into a dated section in the status doc and two tasks on the board. The doc is named with its link before anything touches it, and both writes are held on one card — a Google Doc being exported, edited and sent back rather than patched in place, which the card says.

proj-atlas

Sam4:12 PM

@attest_tag write up this thread into the Atlas status doc and open tasks for the two things we agreed

attest_tagApp4:14 PM

  • read_thread · 18 messages
  • http_request · GET www.googleapis.com/drive/v3/files?q=name contains 'Atlas' · 2 matches
  • http_request · GET …/files/1m4…/export?mimeType=text/plain · 3.1k words
  • http_request · PATCH /upload/drive/v3/files/1m4…?uploadType=media · held
  • clickup_create_task · 2 tasks · held

Please confirm — this needs your OK. Two files matched “Atlas”; I mean this one:

  • Atlas — weekly status, last edited yesterday by Priya — open in Drive. The other match, Atlas — archive 2025, is untouched.
  • The section — “15 Sep — schema migration held for the index rebuild; pricing page ships Thursday”, appended under today’s date.
  • Two tasks — “Rebuild the orders index” (Priya) and “Ship pricing page” (Sam), in Atlas / This sprint.

Waiting on a human

Append a dated section to “Atlas — weekly status”

The doc is exported to text, the section is added at the end, and the whole file is sent back — a Google Doc has no bytes to patch in place. Two ClickUp tasks are created on the same press.
google/drive · as SamPATCH /upload/drive/v3/files/1m4…?uploadType=media

Done — section added to Atlas — weekly status, and two tasks in This sprint.

google/gemini-flash9.7k in610 out$0.0051Configure

Names, figures, repositories and customers are changed; token counts and cost are illustrative. The ask, and the shape of the answer, are as they were.

How the turn went

Name the file before you change it, and say what changing it really means.

  1. 01

    Two files can share a name

    An edit to the wrong file does not look wrong afterwards, so the card names the file, who last edited it and when, and links it — and names the match it is not touching. Picking silently between two candidates is the failure this is built to avoid.

  2. 02

    A Google Doc is not patched in place

    It has no bytes to write: the change means exporting the document, editing the text, and sending the whole thing back. The card says that is what is happening rather than claiming an in-place edit, because the difference shows up in revision history.

  3. 03

    Two writes, one press

    The doc and the two tasks are decided together and held together. Splitting them across three cards trains people to press without reading, which is the thing the card exists to prevent.

What it needs

The setup, in the console.

Connection
The Google Workspace preset: an OAuth client an admin registers once, with the parts you mean to use ticked — Gmail, Calendar, Drive, Contacts — attached to the channel.
Credential
Each person's own sign-in, from a Connect button the bot DMs them, held per user. No shared token exists for a channel to spend.
Connection
The ClickUp preset attached to the channel, with the list the tasks land in. Linear, Jira and Asana serve the same ask from their own presets.
Writes policy
confirm. Reading the thread and the doc runs; the append and the tasks show the card.

What it will not do

Enforced outside the model.

  • It never deletes a file the ask did not name, and it will not rename one to tidy up.

  • It cannot reach a document nobody shared with the asker; Drive answers as the person asking and no further.

Try it

Say it in a channel it is in.

The sentence as it was typed. It works in any channel the bot has been invited to that carries the connection above — no command syntax, no form, and follow-ups in the thread need no mention.

@attest_tag write up this thread into the Atlas status doc and open tasks for the two things we agreed

  • Google Drive
  • ClickUp
  • read_thread
  • http_request
  • clickup_create_task

Bring the channel this would live in.

Sign up, connect the service above in one channel, and type this sentence yourself — or run the same binary on your own infrastructure.

All solutions