Skip to content

spec: the spec is the authority — codify upstream-only rule, remove third-party app references#17

Merged
thatSFguy merged 1 commit into
masterfrom
spec/spec-is-authority-no-app-refs
Jun 19, 2026
Merged

spec: the spec is the authority — codify upstream-only rule, remove third-party app references#17
thatSFguy merged 1 commit into
masterfrom
spec/spec-is-authority-no-app-refs

Conversation

@thatSFguy

Copy link
Copy Markdown
Owner

Why

Now that the spec exists, it is the authority — apps conform to it, not the reverse. Previously (pre-1.0) the spec was bootstrapped by reverse-engineering client apps; a leftover of that era (the fields[0x10] reaction app-extension in §5.9.8/§5.9.12) was recently used to argue the spec should keep accommodating an app's behavior. That inversion is the loophole this PR closes.

agent.md §0 — Prime directive (new)

Strict, no exceptions. Every normative claim must be grounded in an admissible upstream source:

  1. markqvist/Reticulum (RNS) and markqvist/LXMF — the reference libraries.
  2. markqvist/Sideband — the author's reference client, admissible only for app-layer field shapes LXMF itself doesn't pin (telemetry/commands/file-attachments).
  3. A runnable tools/ verifier or captured wire vector.

Not admissible — ever: any other client app, third-party (MeshChat, MeshChatX, Columba) or our own (mobile app, webclient, repeater). §8 "Don't" updated to point here.

SPEC.md cleanup (applying the directive)

  • Removed §5.9.12 ("Deployed third-party field variants") in full, plus the §5.9.8/§5.9.9 "Inbound interop" notes, the "Reference implementations: …" lines, and the app migration-status tracking. The spec now documents only the upstream reaction (0x40) and reply (0x30/0x31) forms.
  • Stripped own-app asides (webclient "faithful port" notes; the "SF webclient's first cut" bug aside).
  • Removed a third-party MeshChat example from the §2.3 implementation-category note.
  • Kept Sideband citations (allowed per §0).

Remaining app mentions left in deliberately (flagging for your call)

These are ecosystem/taxonomy context, not wire-claim authority, so I left them — tell me if you want them scrubbed too under the strict reading:

  • Intro (§ top): "the existing client ecosystem (Sideband, Nomadnet, MeshChat, …)"
  • §13 implementation-category table: example lists naming MeshChat/microReticulum and our own mobile-app/webclient/repeater as illustrations of "Cat 1 / Cat 3".

Notes

  • No tools/ changes; verifiers unaffected (they test upstream code, not prose).
  • The earlier "keep 0x10 quarantined for inbound" decision is superseded by this stricter stance — the spec no longer carries the legacy form at all.

🤖 Generated with Claude Code

agent.md gains a §0 "Prime directive": now that the spec exists, every
normative claim must be grounded in an admissible upstream source —
markqvist/Reticulum, markqvist/LXMF, or (for app-layer field shapes the
LXMF library does not pin) the author's reference client markqvist/Sideband
— or a tools/ verifier. No other client app is admissible, third-party or
our own. Apps conform to the spec, not the reverse. §8 points to it.

Applying the directive to SPEC.md:
- Removed §5.9.12 ("Deployed third-party field variants") in full, plus the
  §5.9.8/§5.9.9 "Inbound interop" notes and "Reference implementations:
  MeshChatX/Columba/..." lines, and the migration-status tracking. The
  legacy fields[0x10] reaction and fields[16] reply shapes were app
  inventions; upstream's 0x40 / 0x30+0x31 are the only forms the spec
  documents now.
- Stripped own-app asides (webclient "faithful port" notes, the
  "SF webclient's first cut" bug aside) and a third-party MeshChat example.
- Kept Sideband citations (author's reference client; allowed per §0).
- README "Spec corrections" 2026-06-19 entry reworded to upstream-only and
  to note the removal + the new §0 directive.

This closes the loophole that let an app's behavior be argued as a
constraint on the spec (the fields[0x10] reaction incident).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@thatSFguy thatSFguy merged commit 68e0a7a into master Jun 19, 2026
1 check passed
@thatSFguy thatSFguy deleted the spec/spec-is-authority-no-app-refs branch June 19, 2026 14:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant