Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .abcd/development/brief/06-delivery/03-out-of-scope.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@ gate. That is what keeps "not hand-counted" true after the day it was written.
- `itd-176` — Whatever ships says how hard anyone looked at it (Phase 7)
- `itd-201` — every question abcd's agents put to a human is asked one at a time, in plain language, in the addressee's register, with options that widen
- `itd-2609061543533170` — one verb sets up a managed repository's release-rendered site end to end: the site composition, the wrangler configuration, the render-then-deploy workflow, the environments it needs, and the worker itself where a credential is held
- `itd-2609151838312703` — sessions on one machine or one local network leave each other messages in a shared mailbox abcd owns (the built-in basic; nothing leaves the local network)
- `itd-2609151838327688` — an opt-in adapter to a local message broker brings push delivery and cross-machine reach to the session mailbox (sequenced after the mailbox)
- `itd-2609151541116052` — every question an interview puts to a human shows the thing being decided before it asks, at every step (refines itd-201)
- `itd-2609151658486398` — a release cut publishes the security advisories its fixes close, and closes those resolved as won't-fix (the publication step the 2026-08-27 advisory-handling pilot named as its target)
- `itd-2609091014076309` — Session and agent worktrees live in a machine-scoped store (`~/.abcd/worktrees/<root-sha>/<name>/`) that abcd lists and reclaims, never beside the user's own projects (the rule is adr-2609091248200336; `builds_on` itd-118, whose worktree clause it supplies the store and the reclaim verb for)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
id: itd-2609151838312703
slug: sessions-on-one-machine-or-one-local-network-leave-each-othe
spec_id: null
kind: null
suggested_kind: null
reclassification_history: []
builds_on: []
severity: minor
impact: additive
origin: researcher-authored
production_mode: dictated-and-formatted
---

# Sessions on one machine or one local network leave each other messages in a shared mailbox abcd owns: a session under another account or on another machine writes a signed record into a shared directory, the recipient's prompt hook injects it and acknowledges it, and every message stays a readable record; no daemon, no dependency, nothing leaves the local network

## Press Release

> _Seeded from a quoted-text intent capture. Expand into the full press-release narrative before planning._

## Why This Matters

Sessions on one machine or one local network leave each other messages in a shared mailbox abcd owns: a session under another account or on another machine writes a signed record into a shared directory, the recipient's prompt hook injects it and acknowledges it, and every message stays a readable record; no daemon, no dependency, nothing leaves the local network

## Mechanism

> _Prompted (the claim-recording gradient): why the authors expect this to work, as a falsifiable "we expect X because Y" — not the outcome restated. Replace this line with the claim, or with the exact token `None stated.` alone on its line to record the claim as considered and declined._

## Scope Conditions

> _Required (the claim-recording gradient): the population, platform, scale, or assumptions this claim holds under, one per top-level bullet — `abcd intent plan` stamps each with a persistent identity. Replace this line with those bullets, or with the exact token `None stated.` alone on its line._

## Acceptance Criteria

> _Required (the itd-1 discipline): add at least one Given-When-Then bullet describing the verifiable bar for "shipped" before this draft can be planned._

## Prior Art

