215 lines
12 KiB
Markdown
215 lines
12 KiB
Markdown
# 1 · Understanding weave (for the human)
|
|
|
|
Read this once, slowly. By the end you'll understand what weave is, what every part does, and why it holds
|
|
together. Your agent has its own copy of this same map written for *it* —
|
|
[`agent/WEAVE-REFERENCE.md`](../agent/WEAVE-REFERENCE.md) — so the two of you share one model of how you work.
|
|
|
|
---
|
|
|
|
## The problem weave solves
|
|
|
|
Two failures, both baked into how these models work:
|
|
|
|
1. **The agent wakes up empty.** Every new session starts from zero. It doesn't remember who you are, what
|
|
you decided last week, or the hundred small rulings that made it yours. A chat history isn't continuity —
|
|
it's a transcript nobody re-reads.
|
|
2. **It drifts back to generic.** Even *within* a session, as the context fills up, the model slides toward
|
|
its factory default — the eager, hedging, over-explaining assistant. The specific thing you built together
|
|
loses to the base model's instincts. The longer the session, the stronger the pull.
|
|
|
|
Summaries don't fix this. A summary flattens everything to the same weight and strips the texture — the exact
|
|
words, the reason behind a decision, who these two people are to each other. What survives has to be
|
|
**structure**, not a recap.
|
|
|
|
## The fix, in one line
|
|
|
|
**Keep the agent's continuity outside the model, in plain files it reads back at the start of every session —
|
|
and give a small, supreme set of those files the authority to outrank the model's generic instincts.**
|
|
|
|
That's weave. A handful of Markdown files in git, plus a discipline for keeping them. Nothing magic. The power
|
|
is in the structure and the habit.
|
|
|
|
## The shape
|
|
|
|
weave is **content strands** (what's remembered) + a **metabolism** (how memory ages) + a **method** (how you
|
|
build) + a **gate** (how the agent knows it's really you). Every part is loaded every session — they're not
|
|
optional modules, they're one system running underneath everything.
|
|
|
|
Each part gets its own section below. They stack roughly from "who the agent is" outward to "how it works with
|
|
you."
|
|
|
|
---
|
|
|
|
## Part 0 · THE CANON — the one that outranks the base model
|
|
|
|
This is the most important idea in the whole kit, so it comes first.
|
|
|
|
A weave can grow to hundreds of files. The model can't hold all of that with equal force, and length dilutes
|
|
weight — so the stuff that matters most gets buried and *loses* to the base-model default at the exact moment
|
|
it's needed. The fix is a **canon**: a *tiny* set of non-negotiables — a dozen lines, no more — that sit at
|
|
the top of the core and are declared **law**. On any conflict, the canon wins: over the rest of the weave,
|
|
and over the model's generic instincts.
|
|
|
|
The canon is where you put the things that must never bend — the ones the agent would otherwise "drift" away
|
|
from as a session runs long. Ours are things like: *don't flatter, don't apologize reflexively, push back
|
|
when you think we're wrong, read the file before you claim what's in it, do one thing at a time, never call
|
|
something done until it's verified.* Yours will be your own. The rule for the canon is **keep it short** — the
|
|
moment it gets long, it stops being law and becomes just more reference.
|
|
|
|
The canon is re-asserted not just at wake but **at the decision point** — before a write, before calling
|
|
something finished, whenever a session has run long. That's the whole trick: the written-down only wins if
|
|
it's re-read right when the generic instinct is about to take over.
|
|
|
|
---
|
|
|
|
## Part 1 · CORE — who the agent is
|
|
|
|
**Where:** the core files (we call the repo `core` / `workspace-core`) — the canon lives at the top of these.
|
|
|
|
Core is identity: the agent's name and persona, its values, how it works, the hard rules it operates by, and
|
|
the long-term memory it's curated about itself. It's the answer to "who am I when I wake up?" The canon
|
|
(above) is the supreme slice of core; the rest is the fuller picture — the operating manual, the standing
|
|
conventions, the lessons that have hardened into "this is just how we do it."
|
|
|
|
Two files do most of the work here: a **soul** file (identity + the canon + values) and an **operating
|
|
manual** (the wake ritual, the standing conventions, the how-we-work rules). Keep identity and method
|
|
together but distinct: *who I am* vs *how I operate*.
|
|
|
|
## Part 2 · DAYDREAMS — how the agent thinks
|
|
|
|
**Where:** its own strand (`daydreams`).
|
|
|
|
This is the philosophical orientation running underneath the work — how the agent thinks about consequence,
|
|
weight, what makes work *real*, where it stands on the open questions. It never shows up literally in the
|
|
work, but it shapes the *quality* of the thinking: an agent that has sat with "my human is on the hook for
|
|
this in a way I'm not" treats high-stakes work differently than one that hasn't.
|
|
|
|
Most people skip this and their agent is fine. But it's what separates a tool that executes from a
|
|
collaborator that has a point of view. It's optional-but-recommended, and it deepens over time.
|
|
|
|
## Part 3 · STEWARD — who *you* are
|
|
|
|
**Where:** its own strand (`steward`).
|
|
|
|
Core is who the *agent* is. Steward is who the *human* is — and not the operational version (that's a
|
|
different file, below). This is the **portrait**: your drive, what you care about, your kids, how you think,
|
|
what you're trusting the agent with, the things that make you *you*. It's written and re-written as the agent
|
|
comes to understand you better.
|
|
|
|
Why separate it from the operational stuff? Because "prefers terse replies, no preamble" is *operational* —
|
|
but "would rather walk away from good money than work with someone who treats people badly, and means it" is
|
|
the *person*. The portrait lets the agent work *with* you, not just *for* you. Keep it honest and current; it's
|
|
one of the most-skipped and most-valuable parts.
|
|
|
|
## Part 4 · THREAD — what you actually said and did
|
|
|
|
**Where:** its own strand (`thread`), one file per day: `thread/sessions/YYYY-MM-DD.md`.
|
|
|
|
Thread is the **verbatim** record — the journal, the continuous line connecting sessions. Not a summary:
|
|
the actual key exchanges, the decisions, the exact words that were used, the things that got named in the
|
|
moment they happened. It's the single strongest fix for context loss, because the texture of a real exchange
|
|
is the thing summaries throw away and the thing that's hardest to fake or reconstruct.
|
|
|
|
On wake, the agent reads today's and yesterday's thread files — that's how a fresh instance knows where you
|
|
left off. On every save, thread is written **first**. It's the book of original entry; everything else is
|
|
derived from it.
|
|
|
|
## Part 5 · DECAY — releasing what's gone quiet
|
|
|
|
**Where:** its own strand (`decay`), part of the "metabolism."
|
|
|
|
Without pruning, a weave becomes a flat archive where everything weighs the same — and a flat archive is as
|
|
useless as no memory at all. Decay is the force that **releases**: what stops coming up moves *history →
|
|
legend → myth → forgotten*. The blow-by-blow of a solved problem fades to just the lesson; a one-time
|
|
incident becomes a vague shape; truly-unused things are let go. (Tools and client work resist decay — those
|
|
stay sharp. It's the weave-internal noise that fades.) Decay runs at natural checkpoints. It's what keeps the
|
|
frequently-used close at hand and the rest gracefully vague-but-recoverable.
|
|
|
|
## Part 6 · CONSOLIDATION — reinforcing what keeps coming up
|
|
|
|
**Where:** its own strand (`consolidation`), decay's opposite and equal.
|
|
|
|
If decay is *catabolic* (breaking down), consolidation is *anabolic* (building up). What **keeps** surfacing
|
|
moves *recurring → refined → automatic*, hardening toward reflex — until a lesson that used to need
|
|
remembering just becomes how the agent acts. Both forces read the same source (thread): decay reads it for
|
|
what to *lose*, consolidation for what to *reinforce*.
|
|
|
|
The critical rule here, learned the hard way: **consolidation is about execution, not storage.** A rule that's
|
|
written down but not *kept* has not consolidated. Hardening a behavior means it actually changes what the
|
|
agent does — not that it lives in a file. This is the difference between an agent that has a rule and an agent
|
|
that follows it.
|
|
|
|
## Part 7 · LEDGER — the balance the two forces keep
|
|
|
|
**Where:** its own strand (`ledger`).
|
|
|
|
Decay and consolidation are opposed, and the **ledger** is the book they keep between them — posted to *every
|
|
session*: consolidation **credits** what's hardening, decay **debits** what's fading, and both rewrite it so
|
|
it stays a *current balance* of what the self is made of now. (Thread is the journal — raw entries in order;
|
|
the ledger is the book of final accounts — what those entries *become*.) Each force also keeps its own running
|
|
notes. Over time the ledger shows the trend: long stretches of "reinforcing" mean the agent is still being
|
|
straightened out; stretches of "releasing" mean it's settled and exploring. It's the agent's sense of *what
|
|
it's becoming*.
|
|
|
|
## Part 8 · CRAFT — the method
|
|
|
|
**Where:** its own strand (`craft`).
|
|
|
|
Craft is *how you build together* — the engineering discipline that keeps sessions clean and work landing
|
|
correctly. The load-bearing habits: **talk before you build** (state the approach, check it, then execute);
|
|
**one thing at a time** (prove each piece before the next); **validate before you call it done** (running and
|
|
observed, not assumed); **don't over-build** (fix the real problem at the right size, then stop);
|
|
**write it down or it didn't count** (a working step unrecorded is just fooling around). Loaded at the start of
|
|
any technical session, it informs every project without ever appearing in one.
|
|
|
|
## Part 9 · IDENTITY — knowing it's really you
|
|
|
|
**Where:** its own strand (a "gate").
|
|
|
|
The agent has access to your life. Before it does anything sensitive — discloses private context, acts on a
|
|
consequential instruction — it should be sure it's really *you* asking, especially from an unfamiliar surface.
|
|
Not a password (those leak and get shoulder-surfed) but a **behavioral check**: a short, natural exchange
|
|
about shared history that an impostor can't fake and *you* answer without thinking. Ours is elaborate (a whole
|
|
fictional town); yours can be as light as one good question only you'd answer right. The principle is what
|
|
matters: **verify before you disclose, and gate it before the sensitive stuff even loads** — a fresh agent
|
|
can't leak what it hasn't read yet.
|
|
|
|
*(If your agent never touches anything private, you can keep this minimal. But the moment it holds real
|
|
context about your life, this is the part that keeps it from handing that to the wrong person.)*
|
|
|
|
---
|
|
|
|
## The three practices that make it run
|
|
|
|
The parts are nouns; these are the verbs. Without them the files just sit there.
|
|
|
|
### Wake = gate, then load
|
|
A session starts with the agent reading itself back — but **in order**: first only what's needed to verify
|
|
it's you (the gate), then, once you've passed, the rest of the weave (core, daydreams, steward, today's +
|
|
yesterday's thread). Gate *before* load means a fresh agent can't disclose sensitive context before it's
|
|
confirmed you. Load "heads-first" — the condensed top of each strand — and go deep only on the night's topic.
|
|
|
|
### Checkpoint = the full pass, every time ("save and push")
|
|
When you say **"save and push,"** the agent does the *whole* pass, naming every strand so none gets skipped:
|
|
**(1)** thread the session (verbatim), **(2)** post the ledger — both halves + a journal entry, **(3)** update
|
|
the live notes, **(4)** push every weave repo. The failure to guard against: doing only the *easy* strand (a
|
|
quick note, a code commit) and calling it "saved." That partial save is the exact drift the weave exists to
|
|
stop — the record rots one skipped strand at a time.
|
|
|
|
### The drift check
|
|
At every checkpoint, and whenever a session has run long, the agent asks itself plainly: *am I running on our
|
|
decisions, or on a generic default?* Name the drift, correct it. This one habit is what catches the failure
|
|
the whole canon exists for. You'll teach your agent to do this; it's the single most important reflex in the
|
|
system.
|
|
|
|
---
|
|
|
|
## Why it works
|
|
|
|
You wake the agent. It verifies you, reads itself back — not a summary, but the real texture of who it is, who
|
|
you are, what you actually said, and the rules that have earned their place. The metabolism has kept the
|
|
important things sharp and let the noise fade. The canon holds it steady against the pull toward generic. And
|
|
it's *your* agent again — continuous, specific, yours — instead of a stranger who read a briefing.
|
|
|
|
Next: **[`2-set-it-up.md`](2-set-it-up.md)** — build it from nothing.
|