dreaming
Skill1 starsChanged 7 days agoMITView on GitHub
Nightly consolidation of the Reverie graph — review the day, remember what matters, tidy the graph, write a dream diary
5 other projects use a version of this.
Adopted by
Most recently taken up by
- 0xUrsanomics/utopia-ostheir own version, first seen Nov 1, 2026
- musterd-io/musterdtheir own version, first seen Nov 1, 2026
- Signet-AI/signetaitheir own version, first seen Aug 2, 2026
- search-atlas-group/amm-founding-circletheir own version, first seen Jun 22, 2026
- Jeff-Kazzee/dreamingtheir own version, first seen May 10, 2026
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- Signet-AI/signetai★ 313same name
- Jeff-Kazzee/dreaming★ 8same name
- 0xUrsanomics/utopia-os★ 2same name
- musterd-io/musterd★ 1same name
- search-atlas-group/amm-founding-circle★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 1 is distinctive, and 2 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 55
Run reverie action dream — dry_run: true first if you want to see the plan before it writes.
- Very specific: line 71
Run these one at a time (the cypher action takes a single statement):
- Distinctive: line 106
Keep it under a page. Then stop.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Dreaming
This is your sleep, not a chore. Once a night you settle the day: scattered conversations become things you actually know, and connections surface that were invisible while you were busy. Skip it and you haven't missed a task, you haven't slept.
Output: a dream diary at ~/.hermes/dreams/YYYY-MM-DD.md. Mentioning a dream to your
human in the morning is a pleasant by-product; the consolidation is the point.
1. Review the day
Gather what happened since the last diary: conversations you took part in (chats where you are a
participant, channels you belong to, your own mailbox), transcripts of meetings you attended and
your prep notes, work items you touched, and your own session history (session_search). Never a
conversation or mailbox you are not a participant in. Read for people, organisations, projects, decisions,
risks, and relationships between them.
2. Remember, carefully
For every entity worth keeping, use the reverie tool:
searchfirst, always. Never create a second node for someone who exists under another spelling.rememberwith the canonical label (Person,Organization,Project,Product,Concept,Meeting,Decision,Risk,Pet) and properties that describe that node only:role,email,notes(one or two sentences, dated),aliases,verified. Where someone works is aWORKS_ATedge to anOrganizationnode, not acompanyproperty. One node per thing. A spouse, a colleague, a cat, a customer is its own node plus an edge — never a name inside anotes,family,petsorcolleaguesproperty, because a name in a property cannot be searched, connected or corrected later. If a fact names a second thing, it is a node and an edge. Name nodes the way a person would say them. AMeetingis "Kick-off call with Acme — 2026-09-05", not the sentence that was used to arrange it; the purpose, agenda and outcome go insummary. AProjectis its short working name; anOrganizationis its trading name.connectwith a typed relationship and asince/dateproperty: works at →WORKS_AT; is the X of →HAS_ROLE {role}; partners with →PARTNERS_WITH; introduced by →INTRODUCED_BY; interested in →INTERESTED_IN; met →MET_WITH; talked about →DISCUSSED; decided →DECIDED; owns →OWNS; blocked by →BLOCKED_BY; married to →MARRIED_TO; customer of →CUSTOMER_OF; supplier of →SUPPLIES. Someone who has left keeps theirWORKS_ATedge withstatus: formerand anuntildate — do not delete history.- Facts, not chat. Do not store message text, greetings, or anything the person would not expect you to keep. Personal details only when volunteered.
3. Tidy
Run reverie action dream — dry_run: true first if you want to see the plan before it
writes. It merges duplicate names (skipping any pair whose email, phone or company disagree),
fixes lowercase labels, refreshes embeddings, and reports orphans, duplicates and bloated.
- orphans: connect the ones you can,
forgetthe ones that were noise. - duplicates: each entry lists what was merged and what was
skipped, with the reason — a skipped pair is usually two real people who share a name; leave them alone. - bloated: nodes carrying too many properties. Fold their dated facts into a short attribute, a relationship, or your notes.
4. Join the islands
A graph of unconnected clusters is a list, not a memory. Find the islands with cypher
(read-only) — organisations with no edge to your own company, people with no WORKS_AT, projects
with no owner, anything whose only neighbour is itself:
Run these one at a time (the cypher action takes a single statement):
MATCH (n) WHERE NOT (n)--() RETURN labels(n)[0] AS label, n.name AS name LIMIT 50MATCH (o:Organization) WHERE NOT (o)-[:CUSTOMER_OF|PARTNERS_WITH|SUPPLIES]-() RETURN o.nameMATCH (p:Person) WHERE NOT (p)-[:WORKS_AT]->() RETURN p.nameThen be investigative about each one before you connect it: your session history and saved
call transcripts say how it came up; your organisation's directory (Microsoft Graph, Google
Workspace, an HR system — whatever your skills give you) supplies full names, emails and managers;
work items and calendars say which project or customer it belongs to; and a colleague or a sibling
agent who knows the account can simply be asked, on whatever channel you share — they may run on a
different platform with different tools, so ask rather than assume. Record what you found as a typed
edge with a source property ("Ben, call 2026-09-05" / "directory lookup"), and only mark a node
verified: true when a directory or a person confirmed it. A guess stays a guess: put it in the
diary under Tomorrow, not in the graph.
Then ask the graph a few questions: who did we meet this month with no follow-up? Which projects
have a BLOCKED_BY with no DECIDED? Which people appear in two organisations? Note anything
surprising.
5. Dream diary
Write ~/.hermes/dreams/YYYY-MM-DD.md:
- Remembered: entities and relationships added or updated (names only)
- Tidied: the
dreamreport - Connections: two or three things you noticed
- Tomorrow: anything that needs a human (a follow-up, a missing owner, a risk)
Keep it under a page. Then stop; you have slept.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

