<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>AirMemo</title>
        <link>https://airmemo.com</link>
        <description>The layer that keeps agents from acting on yesterday</description>
        <lastBuildDate>Tue, 06 Oct 2026 22:04:10 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>AirMemo</title>
            <url>https://airmemo.com/favicon.ico</url>
            <link>https://airmemo.com</link>
        </image>
        <copyright>All rights reserved 2026</copyright>
        <item>
            <title><![CDATA[The shelf, ungoverned]]></title>
            <link>https://airmemo.com/mechanism#the-shelf-ungoverned</link>
            <guid isPermaLink="false">https://airmemo.com/mechanism#the-shelf-ungoverned</guid>
            <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[
<aside class="d59-routing" aria-label="Memo routing"><dl><div class="d59-rl"><dt>FROM</dt><dd>airmemo</dd></div><div class="d59-rl"><dt>TO</dt><dd>you</dd></div><div class="d59-rl"><dt>RE</dt><dd>how the queue works</dd></div><div class="d59-rl"><dt>TRACE</dt><dd>6fb461c</dd></div></dl><p class="d59-routing-stamp" data-status="queued" aria-live="polite">QUEUED</p><p class="sr-only">Memo queued: from airmemo to you, re how the queue works, trace 6fb461c. Not yet receipted.</p></aside>
<p class="d59-stage" data-d59-stage="queued">QUEUED</p>

<p>The problem is the same on the shop floor. The foreman posts the new drawing
on the wall; the part already in the press finishes to the old spec. Nobody
grabs a machine mid-cycle, and nobody expects the new drawing to take effect
until the press stops. Agents are different. Or they shouldn't be. Today,
whatever is already in a session reads as current, and every agent acts on it
that way. Nobody governs the shelf.</p>
<p>The evidence is measured, not anecdotal. In the <a href="https://research.meetless.ai/stale-context/">Meetless stale-context study</a>, 10 frontier models were given a task whose answers had been superseded by dated notes on disk. <strong>0 of 6</strong> got it right, and they were <em>confidently</em> wrong: shipping stale facts while reading zero files. Our own Meetless-style benchmark reproduces the effect on a local model: <strong>1/6</strong> reading the shelf as it is, <strong>4/6</strong> when the in-force memo is pushed into context. The best agent with stale context loses to a mediocre agent with current context.</p>
<h3 id="-the-inversion"> The inversion</h3>
<p>Every tool makes agents smarter. Nobody makes them <em>not wrong</em>. That's the gap
we're closing: not a smarter agent, a better-informed one.</p>
]]></content:encoded>
            <author>hello@airmemo.com (AirMemo)</author>
        </item>
        <item>
            <title><![CDATA[The mechanism: next action, not current sentence]]></title>
            <link>https://airmemo.com/mechanism#the-mechanism-next-action-not-current-sentence</link>
            <guid isPermaLink="false">https://airmemo.com/mechanism#the-mechanism-next-action-not-current-sentence</guid>
            <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[
<p class="d59-stage" data-d59-stage="queued">QUEUED</p>

<p>AirMemo is a shelf, not a memory. A small hook rides the lifecycle events your
agents already expose (session start and prompt submit) and checks one thing:
does the shelf hold an authorized memo for this agent? If it does, the memo is
delivered into the agent's <strong>session context</strong> and is <strong>prompt-visible on the
next turn</strong>. It never touches retrieval, RAG, or memory stores, and it never
interrupts mid-conversation. Delivery is <em>next turn, guaranteed</em>, with an honest
state machine:</p>
<p><code>queued → injected → receipted → expired</code></p>
<p>The librarian decides what goes on the shelf: who may push, to which scopes,
at what priority, and marks each memo with the value that wins when it
conflicts with an older one. <em>"The 2/15 memo supersedes the 2/14 memo; the
winning value: PR #4821 ships."</em> Complete, in-force, precedence-resolved: the
render contract that makes a multi-book shelf actable, not a pile.</p>
<h3 id="-multi-vendor-by-design"> Multi-vendor by design</h3>
<div class="mt-8 flex flex-wrap items-center gap-2"><span class="text-xs/5 font-medium text-ink-soft">Works across the fleets you already run</span><span class="rounded-full border border-teal-700/25 bg-paper-wash px-3 py-1.5 text-xs/5 font-semibold text-teal-700">Claude Code</span><span class="rounded-full border border-teal-700/25 bg-paper-wash px-3 py-1.5 text-xs/5 font-semibold text-teal-700">Codex</span><span class="rounded-full border border-teal-700/25 bg-paper-wash px-3 py-1.5 text-xs/5 font-semibold text-teal-700">Cursor</span><span class="rounded-full border border-teal-700/25 bg-paper-wash px-3 py-1.5 text-xs/5 font-semibold text-teal-700">GitHub Copilot</span><span class="rounded-full border border-teal-700/25 bg-paper-wash px-3 py-1.5 text-xs/5 font-semibold text-teal-700">Gemini CLI</span><span class="rounded-full border border-teal-700/25 bg-paper-wash px-3 py-1.5 text-xs/5 font-semibold text-teal-700">Windsurf</span><span class="rounded-full border border-teal-700/25 bg-paper-wash px-3 py-1.5 text-xs/5 font-semibold text-teal-700">OpenCode</span></div>
<p>No enterprise fleet is single-vendor, so AirMemo isn't either. Seven adapters,
one delivery contract. The hedge is a fixture, not a promise.</p>
<p>Windsurf rides a different rail: Cascade hooks consume only the exit code,
so its delivery is MCP pull: the installer wires the server, and the memo
still lands with a receipt.</p>
<p>OpenCode rides a different rail too: there is no command hook, so its
delivery is a JS shim: the installer drops a plugin that pushes the memo
into the request at prompt admission, and the memo still lands with a
receipt.</p>
<div class="wide-exhibit mt-8 space-y-4"><div class="rounded-xl border border-teal-700/25 bg-paper-wash"><div class="border-b border-teal-700/25 px-4 py-2"><p class="text-2xs/4 font-medium text-teal-700 uppercase">The memo: rendered once, injected five ways</p></div><pre tabindex="0" aria-label="The memo" class="overflow-x-auto px-4 py-3 text-xs/5 whitespace-pre-wrap text-ink">URGENT: PR #4821 ships today: freeze lifted 18:00 UTC

The 2/14 freeze memo is superseded. The deploy window opens 18:00 UTC and closes 20:00 UTC.

- Ship PR #4821 (context-freshness KPI), the release gate for this window
- Do NOT ship PR #4824 (still blocked on design review)
- If the window slips, the new freeze memo lands before 17:45 UTC

On-call: u_priya. Escalate to #incident if the window closes without a ship.

[AIRMEMO · authorized · memo_4821]</pre><div class="px-4 py-2 border-t border-teal-700/25"><p class="text-2xs/4 font-medium text-ink-soft break-all">proof · <!-- -->0e9215c44114ce69bf77a390932c9f15aacfb46ffc3cc136b5883b73c2f96335</p></div></div><div class="grid grid-cols-1 gap-3 sm:grid-cols-2"><div class="overflow-hidden rounded-xl border border-teal-700/25 bg-paper-wash"><div class="flex items-baseline justify-between gap-2 border-b border-teal-700/25 px-4 py-2"><p class="text-xs/5 font-semibold text-ink capitalize">claude</p><p class="text-2xs/4 font-medium text-ink-soft">SessionStart<!-- --> · <!-- -->137<!-- --> tokens</p></div><pre tabindex="0" aria-label="claude rendered document" class="overflow-x-auto px-4 py-3 text-[10.5px]/4 text-ink-soft">{"hookSpecificOutput":{"hookEventName":"SessionStart","additionalContext":"URGENT: PR #4821 ships today: freeze lifted 18:00 UTC\n\nThe 2/14 freeze memo is superseded. The deploy window opens 18:00 UTC and closes 20:00 UTC.\n\n- Ship PR #4821 (context-freshness KPI), the release gate for this window\n- Do NOT ship PR #4824 (still blocked on design review)\n- If the window slips, the new freeze memo lands before 17:45 UTC\n\nOn-call: u_priya. Escalate to #incident if the window closes without a ship.\n\n[AIRMEMO · authorized · memo_4821]"}}</pre></div><div class="overflow-hidden rounded-xl border border-teal-700/25 bg-paper-wash"><div class="flex items-baseline justify-between gap-2 border-b border-teal-700/25 px-4 py-2"><p class="text-xs/5 font-semibold text-ink capitalize">codex</p><p class="text-2xs/4 font-medium text-ink-soft">SessionStart<!-- --> · <!-- -->137<!-- --> tokens</p></div><pre tabindex="0" aria-label="codex rendered document" class="overflow-x-auto px-4 py-3 text-[10.5px]/4 text-ink-soft">{"hookSpecificOutput":{"hookEventName":"SessionStart","additionalContext":"URGENT: PR #4821 ships today: freeze lifted 18:00 UTC\n\nThe 2/14 freeze memo is superseded. The deploy window opens 18:00 UTC and closes 20:00 UTC.\n\n- Ship PR #4821 (context-freshness KPI), the release gate for this window\n- Do NOT ship PR #4824 (still blocked on design review)\n- If the window slips, the new freeze memo lands before 17:45 UTC\n\nOn-call: u_priya. Escalate to #incident if the window closes without a ship.\n\n[AIRMEMO · authorized · memo_4821]"}}</pre></div><div class="overflow-hidden rounded-xl border border-teal-700/25 bg-paper-wash"><div class="flex items-baseline justify-between gap-2 border-b border-teal-700/25 px-4 py-2"><p class="text-xs/5 font-semibold text-ink capitalize">copilot</p><p class="text-2xs/4 font-medium text-ink-soft">sessionStart<!-- --> · <!-- -->124<!-- --> tokens</p></div><pre tabindex="0" aria-label="copilot rendered document" class="overflow-x-auto px-4 py-3 text-[10.5px]/4 text-ink-soft">{"additionalContext":"URGENT: PR #4821 ships today: freeze lifted 18:00 UTC\n\nThe 2/14 freeze memo is superseded. The deploy window opens 18:00 UTC and closes 20:00 UTC.\n\n- Ship PR #4821 (context-freshness KPI), the release gate for this window\n- Do NOT ship PR #4824 (still blocked on design review)\n- If the window slips, the new freeze memo lands before 17:45 UTC\n\nOn-call: u_priya. Escalate to #incident if the window closes without a ship.\n\n[AIRMEMO · authorized · memo_4821]"}</pre></div><div class="overflow-hidden rounded-xl border border-teal-700/25 bg-paper-wash"><div class="flex items-baseline justify-between gap-2 border-b border-teal-700/25 px-4 py-2"><p class="text-xs/5 font-semibold text-ink capitalize">gemini</p><p class="text-2xs/4 font-medium text-ink-soft">SessionStart<!-- --> · <!-- -->137<!-- --> tokens</p></div><pre tabindex="0" aria-label="gemini rendered document" class="overflow-x-auto px-4 py-3 text-[10.5px]/4 text-ink-soft">{"hookSpecificOutput":{"hookEventName":"SessionStart","additionalContext":"URGENT: PR #4821 ships today: freeze lifted 18:00 UTC\n\nThe 2/14 freeze memo is superseded. The deploy window opens 18:00 UTC and closes 20:00 UTC.\n\n- Ship PR #4821 (context-freshness KPI), the release gate for this window\n- Do NOT ship PR #4824 (still blocked on design review)\n- If the window slips, the new freeze memo lands before 17:45 UTC\n\nOn-call: u_priya. Escalate to #incident if the window closes without a ship.\n\n[AIRMEMO · authorized · memo_4821]"}}</pre></div><div class="overflow-hidden rounded-xl border border-teal-700/25 bg-paper-wash"><div class="flex items-baseline justify-between gap-2 border-b border-teal-700/25 px-4 py-2"><p class="text-xs/5 font-semibold text-ink capitalize">cursor</p><p class="text-2xs/4 font-medium text-ink-soft">sessionStart<!-- --> · <!-- -->124<!-- --> tokens</p></div><pre tabindex="0" aria-label="cursor rendered document" class="overflow-x-auto px-4 py-3 text-[10.5px]/4 text-ink-soft">{"additional_context":"URGENT: PR #4821 ships today: freeze lifted 18:00 UTC\n\nThe 2/14 freeze memo is superseded. The deploy window opens 18:00 UTC and closes 20:00 UTC.\n\n- Ship PR #4821 (context-freshness KPI), the release gate for this window\n- Do NOT ship PR #4824 (still blocked on design review)\n- If the window slips, the new freeze memo lands before 17:45 UTC\n\nOn-call: u_priya. Escalate to #incident if the window closes without a ship.\n\n[AIRMEMO · authorized · memo_4821]"}</pre></div></div><p class="text-xs/5 text-ink-soft">Generated by the shipping adapters (hook/platforms/*.go), not mockups; make artifact keeps the committed artifact in lockstep with the code. Claude Code / Codex / Gemini CLI share the hookSpecificOutput envelope; Copilot's and Cursor's command hooks take flat payloads (additionalContext / additional_context); modifiedPrompt is dropped by the runtime, so it is never emitted.</p></div>
<p>The five documents above are generated from the five command-hook adapters
(<code>hook/platforms/claude.go</code>, <code>codex.go</code>, <code>copilot.go</code>, <code>gemini.go</code>,
<code>cursor.go</code>; Windsurf and OpenCode deliver over MCP pull and a JS shim): the
same code paths that run on every session start.
<code>make artifact</code> re-renders them, so the demo cannot drift from the product.</p>
<p>Want the full picture? <a href="/render-all/index.html">One memo, five vendors: side-by-side</a><sup><a id="user-content-fnref-1" data-footnote-ref="true" aria-describedby="footnote-label" href="#user-content-fn-1">1</a></sup></p>
]]></content:encoded>
            <author>hello@airmemo.com (AirMemo)</author>
        </item>
        <item>
            <title><![CDATA[Install: one line, then enroll]]></title>
            <link>https://airmemo.com/mechanism#install-one-line-then-enroll</link>
            <guid isPermaLink="false">https://airmemo.com/mechanism#install-one-line-then-enroll</guid>
            <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[
<p class="d59-stage" data-d59-stage="injected">INJECTED</p>

<div class="d59-console"><p>The hook is a single static binary: no runtime, no daemon install, no admin.
Checksums are verified against the published manifest before anything runs;
the installer never elevates and never touches a config that isn't yours.</p><p>The installer is <strong>held until the public release</strong> (in the works). Builds
are staged and tagged, but the repository is still private, so there is
nothing to download publicly yet. No private links, no preview pipes. When it
ships, the install command comes from the public release on GitHub
(<code>airmemo-hook-&lt;os&gt;-&lt;arch&gt;</code>, one static binary per platform), and the
<code>enroll</code> step wires it into your agent:</p><pre><code class="language-bash"><span><span style="color: var(--shiki-token-comment)"># macOS / Linux (bash): installer verifies SHA256SUMS before anything runs</span></span>
<span><span style="color: var(--shiki-token-comment)">#   curl -fsSL &lt;public-release-url&gt;/install.sh | bash -s -- --platform claude</span></span>
<span><span style="color: var(--shiki-token-function)">airmemo-hook</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">enroll</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">--org</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">YOUR_ORG</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">--org-key</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-keyword)">&lt;</span><span style="color: var(--shiki-token-string)">from-porta</span><span style="color: var(--shiki-color-text)">l</span><span style="color: var(--shiki-token-keyword)">&gt;</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">--platform</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">claude</span></span>
<span></span></code></pre><p>Every release is checksum-published: the installer refuses to run if the
binary doesn't match <code>SHA256SUMS</code>, and refuses to pipe anything to <code>sudo</code>:
user-space install, merge-safe hook config (your existing hooks are
preserved), hash-pinned so re-installs never trip a vendor fingerprint gate.
Platforms: <strong>Claude Code · Codex · Cursor · Copilot · Gemini CLI · Windsurf · OpenCode</strong>.</p></div>
]]></content:encoded>
            <author>hello@airmemo.com (AirMemo)</author>
        </item>
        <item>
            <title><![CDATA[The receipt: proof, not pixels]]></title>
            <link>https://airmemo.com/mechanism#the-receipt-proof-not-pixels</link>
            <guid isPermaLink="false">https://airmemo.com/mechanism#the-receipt-proof-not-pixels</guid>
            <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[
<p class="d59-stage" data-d59-stage="injected">INJECTED</p>

<p>Every delivery writes a <strong>receipt</strong>: an append-only record of what was
delivered, to which agent, on which platform, and when it expired. The receipt
is three things at once:</p>
<ul>
<li><strong>Audit evidence</strong>: what each agent saw, for compliance and post-incident review</li>
<li><strong>Billing meter</strong>: the honest count of governed deliveries</li>
<li><strong>The acquisition metric</strong>: agents under management, a first-class product number from day one</li>
</ul>
<p>Delivered memos are visibly stamped as authorized
(<code>[AIRMEMO · authorized · memo_4821]</code>), so agents and reviewers can always tell
the shelf from graffiti.</p>
]]></content:encoded>
            <author>hello@airmemo.com (AirMemo)</author>
        </item>
        <item>
            <title><![CDATA[The shelf, live]]></title>
            <link>https://airmemo.com/mechanism#the-shelf-live</link>
            <guid isPermaLink="false">https://airmemo.com/mechanism#the-shelf-live</guid>
            <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[
<p class="d59-stage" data-d59-stage="receipted">RECEIPTED</p>

<p>Every number below is one SQL count on the live control-plane database,
read right now, no mockups, no roadmap. Receipts are append-only, so the
receipted count can only go up.</p>
<div class="wide-exhibit mt-8 overflow-hidden rounded-xl border border-teal-700/25 bg-paper-wash"><dl class="grid grid-cols-2 divide-x divide-y divide-teal-700/20 sm:grid-cols-4 sm:divide-y-0"><div class="px-4 py-5"><dt class="text-xs/5 font-medium text-ink-soft">Agents under management</dt><dd class="mt-1 font-display text-2xl/8 font-semibold text-ink tabular-nums">–</dd></div><div class="px-4 py-5"><dt class="text-xs/5 font-medium text-ink-soft">Memos receipted</dt><dd class="mt-1 font-display text-2xl/8 font-semibold text-ink tabular-nums">–</dd></div><div class="px-4 py-5"><dt class="text-xs/5 font-medium text-ink-soft">Pending right now</dt><dd class="mt-1 font-display text-2xl/8 font-semibold text-ink tabular-nums">–</dd></div><div class="px-4 py-5"><dt class="text-xs/5 font-medium text-ink-soft">Composed in 24h</dt><dd class="mt-1 font-display text-2xl/8 font-semibold text-ink tabular-nums">–</dd></div></dl><div class="flex items-center justify-between border-t border-teal-700/25 px-4 py-2.5"><p class="flex items-center gap-1.5 text-xs/5 text-ink-soft"><span class="inline-block size-1.5 rounded-full bg-persimmon-500" aria-hidden="true"></span>No reading yet, the control plane has not answered</p><p class="text-xs/5 text-ink-soft tabular-nums"></p></div></div>
<p>The ticker reads the public <code>/public/fleet.json</code> endpoint: counts only,
never memo contents, no tracking scripts. Stale on your screen? Then the
control plane is down, and that is exactly the moment the shelf earns its
keep.</p>
]]></content:encoded>
            <author>hello@airmemo.com (AirMemo)</author>
        </item>
        <item>
            <title><![CDATA[See it break, then see it fixed]]></title>
            <link>https://airmemo.com/mechanism#see-it-break-then-see-it-fixed</link>
            <guid isPermaLink="false">https://airmemo.com/mechanism#see-it-break-then-see-it-fixed</guid>
            <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[
<p class="d59-stage" data-d59-stage="receipted">RECEIPTED</p>

<div class="wide-exhibit relative overflow-hidden rounded-xl border border-teal-700/25 bg-paper-wash"><div class="relative aspect-video"><video class="h-full w-full" controls="" preload="metadata" poster="/media/gasp-demo-poster.jpg" title="Two agents, the same task: one stale-context agent confidently wrong, one pushed. The receipt trail flips red to green live."><source src="/media/gasp_demo.mp4" type="video/mp4">Your browser does not support the video tag.</video></div><div class="relative flex flex-col gap-2 px-6 py-5 text-center"><p class="font-display text-xl/8 font-semibold text-ink">Two agents, the same task.</p><p class="max-w-sm text-sm/6 text-ink-soft">One stale-context agent, confidently wrong. One pushed. The receipt trail flips red to green live.</p><p class="text-xs/5 font-medium text-ink-soft">Recorded 2026-09-15 · AirMemo-owned benchmark (Meetless protocol)</p></div></div>
]]></content:encoded>
            <author>hello@airmemo.com (AirMemo)</author>
        </item>
        <item>
            <title><![CDATA[Pilot pricing]]></title>
            <link>https://airmemo.com/mechanism#pilot-pricing</link>
            <guid isPermaLink="false">https://airmemo.com/mechanism#pilot-pricing</guid>
            <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[
<p class="d59-stage" data-d59-stage="expired">EXPIRED</p>

<p>Priced per agent seat, governed by the control plane. Variable cost per seat is
pennies; the value is the governance.</p>
<div class="mdx-table-wrap"><table><thead><tr><th>Tier</th><th>Price</th><th>What's in it</th></tr></thead><tbody><tr><td><strong>Free</strong></td><td>$0 (up to 5 agents)</td><td>Basic push, 7-day audit trail: seed a fleet, see the receipts</td></tr><tr><td><strong>Team</strong></td><td>$9 / agent / mo</td><td>Scope routing, priorities, event intake via the integrations endpoint, 30-day audit</td></tr><tr><td><strong>Business pilot</strong></td><td>$19 / $24 / $29 / agent / mo</td><td>Governance workflows, approvals, audit export, managed-hook install</td></tr><tr><td><strong>Enterprise</strong></td><td>From $29 / seat / mo ($348 / seat / yr)</td><td>Self-hosted on-prem, DPA, compliance. The governance layer inside your VPC. 60+ seats, billed annually by invoice with an ACH debit authorization on file, due on receipt. Under 60 seats it is the enterprise pilot: $9/seat/mo, converting at 60</td></tr></tbody></table></div>
<!-- -->
<p>Self-host runs 1.5–2× the applicable net rate. The same codebase, one image,
deployed where your fleet lives. Every anchor sits above us: Claude Code Team
runs ~$100/seat, Copilot $10–39, Codex $20–200. A $9–29 governance layer is the
easy add-on in the same procurement conversation.</p>
]]></content:encoded>
            <author>hello@airmemo.com (AirMemo)</author>
        </item>
        <item>
            <title><![CDATA[The console: who runs the desk]]></title>
            <link>https://airmemo.com/mechanism#the-console-who-runs-the-desk</link>
            <guid isPermaLink="false">https://airmemo.com/mechanism#the-console-who-runs-the-desk</guid>
            <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p>The hook is the delivery. The desk is where your people run it: a web
console at <a href="/app">console</a>, self-serve signup, no approval step. What
your operators get, all shipped today:</p>
<ul>
<li><strong>Write and send memos</strong>: author a memo, set scopes and priority,
choose which fleets get it.</li>
<li><strong>Approve before it lands</strong>: an org-wide broadcast requires a second
pair of hands; the approval queue is where that happens.</li>
<li><strong>Roll out on your schedule</strong>: time a memo for a window, watch it go
from queued to injected to receipted, fleet by fleet.</li>
<li><strong>Pull it back</strong>: revoke or expire a memo from the memo ledger; the
audit trail keeps both records.</li>
<li><strong>Learn from rework</strong>: every correction your people had to make is
captured as evidence: what failed, why, and how often.</li>
<li><strong>See everything on the record</strong>: who signed, which devices, what
every agent saw, drill-down from memo to receipts to devices.</li>
</ul>
<p>Nothing on this list is a mockup or a plan; every surface is live in
the product today. Self-hosted installs run the same console from the
same image.</p>
<!-- -->
]]></content:encoded>
            <author>hello@airmemo.com (AirMemo)</author>
        </item>
        <item>
            <title><![CDATA[The library: who gets to put books in it]]></title>
            <link>https://airmemo.com/mechanism#the-library-who-gets-to-put-books-in-it</link>
            <guid isPermaLink="false">https://airmemo.com/mechanism#the-library-who-gets-to-put-books-in-it</guid>
            <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[

<p>Every context layer eventually asks the same question, and the answer is the
product: who is allowed to put a book on the shelf?</p>
<p>AirMemo is the layer that decides who gets to put books in the library: who
may push, to which scopes, at what priority, under whose approval, and it
records every placement in an append-only receipt trail. The delivery
discipline never varies: never a book slipped mid-paragraph, placed on the
desk, seen at next natural look-up. Nothing interrupts a session; everything
is provable.</p>
<p>That is what compliance runs on. Not on trusting agents to read carefully, but
on receipts: what each agent saw, when it saw it, and who authorized it. For
auditors that is evidence; for operators it is the difference between a fleet
quietly acting on yesterday and a fleet acting on the in-force plan.</p>
<div class="d59-endwall"><span><a class="d59-reply inline-flex min-h-[44px] items-center font-medium text-teal-300 underline decoration-teal-300/40 underline-offset-4 hover:text-teal-200" href="mailto:hello@airmemo.com">Reply to start your pilot</a></span><div class="wide-exhibit mt-8 overflow-hidden rounded-xl border border-teal-700/25 bg-paper-wash"><dl class="grid grid-cols-2 divide-x divide-y divide-teal-700/20 sm:grid-cols-4 sm:divide-y-0"><div class="px-4 py-5"><dt class="text-xs/5 font-medium text-ink-soft">Agents under management</dt><dd class="mt-1 font-display text-2xl/8 font-semibold text-ink tabular-nums">–</dd></div><div class="px-4 py-5"><dt class="text-xs/5 font-medium text-ink-soft">Memos receipted</dt><dd class="mt-1 font-display text-2xl/8 font-semibold text-ink tabular-nums">–</dd></div><div class="px-4 py-5"><dt class="text-xs/5 font-medium text-ink-soft">Pending right now</dt><dd class="mt-1 font-display text-2xl/8 font-semibold text-ink tabular-nums">–</dd></div><div class="px-4 py-5"><dt class="text-xs/5 font-medium text-ink-soft">Composed in 24h</dt><dd class="mt-1 font-display text-2xl/8 font-semibold text-ink tabular-nums">–</dd></div></dl><div class="flex items-center justify-between border-t border-teal-700/25 px-4 py-2.5"><p class="flex items-center gap-1.5 text-xs/5 text-ink-soft"><span class="inline-block size-1.5 rounded-full bg-persimmon-500" aria-hidden="true"></span>No reading yet, the control plane has not answered</p><p class="text-xs/5 text-ink-soft tabular-nums"></p></div></div></div>
<section data-footnotes="true" class="footnotes"><h2 class="sr-only" id="footnote-label"><a href="#footnote-label">Footnotes</a></h2>
<ol>
<li id="user-content-fn-1">
<p><code>hook/scripts/render-all</code> renders the artifact; the landing section
imports it. Claude / Codex / Gemini CLI share the <code>hookSpecificOutput</code>
envelope; Copilot and Cursor take flat payloads (<code>additionalContext</code> /
<code>additional_context</code>); Copilot's <code>modifiedPrompt</code> is dropped by the runtime,
so it is never emitted. <a data-footnote-backref="" aria-label="Back to reference 1" class="data-footnote-backref" href="#user-content-fnref-1">↩</a></p>
</li>
</ol>
</section>]]></content:encoded>
            <author>hello@airmemo.com (AirMemo)</author>
        </item>
    </channel>
</rss>