NEC-100: ADR 0007 and SAFE-D2 still credit Relay with role-based access control #162

Merged
nectenda-agent merged 2 commits from worktree-nec-100-adr-0007-and-safe-d2-still-credit-relay into main 2026-09-25 00:42:55 +01:00
Collaborator

Task: NEC-100 — https://projectron.nerchure.com/tasks/100

SAFE-D2 (docs/v1/invariants.md) and ADR 0007 still said competitors whose servers read plaintext offer role-based access control. NEC-50 corrected the same claim elsewhere: no Relay release ships read-only, and their Reader role is merged but not released. Both now say a server that reads plaintext could make read-only a simple check, that Relay had not released one as of 24 September 2026, and point at competition-relay.md's Permissions section for sources. ADR 0007's Consequences now describe positioning.md's weakness-to-own as parity today, and drop 'parity is not the goal'. The E2EE argument (a server that cannot read plaintext cannot judge a write) is unchanged. The covering test, security-model-claims.test.ts, gains a comment saying it defends only the disclaimer, not the market fact. spec-delta was mutation-checked: it refuses the SAFE-D2 rewording without the test touch, and accepts it with. conformance.md is regenerated for the one-line shift. Acceptance greps: grep -n role-based docs/v1/invariants.md and grep -n 'role-based|parity is not the goal' docs/v1/adr/0007-no-read-only-membership.md both return nothing.

Spec: docs/changes/NEC-100-adr-0007-safe-d2-relay-rbac/spec.md

Changelog

NONE

Task: NEC-100 — https://projectron.nerchure.com/tasks/100 SAFE-D2 (docs/v1/invariants.md) and ADR 0007 still said competitors whose servers read plaintext offer role-based access control. NEC-50 corrected the same claim elsewhere: no Relay release ships read-only, and their Reader role is merged but not released. Both now say a server that reads plaintext could make read-only a simple check, that Relay had not released one as of 24 September 2026, and point at competition-relay.md's Permissions section for sources. ADR 0007's Consequences now describe positioning.md's weakness-to-own as parity today, and drop 'parity is not the goal'. The E2EE argument (a server that cannot read plaintext cannot judge a write) is unchanged. The covering test, security-model-claims.test.ts, gains a comment saying it defends only the disclaimer, not the market fact. spec-delta was mutation-checked: it refuses the SAFE-D2 rewording without the test touch, and accepts it with. conformance.md is regenerated for the one-line shift. Acceptance greps: grep -n role-based docs/v1/invariants.md and grep -n 'role-based\|parity is not the goal' docs/v1/adr/0007-no-read-only-membership.md both return nothing. Spec: `docs/changes/NEC-100-adr-0007-safe-d2-relay-rbac/spec.md` ## Changelog NONE
NEC-50 corrected positioning.md, competition-relay.md and sync-limitations.md,
which said competitors offer role-based access control; no Relay release ships
read-only. SAFE-D2 and ADR 0007 still said it. Both now say what a server that
reads plaintext could do, that Relay had not released it as of 24 September
2026, and point at competition-relay.md for the dated sources. The E2EE
argument itself is unchanged.

The covering test gains a note on what it does and does not defend for
SAFE-D2: the disclaimer, not the market fact.

Task: NEC-100
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JvnvD1dMmHHb4yYT1MVCQD
Commit the conformance line numbers, and say what Relay had not released
All checks were successful
Release note / release-note (pull_request) Successful in 22s
CI / build (pull_request) Successful in 7m37s
CI / e2e (pull_request) Successful in 4m39s
CI / promote (pull_request) Has been skipped
494f7a9eca
SAFE-D2 grew by a line, so every rule after it in invariants.md moved down
one; the gate regenerated conformance.md but it was not committed. The test
comment said competitors lacked "access control", but Relay ships private
folders; what they had not released is read-only roles.

Task: NEC-100
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JvnvD1dMmHHb4yYT1MVCQD
cruelacid force-pushed worktree-nec-100-adr-0007-and-safe-d2-still-credit-relay from 494f7a9eca
All checks were successful
Release note / release-note (pull_request) Successful in 22s
CI / build (pull_request) Successful in 7m37s
CI / e2e (pull_request) Successful in 4m39s
CI / promote (pull_request) Has been skipped
to c2cbf0a0fd
All checks were successful
Release note / release-note (pull_request) Successful in 14s
CI / build (pull_request) Successful in 4m40s
CI / e2e (pull_request) Successful in 4m50s
CI / promote (pull_request) Has been skipped
CI / e2e (push) Successful in 4m48s
CI / build (push) Successful in 4m53s
CI / promote (push) Successful in 30s
2026-09-25 00:36:00 +01:00
Compare
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Nectenda/nectenda!162
No description provided.