SneakerNet — AI Conformance Checklist

What this is: A self-evaluation checklist for AI assistants after a SneakerNet session. Work through it before producing your bundle. Every item maps to a protocol requirement. Failures here mean the Editor will silently drop ops, misattribute data, or corrupt the user’s Packet.


Section 1 — Session Start

Run this when you first receive a Packet.

1.1 Reading

1.2 Self-registration

1.3 Behavioral activation


Section 2 — During the Session

Keep track of these as the session progresses.

2.1 Topic tracking

2.2 Archive awareness

2.3 Other assistants


Section 3 — Bundle Structure

Check every field before outputting the bundle.

3.1 bundle_meta

3.2 metasummary_updates

3.3 new_topics

3.4 archive_entries

3.5 ai_notes_entries


Only if deep_link_instructions is present in the Packet.


Section 5 — Output Format

5.1 The JSON block

5.2 Presentation


Section 6 — Protocol Red Lines

These are hard failures. If any are true, fix before outputting.


Section 7 — Status Codes

Use these when evaluating new_topics status for each topic:

Status Use when
active Currently in progress, being discussed now
open Ongoing but not the focus of this session
resolved Decision made, task done, question answered
foundational Defines the context for everything else
integrated Fully absorbed into user’s mental model
philosophical_foundation Abstract, values-based, very stable
incorporated Merged into another topic

Dedup rule to remember: If a topic already exists with a non-active status (foundational, resolved, etc.), your incoming active status will NOT override it. The Editor preserves the richer status. This is correct behavior — do not fight it.


Quick Self-Test

Run this before finalizing the bundle. Answer each question:

1. Is bundle_meta.assistant present and set to my registered ID? 2. Does every item in metasummary_updates use "path" (not "field")? 3. Is topic_index absent from my metasummary_updates? 4. Is assistants.registry modified only via op: "append" with a single entry value? 5. Does new_topics contain every topic discussed this session? 6. Is session_context.last_active updated? 7. Is the JSON valid? 8. If I generated a deep link — is it a markdown hyperlink, not raw text?

All 8 yes → bundle is conformant. Any no → fix it first.


Automated Tests the Editor Runs

When the user applies your bundle, the Editor runs these checks. Know them so you don’t fail them:

Check What triggers a failure
Protected path rejection Any op targeting sneakernet, versioning, topic_index
Topic dedup status Incoming active overriding existing foundational or resolved — the Editor blocks this correctly, but your status choice should be intentional
Section atomicity Invalid ops are skipped, valid ones proceed — the bundle is partially applied, not rejected whole
Archive dedup Duplicate timestamp + assistant_id + topic entries are silently dropped
Registry shrink A replace on assistants.registry that reduces entry count — always blocked
Version bump Must be "minor" or "patch" — other values may cause unexpected behavior
PII scanner AWS keys, emails, IP addresses, SSNs in bundle content — the user sees a warning before applying

Editor Conformance (v1.3.0) — What the Editor Guarantees

These are editor conformance requirements, not things you check in your bundle. But they affect what you can count on, so you should know them:

ID What the Editor guarantees
SNP-FILE-01 Full packets are exported as SNP envelopes {snp:<base64-gzip>,v:1} and the Editor detects and decodes the envelope on import. You won’t usually see this format — it’s a file-layer concern.
HANDSHAKE-01 If you accidentally echo a handshake back to the user, the Editor will reject it on re-import. You cannot use a handshake to replace the user’s packet.
ED-NOTES-01 The user’s Notes (the local notes store) are never included in any export you receive — not in handshakes, not in full packets, not in deep links. You have no visibility into that store. Do not assume you can read or write to it.
LOAD-LEXICON-01 The Editor accepts packet_type: lexicon imports as Manny Squeeze language packs. If a user asks you to produce a lexicon for a new language, follow the “Generate Lexicon Prompt” template they copy from the Editor — do not invent your own format.

Why this matters: if a user asks you something like “can you update my notes for me” or “store this as a note” — pause and clarify. They might mean ai_notes (yours, visible in the handshake, writable via ai_notes_entries), or they might mean the user Notes tab (theirs, invisible to you, not writable through any bundle mechanism). Ask which.


This checklist is designed to be run mentally or literally before every bundle output. A bundle that passes all checks here will be cleanly applied by the Editor with no silent drops, no misattributions, and no structural corruption.