spec: the spec is the authority — codify upstream-only rule, remove third-party app references#17
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
markqvist/Reticulum(RNS) andmarkqvist/LXMF— the reference libraries.markqvist/Sideband— the author's reference client, admissible only for app-layer field shapes LXMF itself doesn't pin (telemetry/commands/file-attachments).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.mdcleanup (applying the directive)0x40) and reply (0x30/0x31) forms.MeshChatexample from the §2.3 implementation-category note.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:
Notes
tools/changes; verifiers unaffected (they test upstream code, not prose).0x10quarantined for inbound" decision is superseded by this stricter stance — the spec no longer carries the legacy form at all.🤖 Generated with Claude Code