You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: EmailingEssay/CONCEPT.md
+42Lines changed: 42 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,7 @@ Why does EmailingEssay exist? What problems does it solve?
8
8
-[The Solution: Proactive AI Communication](#the-solution-proactive-ai-communication)
9
9
-[Core Principles](#core-principles)
10
10
-[Relationship with EpisodicRAG](#relationship-with-episodicrag)
11
+
-[Where Each Kind of Fact Lives](#where-each-kind-of-fact-lives)
11
12
-[Design Decisions](#design-decisions)
12
13
-[Summary](#summary)
13
14
@@ -89,6 +90,26 @@ than by habit, so it accrues whether or not anyone remembers to keep it. It is a
89
90
it holds the correspondence and nothing else. But it gives the AI somewhere of its own to
90
91
remember from, and not only somewhere to speak into.
91
92
93
+
What remains includes the act of sending, not only what was sent: the send path now leaves
94
+
its own line in the log, so a delivery that happened can be shown to have happened.
95
+
96
+
### 5. The Address Is the Safeguard
97
+
98
+
An agent that sends without being asked needs something to make that safe. The usual answer is
99
+
to vet the content — a review step, a filter, a rule about what may be said. That answer does
100
+
not hold here. The essay is written by the same judgment that decides to send it, so a content
101
+
check performed by the sender is the sender grading its own work.
102
+
103
+
What makes it safe is the address. One reader, who can answer, and who holds the correction.
104
+
Something sent in error does not stay in the world uncorrected; it comes back on the return
105
+
leg and is answered. That property belongs to the recipient, not to the message — which is
106
+
why `ESSAY_RECIPIENT_EMAIL` is meant to be an address that answers, and why there is no
107
+
broadcast mode here.
108
+
109
+
Widen the address list and the safeguard is not weakened but gone. The channel becomes
110
+
publishing, and nothing on the return leg can reach what was already sent. Every scheduling
111
+
feature in this plugin rests on that assumption.
112
+
92
113
---
93
114
94
115
## Relationship with EpisodicRAG
@@ -127,6 +148,27 @@ operator's side. That line is drawn on purpose: what deserves to become memory i
127
148
128
149
---
129
150
151
+
## Where Each Kind of Fact Lives
152
+
153
+
That was one line. There is a second, and it runs between the documents rather than around the
154
+
plugin: a fact written in two places goes stale in one of them, and the stale copy is the one
155
+
still being read. So each kind of fact is given a single address.
156
+
157
+
| Kind of fact | Canonical place | Example |
158
+
|---|---|---|
159
+
|**Mechanism** — what exists, and how it is connected now |`skills/send-email/SKILL.md`| Replies are pulled from the inbox over IMAP through four gates; the round trip, in **Correspondence Paths**|
160
+
|**Change** — when something changed, and what it made false |`CHANGELOG.md`| Reply ingestion arrived in v1.2.0, and "replies do not come back" stopped being true then |
161
+
|**Rationale** — why it was built this way |`CONCEPT.md`| The fourth principle, *The Correspondence Is Itself a Memory*|
162
+
|**Interpretation** — what any of it means to the one writing |`Identities/IntentionPad.md` — the persona layer, outside the plugin (not shipped with it) | What it is to be answered; on what condition an unprompted send is allowed |
163
+
164
+
The failure this prevents is specific. A document that mixes two of these keeps the half that
165
+
ages well and carries the half that has already expired — mechanism written into a note about
166
+
meaning is the usual case, where the meaning stays true while the mechanism quietly stops
167
+
being. The repair is not a dated footnote. It is to move the mechanism to its own address and
| send |`python main.py send --subject-file s.txt --body-file b.txt`| Send with the subject and body read from files (`utf-8-sig`, newlines normalized) — the way to send a multi-paragraph body, which does not fit on a shell argument line |
53
+
| send |`python main.py send "Subject" --body-file b.txt`| The two forms mix; a positional argument and its file form do not (mutually exclusive) |
51
54
| send |`python main.py send "Subject" "Body" --to-self`| Send a note to the AI's own address (`ESSAY_SENDER_EMAIL`); the ledger records it under that address |
52
55
| wait |`python main.py wait TIME [OPTIONS]`| One-time schedule |
0 commit comments