Skip to main content

Roam Graph

@taylor/roam-graphv2026.10.11.1· 2d agoBEHAVIORSWORKFLOWSSKILLS
01README

Periodic reviews for a Roam Research graph: weekly summaries of the Activities block on your daily notes, monthly rollups of the weeklies, quarterly rollups of the monthlies, and a yearly rollup of the quarterlies. Reads and writes the graph through Roam's backend API, writes each summary with Claude, and publishes it back to the graph as a heading block on the daily note of the Monday after the period ends. Rollups find their sources by searching the graph, so summaries you write or edit by hand are rolled up too.

02Behaviors1
@taylor/roam/graphv2026.10.11.1roam_graph.ts

Global Arguments

ArgumentTypeDescription
tokenstringRoam graph API token (Settings → Graph → API tokens). Needs edit access for publish.
graphstringGraph name, as in roamresearch.com/#/app/<graph>
section?stringDaily-note block whose children are summarised, matched case-insensitively and ignoring [[ ]], #, ** and a trailing ':' or '::'
fn dailies()
Read the section block (default: Activities) from each daily note between start and end
fn collect(kind: enum, date?: string)
Gather the source for a weekly summary (the section block of each daily note) or a monthly/quarterly/yearly rollup (the next-smaller summaries in the graph), plus the prompt to write it
ArgumentTypeDescription
kindenumWhich summary to prepare
date?stringA YYYY-MM-DD day inside the period, 'current' for the period containing today, or 'last' for the most recent period that has ended (a week ends on Friday, so on a Friday 'last' is this week)
fn publish(kind: enum, key: string, markdown: string, ifExists?: enum)
Write a summary to the graph as a heading block on the daily note of the first Monday after the period ends, and store it as data
ArgumentTypeDescription
kindenumWhich summary this is
keystringPeriod key from collect: YYYY-MM-DD (week-ending Friday), YYYY-MM, YYYY-Qn or YYYY
markdownstringThe summary as a Markdown outline of '- ' bullets, nested with indentation
ifExists?enumWhat to do when the graph already has this period's summary: leave it, replace its contents in place, or fail

Resources

dailies(infinite)— Entries under the section block of each daily note in a date range
source(infinite)— Source text and prompt for the next summary, from collect (instance 'source')
summary(infinite)— A published summary, one instance per period (summary-week-2026-10-02, summary-month-2026-09, ...)
03Workflows1
@taylor/roam-review89adaf51-bbe1-4313-a94e-967a0c4d4a9d

Write a weekly summary of the Activities on Roam daily notes, or a monthly, quarterly or yearly rollup of the summaries below it, and publish it to the graph

reviewCollect the source, write the summary, publish it
1.collectroam.collect— Gather the period's daily notes or child summaries and build the prompt
2.summariseroam-summarizer.generate— Write the summary with Claude
3.publishroam.publish— Write the summary to the graph and store it as data
04Skills1
roam-review1 file
05Stats
A
93 / 100
Downloads
1
Archive size
36.2 KB
  • Has README or module doc2/2earned
  • README has a code example1/1earned
  • README is substantive1/1earned
  • Most symbols documented1/1earned
  • No slow types (deprecated)1/1earned
  • Dependencies pass trust audit2/2earned
  • Has description1/1earned
  • Platform support declared (or universal)2/2earned
  • License1/2partial

    no SPDX license declared

  • Verified public repository2/2earned
06Platforms
07Labels