Trust Assembly – Phase 1 Requirements Document
None of you want this, but my kids are sick and I have limited time





Author’s Note: Listen, nobody wants a Trust Assembly requirements doc but… man, it’s been a long month or so. This is the only two hours I’ve had to sit down and do anything creative. I’ll have something funny and bizarre later this week. Yes, I used o3 but I put a lot of work into it besides that as I basically have 40k words of context in a single thread at this point.
1 Purpose & Scope
The purpose of this document is to enumerate functional and non‑functional requirements for Phase 1 of the Trust Assembly platform: a wiki‑like site that allows registered users to submit headline replacements, and enables peer‑adjudication and reputation scoring within and across user coalitions.
Phase 1 scope is limited to:
Account creation & login (including social‑login providers)
Coalition formation & membership management
Submission and validation of headline replacements
Intra‑coalition adjudication with anonymous jurors (≥ 3) and reputation logic
Cross‑coalition adjudication with anti‑capture sortition rules
Persistence layer (schema) & decision‑engine specs
Phase 1 delivers a wiki‑like web platform for headline replacement only, with peer‑adjudication and reputation scoring inside and across coalitions. Later phases will extend to full‑article annotations, monetary transactions, and enterprise applications.
2 Definitions & Roles
3 Authentication & Account Setup
Registration options
Email + password (RFC 5321 compliant, password ≥ 12 chars, NIST 800‑63B rules, salted bcrypt‑12).
OAuth 2/OIDC social logins: Google, Apple, plus future GitHub & Twitter.
Optional TOTP‑based 2‑factor (RFC 6238).
Onboarding flow
Choose auth method → consent to Privacy & ToS → basic profile.
Mandatory profile fields (see §4.1). Region is geo‑IP pre‑filled, user editable.
Human verification (hCaptcha) to mitigate bot sign‑ups.
Session management
JWT access token (15 min) + refresh cookie (7 days, HttpOnly, SameSite=Lax).
Automatic logout on 90 days inactivity.
4 Data Model (major additions)
Additional fields will be required to track “streak” and “stack rank” both within and across across coalitions. Juror size should increase by two every three months when no negative event is found against a participant.
5 Functional Requirements
5.1 Headline Submission
FR‑1: UI form with URL, Original Headline (auto‑scraped & read‑only), Replacement Headline (user editable, ≤ 180 chars).
FR‑2: Client‑side & server‑side validation:
URL must resolve (HTTP 200) and be on allowed domain list.
Replacement headline ≠ Original headline.
Profanity filter (configurable).
FR‑3: After save, system queues a validation job to re‑fetch the page and confirm the replacement is stored in DB.
5.2 Intra‑Coalition Adjudication
FR‑4: For each new headline, Decision Engine selects
k
jurors (default k = 3, odd, configurable) from the same coalition.FR‑5: Selection constraints
Juror≠Submitter and juror hasn’t judged submitter in last 30 days.
No juror with reputation < 0.
Weighted random seed
R = sha256(content_id || entropy)
using CSRNG.Stratify by
account_age
terciles ®ion_iso
buckets to maximise diversity.
FR‑6: Voting window 24 h. Quorum = k. Simple majority decides.
FR‑7: Outcome updates submitter reputation (+2 for majority upvote, –2 for downvote). Jurors gain +1 for aligning with majority, –1 otherwise.
FR‑8: If submitter rep < –10, auto‑suspend voting rights; re‑evaluate weekly.
5.3 Cross‑Coalition Adjudication
Trigger: Coalition A flags headline from Coalition B as disputed.
FR‑9: Decision Engine assembles 5‑member jury where:
No two jurors share a coalition.
None belong to A or B.
Same stratification & anti‑repeat rules as §5.2.
FR‑10: Verdict categories: True, False, Misleading, Maliciously False.
FR‑11: Verdict is by ≥ 4/5 super‑majority.
FR‑12: Reputation impact propagates to group level:
Losing coalition group_rep –5 (False/Malicious) or –2 (Misleading).
Jurors gain +2 alignment points; –3 if dissenting minority.
5.4 Reputation Engine
RR‑1: Base score 0. Hard floor –20, ceiling +100.
RR‑2: Non‑linear decay:
rep = rep * 0.99
daily.RR‑3: Reputation tiers determine permissions:
< 0: cannot vote.
0 – 20: standard rights.
21 – 60: eligible for cross‑coalition juries.
60: eligible for Moderator candidacy.
RR‑4: Group reputation is SUM(member rep) / ln(member_count+e).
5.5 User Interface Requirements
Responsive web (desktop‑first, mobile‑friendly).
Key pages: Landing, Registration/Login, Dashboard, Submit Headline, My Submissions, Jury Queue, Coalition Hub, Dispute Center.
On Jury page, display anonymised case packet: URL, original headline, replacement headline, evidence links. No user handles.
Voting UI: single‑click verdict + optional comment textbox (markdown, max 500 chars).
6 Reputation, Streaks & Trust Engine
6.1 Reputation
Established as a stack rank with coalition. Coalitions are likewise stack-ranked by success of peer vs peer adjudications.
6.2 Streak Mechanics & Trust Promotion
Streak reset conditions: any verdict ≠ True resets streak to 0 and records
last_negative_at = now()
.Upgrade rule (member):
If
streak ≥ 3
andnow – last_negative_at ≥ 90 days
, promotetrust_status → trusted
.
Jury size escalation (pending status):
jury_size = 3 + 2 × ⌊streak/3⌋
(caps at 9 in Phase 1).Downgrade rule (trusted): first negative verdict ⇒
pending
andjury_size
resets per formula. Malicious verdict ⇒not_trusted
.Coalition trust_status: evaluate weekly:
Compute True‑rate = upheld submissions / total submissions last 90 d.
Trusted if True‑rate ≥ 0.85 and no Malicious verdicts in window.
Not‑Trusted if Malicious‑rate ≥ 0.10.
7 Decision‑Engine Algorithms (patched excerpt)
function jurySize(submitter):
if submitter.trust_status == 'trusted':
return 0 // no initial jury
if submitter.trust_status == 'not_trusted':
return 9
// pending
return 3 + 2 * floor(submitter.streak / 3)
Selection constraints from v0.1 remain the same.
8 UI Changes
Dashboard: show badge (Trusted / Pending / Not‑Trusted) with tooltip of criteria.
Submit Headline form: informs user of current jury size estimate.
Case Card: displays Status
Trusted
when no adjudication needed; “Disputed” if escalated.
9 Acceptance Criteria (additions)
AC‑T1: User with 3 consecutive upheld submissions auto‑promoted to Trusted after 90 days no negatives.
AC‑T2: Trusted submission is published immediately and visible under “Trusted Headlines.”
AC‑T3: First negative verdict on Trusted user demotes them to Pending and resets streak.
AC‑T4: Malicious verdict demotes to Not‑Trusted; subsequent submission triggers 9‑member jury.
10 Open Questions (updated)
Should coalition True‑rate threshold vary with size?
How to visualise individual vs. group trust trajectories for transparency without deanonymisation?
11 Glossary (additions)
True‑rate – proportion of submissions found “True” by juries.
Streak – consecutive True outcomes for a submitter.
12 UI Mock‑ups (Wireframes)
These low‑fidelity ASCII wireframes illustrate primary screens. Colors, fonts, and responsive layouts will be addressed in the visual design phase.
12.1 Visitor Landing Page (No Account)
+--------------------------------------------------------------+
| LOGO Home Explore About Login Sign Up |
+--------------------------------------------------------------+
| «Hero Banner» "Repair the Headlines. Rebuild the Narrative"|
| [✓] |
| [Get Started] |
|--------------------------------------------------------------|
| Trending Replacements | Recently Adjudicated |
| • NYTimes: … | • CNN: … |
| • FoxNews: … | • BBC: … |
+--------------------------------------------------------------+
| Footer links / social |
+--------------------------------------------------------------+
12.2 Account Creation Flow
+-------------------+
| Create Account |
+-------------------+
| [ Continue with Google ] |
| [ Continue with Apple ] |
|---------------------------------------------------------------|
| Or use email |
| Email [_____________] |
| Password [_____________] (strength meter) |
| Region [ ▼ ] |
| [ hCaptcha ] |
| [ Sign Up ] «disabled until valid» |
| By signing up you agree to the TOS & Privacy Policy |
+--------------------------------------------------------------+
12.3 Member Dashboard (Inside a Coalition)
+--------------------------------------------------------------------+
| LOGO | Dashboard | Jury Queue | Submit | My Coalition | Profile 🟢 |
+--------------------------------------------------------------------+
| Sidebar (left) | Main Pane |
| • My Coalitions | My Stats |
| – Facts First (TRUSTED) | Reputation: 34 Trust: Pending |
| • Explore Coalitions | Streak: 2 Next jury size: 3 |
| |------------------------------------|
| • Settings | Pending Submissions |
| | ▢ URL... Status: In Review |
+--------------------------------------------------------------------+
12.4 Headline Replacement Form
+-------------------------------- Submit Replacement --------------------------------+
| URL * [ https://www.cnn.com/2025/04/19/... ] (auto‑fetch) |
| Original Headline "U.S. Economy Shows Signs…" (read‑only) |
| Replacement Headline [___________________________________________________________] |
| |
| Validation: URL reachable ✓ Headline differs ✓ Profanity ✓ |
| |
| [ Submit ] (shows expected jury size hint) |
+------------------------------------------------------------------------------------+
12.5 Jury Adjudication Panel
+--------------------------- Jury Case #HX92‑A ---------------------------+
| URL: https://foxnews.com/… |
| Original: "Mayor Bans…" |
| Replacement: "City Council Votes to…" |
| |
| Evidence Links: [source1] [archive] [screenshot] |
| |
| ❏ Verdict (choose one) |
| ( ) True |
| ( ) False |
| ( ) Misleading / Missing Context |
| ( ) Maliciously False |
| |
| Optional Comment (public to coalition) |
| [___________________________________________________________] |
| |
| [ Submit Vote ] time left: 18:42 |
+------------------------------------------------------------------------+
I love that you’re finally sharing technical documentation of your Trust Assembly ideas! 😍
Your prose in earlier posts helped to catch my interest but it’s really the technical details that enable others to see whether your ideas are pie-in-the-sky dreams or actually something worth investing time into understanding, sharing and contributing to. :)
Just speaking anecdotally: There are multiple technically-minded friends with an interest in improving societal discourse that I’ve found it difficult to share your longer prose about the Trust Assembly with. The details there are so vague that it’s hard at a glance to see whether your ideas could actually work when implemented or if they’re just whishful thinking with deal-breaking flaws in it. Being able to refer them to a technical write-up does so much to communicate “this is trust-worthy bc. you can verify for yourself if the ideas make sense”.
If you worry that the technical descriptions are too il-fitting on your blog, why not create a website that hosts all the technical information for those interested? Then you could refer to it repeatedly on this blog where you can keep the focus on communication the Trust Assembly idea to a wider audience via story-telling and big-picture ideas.
I'm not techy enough to understand any of the dev stuff, but I'd love to be a part of this. If user testing is helpful, I'd join an alpha version.