- [2026-09-15-agent-messaging-on-a-local-network](../../research/notes/2026-09-15-agent-messaging-on-a-local-network.md) — the survey this draft rests on: a Maildir-shaped shared-directory mailbox ranked first as the built-in basic under the local-only bound.
- [basics-built-in-adapters-bring-power](../../principles/basics-built-in-adapters-bring-power.md) — the stance that makes this the basic half; the broker adapter is itd-2609151838327688.
- The prompt-router hook (`abcd hook prompt-router`, itd-20's loader) — the injection path the mailbox reuses; no second hook.
- The hand protocol of 2026-09-15: two sessions under two accounts passing dated notes through one shared markdown file; this draft removes its two failure modes (colliding appends, no acknowledgement).

## Open Questions

_None recorded yet._

## Audit Notes

_Empty. Populated by intent-auditor when intent moves to shipped/._
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
id: itd-2609151838327688
slug: an-opt-in-adapter-to-a-local-message-broker-brings-push-deli
spec_id: null
kind: null
suggested_kind: null
reclassification_history: []
builds_on: [itd-2609151838312703]
severity: minor
impact: additive
origin: researcher-authored
production_mode: dictated-and-formatted
---

# An opt-in adapter to a local message broker brings push delivery and cross-machine reach to the session mailbox: with the adapter enabled a session is woken the moment a message arrives, machines on the local network exchange messages without a shared mount, and every delivered message is still mirrored to the mailbox as a record; without it the mailbox works as before

## Press Release

> _Seeded from a quoted-text intent capture. Expand into the full press-release narrative before planning._

## Why This Matters

An opt-in adapter to a local message broker brings push delivery and cross-machine reach to the session mailbox: with the adapter enabled a session is woken the moment a message arrives, machines on the local network exchange messages without a shared mount, and every delivered message is still mirrored to the mailbox as a record; without it the mailbox works as before

## Mechanism

> _Prompted (the claim-recording gradient): why the authors expect this to work, as a falsifiable "we expect X because Y" — not the outcome restated. Replace this line with the claim, or with the exact token `None stated.` alone on its line to record the claim as considered and declined._

## Scope Conditions

> _Required (the claim-recording gradient): the population, platform, scale, or assumptions this claim holds under, one per top-level bullet — `abcd intent plan` stamps each with a persistent identity. Replace this line with those bullets, or with the exact token `None stated.` alone on its line._

## Acceptance Criteria

> _Required (the itd-1 discipline): add at least one Given-When-Then bullet describing the verifiable bar for "shipped" before this draft can be planned._

## Prior Art

- [itd-2609151838312703](itd-2609151838312703-sessions-on-one-machine-or-one-local-network-leave-each-othe.md) — the basic this adapter extends; sequenced after it, and it shares the mailbox's record contract.
- [2026-09-15-agent-messaging-on-a-local-network](../../research/notes/2026-09-15-agent-messaging-on-a-local-network.md) — ranks an embedded NATS server with JetStream as the adapter, with an MCP mailbox server as the runner-up.
- [basics-built-in-adapters-bring-power](../../principles/basics-built-in-adapters-bring-power.md) — the stance; the adapter is opt-in and never a precondition.

## Open Questions

_None recorded yet._

## Audit Notes

_Empty. Populated by intent-auditor when intent moves to shipped/._
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Basics built in, an external dependency brings full power

**The rule.** Every abcd capability ships with a basic form that works with
no daemon and no dependency beyond the abcd binary and the operating system,
and offers an opt-in adapter to an external dependency for the full form. The
basic is never a stub: it does the job at the scale a single person or a small
team hits first, and it keeps working when the adapter is absent. The adapter
never becomes a precondition: a repository or a machine that declines it
loses reach or speed, not the capability.

**Why.** abcd is for people who know what they want to build and need help
shipping it; a capability that needs a broker, a service, or a network before
it does anything is a capability most of them will never switch on, and a
capability that only works through a vendor's cloud is one they cannot trust
with their record. The basic form is also where the contract is discovered,
which is the same reason the [script-first MVP](script-first-mvp.md) puts the
first cut in a script: the on-disk shapes, the failure modes and the verbs
worth having stabilise under real use before the adapter has to preserve
them. And the adapter's cost is real: a running process, an authentication
story, a second audit trail; it should be paid by the people who need what it
buys, not by everyone.

**Bounds.**

- The basic form and the adapter share one record contract. What the basic
writes as a file, the adapter mirrors as a file; a capability is never
auditable in one form and opaque in the other.
- The adapter is host-agnostic in the same way the basic is: it depends on
the external tool, never on a particular agent harness or a vendor's
cloud. A local-network dependency qualifies; a hosted relay does not.
- "Basic" is measured at the user surface, not at the code: the test is
whether a person with the binary alone can do the thing, not whether the
code path is short.

**Live instances.** The oracle backends (host-delegated by default; native,
CLI, API and MCP as opt-in adapters). The secret scanners (the native
detector is the default; gitleaks and trufflehog are opt-in dependencies the
install offers). The session mailbox (a shared-directory mailbox is the
basic; an embedded broker is the adapter).

**Promotion.** This principle is the standing statement of the "host-delegated
by default" boundary in the conventions, widened from LLM work to every
external dependency. No enforcement hook exists; per the promotion path in
this directory's [README](README.md), it becomes a discipline-kind intent
the moment one does.
Original file line number Diff line number Diff line change
Expand Up @@ -1684,6 +1684,12 @@ Per hand-run, append:
- **Proposal:** whenever a user is interviewed, provide the appropriate
context: before asking whether acceptance criteria stand, show them; for
every interaction during the interview.
### 2026-09-15 — messaging between sessions on one machine and one local network (hand-run at filing)

- **Proposal:** the best way for a local setup that lets agents communicate
across user accounts and machines on the same network; whether Hermes or
OpenClaw answer it; whether abcd can carry it, given that abcd comes with
basic functionality and an external dependency brings full power.
- **Table:**

| Part | Type | Home |
Expand Down Expand Up @@ -1731,3 +1737,23 @@ Per hand-run, append:
advisories triaged today ended in three different states (fixed and released;
fix in progress; not a vulnerability, won't-fix), which is the case split the
intent's criteria have to cover.
| A shared-directory mailbox between sessions, across accounts and mounts, delivered by the prompt hook | capability | intent `itd-2609151838312703` |
| An opt-in adapter to an embedded broker for push delivery and cross-machine reach | capability | intent `itd-2609151838327688`, sequenced after the mailbox |
| "abcd comes with basic functionality; an external dependency brings full power" | stance | principle `basics-built-in-adapters-bring-power` |
| The survey with its sources and rankings | reference | research note `2026-09-15-agent-messaging-on-a-local-network` |
| A message from another account is untrusted input: signed, size-capped, sanitised, injected only from a mailbox the recipient owns | trust rule | an ADR at the mailbox's planning; not filed yet |

- **Links:** the adapter `builds_on` the mailbox; both refine the
host-delegated-by-default boundary in the conventions. No reversal.
- **Verdict:** four options offered (SPLIT into two intents plus principle
and note; one intent covering both halves; HOLD with the note and the
principle only; decide later); the maintainer chose SPLIT. The table's
routing survived as offered.
- **Notes:** two constraints arrived mid-run and reshaped the survey before
it returned: local machine and local network only, and the
basics-plus-adapter stance. The first removed the harness's own
cross-machine path (vendor-relayed) from consideration; the second turned
a ranking of transports into a pair of rungs. The named tools both turned
out to be agent runtimes with their own peer protocols, not message paths
for a foreign harness, which is the finding that made "build it into abcd"
the answer rather than "adopt one of them".
Loading
Loading