Changes for page Requirements

Last modified by Robert Schaub on 2025/12/24 20:34

From version 1.1
edited by Robert Schaub
on 2025/12/11 18:37
Change comment: Imported from XAR
To version 8.6
edited by Robert Schaub
on 2025/12/16 20:28
Change comment: Renamed back-links.

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,1 @@
1 -FactHarbor.Specification.WebHome
1 +FactHarbor.Archive.FactHarbor V0\.9\.18.Specification.WebHome
Content
... ... @@ -1,177 +1,372 @@
1 1  = Requirements =
2 2  
3 -This chapter defines all functional, non-functional, user-role, and federation requirements for FactHarbor.
3 +This page defines **Roles**, **Responsibilities**, and **Rules** for contributors and users of FactHarbor.
4 4  
5 -It answers:
5 +== Roles ==
6 6  
7 -* Who can do what in the system?
8 -* What workflows must FactHarbor support?
9 -* What quality, transparency, and federation guarantees must be met?
7 +=== Reader ===
10 10  
11 -----
9 +**Who**: Anyone (no login required).
12 12  
13 -= User Roles =
11 +**Can**:
14 14  
15 -== Reader ==
13 +* Browse and search claims
14 +* View scenarios, evidence, verdicts, and timelines
15 +* Compare scenarios and explore assumptions
16 +* Flag issues, errors, contradictions, or suspicious patterns
17 +* Use filters, search, and visualization tools
18 +* Create personal views (saved searches, bookmarks - local browser storage)
19 +* **Submit claims automatically** by providing text to analyze - new claims are added automatically unless equal claims already exist in the system
16 16  
17 -Responsibilities:
21 +**Cannot**:
18 18  
19 -* Browse and search claims
20 -* View scenarios, evidence, verdicts, and timelines
21 -* Compare scenarios and explore assumptions
22 -* Flag issues, errors, contradictions, or suspicious patterns
23 +* Modify existing content
24 +* Access draft content
25 +* Participate in governance decisions
23 23  
24 -Permissions:
27 +**Note**: Readers can request human review of AI-generated content by flagging it.
25 25  
26 -* Read-only access to all published claims, scenarios, evidence, and verdicts
27 -* Use filters, search, and visualization tools (“truth landscape”, timelines, scenario comparison, etc.)
28 -* Create personal views (saved searches, bookmarks, etc.)
29 +=== Contributor ===
29 29  
30 -Limitations:
31 +**Who**: Registered and logged-in users (extends Reader capabilities).
31 31  
32 -* Cannot change shared content
33 -* Cannot publish new claims, scenarios, or verdicts
33 +**Can**:
34 34  
35 -----
35 +* Everything a Reader can do
36 +* Submit claims
37 +* Submit evidence
38 +* Provide feedback
39 +* Suggest scenarios
40 +* Flag content for review
41 +* Request human review of AI-generated content
36 36  
37 -== Contributor ==
43 +**Cannot**:
38 38  
39 -Responsibilities:
45 +* Publish or mark content as "reviewed" or "approved"
46 +* Override expert or maintainer decisions
47 +* Directly modify AKEL or quality gate configurations
40 40  
41 -* Submit claims
42 -* Propose new claim clusters (if automatic clustering is insufficient)
43 -* Draft scenarios (definitions, assumptions, boundaries)
44 -* Attach evidence (sources, documents, links, datasets)
45 -* Suggest verdict drafts and uncertainty ranges
46 -* Respond to reviewer or expert feedback
49 +=== Reviewer ===
47 47  
48 -Permissions:
51 +**Who**: Trusted community members, appointed by maintainers.
49 49  
50 -* Everything a Reader can do
51 -* Create and edit **draft** claims, scenarios, evidence links, and verdict drafts
52 -* Comment on existing content and discuss assumptions
53 -* Propose corrections to misclassified or outdated content
53 +**Can**:
54 54  
55 -Limitations:
55 +* Review contributions from Contributors and AKEL drafts
56 +* Validate AI-generated content (Mode 2 → Mode 3 transition)
57 +* Edit claims, scenarios, and evidence
58 +* Add clarifications or warnings
59 +* Change content status: `draft` → `in review` → `published` / `rejected`
60 +* Approve or reject **Tier B and C** content for "Human-Reviewed" status
61 +* Flag content for expert review
62 +* Participate in audit sampling
56 56  
57 -* Cannot *publish* or mark content as “reviewed” or “approved”
58 -* Cannot override expert or maintainer decisions
59 -* Cannot change system-level settings, roles, or federation configuration
64 +**Cannot**:
60 60  
66 +* Approve Tier A content for "Human-Reviewed" status (requires Expert)
67 +* Change governance rules
68 +* Unilaterally change expert conclusions without process
69 +* Bypass quality gates
70 +
71 +**Note on AI-Drafted Content**:
72 +
73 +* Reviewers can validate AI-generated content (Mode 2) to promote it to "Human-Reviewed" (Mode 3)
74 +* For Tier B and C, Reviewers have approval authority
75 +* For Tier A, only Experts can grant "Human-Reviewed" status
76 +
77 +=== Expert (Domain-Specific) ===
78 +
79 +**Who**: Subject-matter specialists in specific domains (medicine, law, science, etc.).
80 +
81 +**Can**:
82 +
83 +* Everything a Reviewer can do
84 +* **Final authority** on Tier A content "Human-Reviewed" status
85 +* Validate complex or controversial claims in their domain
86 +* Define domain-specific quality standards
87 +* Set reliability thresholds for domain sources
88 +* Participate in risk tier assignment review
89 +* Override AKEL suggestions in their domain (with documentation)
90 +
91 +**Cannot**:
92 +
93 +* Change platform governance policies
94 +* Approve content outside their expertise domain
95 +* Bypass technical quality gates (but can flag for adjustment)
96 +
97 +**Specialization**:
98 +
99 +* Experts are domain-specific (e.g., "Medical Expert", "Legal Expert", "Climate Science Expert")
100 +* Cross-domain claims may require multiple expert reviews
101 +
102 +=== Auditor ===
103 +
104 +**Who**: Reviewers or Experts assigned to sampling audit duties.
105 +
106 +**Can**:
107 +
108 +* Review sampled AI-generated content against quality standards
109 +* Validate quality gate enforcement
110 +* Identify patterns in AI errors or hallucinations
111 +* Provide feedback for system improvement
112 +* Flag content for immediate review if errors found
113 +* Contribute to audit statistics and transparency reports
114 +
115 +**Cannot**:
116 +
117 +* Change audit sampling algorithms (maintainer responsibility)
118 +* Bypass normal review workflows
119 +* Audit content they personally created
120 +
121 +**Selection**:
122 +
123 +* Auditors selected based on domain expertise and review quality
124 +* Rotation to prevent audit fatigue
125 +* Stratified assignment (Tier A auditors need higher expertise)
126 +
127 +**Audit Focus**:
128 +
129 +* Tier A: Recommendation 30-50% sampling rate, expert auditors
130 +* Tier B: Recommendation 10-20% sampling rate, reviewer/expert auditors
131 +* Tier C: Recommendation 5-10% sampling rate, reviewer auditors
132 +
133 +=== Moderator ===
134 +
135 +**Who**: Maintainers or trusted long-term contributors.
136 +
137 +**Can**:
138 +
139 +* All Reviewer and Expert capabilities (cross-domain)
140 +* Manage user accounts and permissions
141 +* Handle disputes and conflicts
142 +* Enforce community guidelines
143 +* Suspend or ban abusive users
144 +* Finalize publication status for sensitive content
145 +* Review and adjust risk tier assignments
146 +* Oversee audit system performance
147 +
148 +**Cannot**:
149 +
150 +* Change core data model or architecture
151 +* Override technical system constraints
152 +* Make unilateral governance decisions without consensus
153 +
154 +=== Maintainer ===
155 +
156 +**Who**: Core team members responsible for the platform.
157 +
158 +**Can**:
159 +
160 +* All Moderator capabilities
161 +* Change data model, architecture, and technical systems
162 +* Configure quality gates and AKEL parameters
163 +* Adjust audit sampling algorithms
164 +* Set and modify risk tier policies
165 +* Make platform-wide governance decisions
166 +* Access and modify backend systems
167 +* Deploy updates and fixes
168 +* Grant and revoke roles
169 +
170 +**Governance**:
171 +
172 +* Maintainers operate under organizational governance rules
173 +* Major policy changes require Governing Team approval
174 +* Technical decisions made collaboratively
175 +
61 61  ----
62 62  
63 -== Reviewer ==
178 +== Content Publication States ==
64 64  
65 -Responsibilities:
180 +=== Mode 1: Draft ===
66 66  
67 -* Review contributions from Contributors and AKEL drafts
68 -* Check internal consistency and clarity of scenarios
69 -* Validate that evidence is correctly linked and described
70 -* Ensure verdicts match the evidence and stated assumptions
71 -* Reject, request change, or accept content
182 +* Not visible to public
183 +* Visible to contributor and reviewers
184 +* Can be edited by contributor or reviewers
185 +* Default state for failed quality gates
72 72  
73 -Permissions:
187 +=== Mode 2: AI-Generated (Published) ===
74 74  
75 -* Everything a Contributor can do
76 -* Change content status from `draft` → `in review` → `published` / `rejected`
77 -* Send content back to Contributors with comments
78 -* Flag content for expert review
189 +* **Public** and visible to all users
190 +* Clearly labeled as "AI-Generated, Awaiting Human Review"
191 +* Passed all automated quality gates
192 +* Risk tier displayed (A/B/C)
193 +* Users can:
194 +** Read and use content
195 +** Request human review
196 +** Flag for expert attention
197 +* Subject to sampling audits
198 +* Can be promoted to Mode 3 by reviewer/expert validation
79 79  
80 -Limitations:
200 +=== Mode 3: Human-Reviewed (Published) ===
81 81  
82 -* Cannot modify system-wide configuration or federation topology
83 -* Cannot unilaterally change expert conclusions without process
202 +* **Public** and visible to all users
203 +* Labeled as "Human-Reviewed" with reviewer/expert attribution
204 +* Passed quality gates + human validation
205 +* Highest trust level
206 +* For Tier A, requires Expert approval
207 +* For Tier B/C, Reviewer approval sufficient
84 84  
209 +=== Rejected ===
210 +
211 +* Not visible to public
212 +* Visible to contributor with rejection reason
213 +* Can be resubmitted after addressing issues
214 +* Rejection logged for transparency
215 +
85 85  ----
86 86  
87 -== Expert ==
218 +== Contribution Rules ==
88 88  
89 -Responsibilities:
220 +=== All Contributors Must: ===
90 90  
91 -* Provide domain-specific judgment on scenarios, evidence, and verdicts
92 -* Refine assumptions and definitions in complex or ambiguous topics
93 -* Identify subtle biases, missing evidence, or misinterpretations
94 -* Propose improved verdicts and uncertainty assessments
222 +* Provide sources for claims
223 +* Use clear, neutral language
224 +* Avoid personal attacks or insults
225 +* Respect intellectual property (cite sources)
226 +* Accept community feedback gracefully
95 95  
96 -Permissions:
228 +=== AKEL (AI) Must: ===
97 97  
98 -* Everything a Reviewer can do
99 -* Attach expert annotations and signed opinions to scenarios and verdicts
100 -* Propose re-evaluation of already published content based on new evidence
230 +* Mark all outputs with `AuthorType = AI`
231 +* Pass quality gates before Mode 2 publication
232 +* Perform mandatory contradiction search
233 +* Disclose confidence levels and uncertainty
234 +* Provide traceable reasoning chains
235 +* Flag potential bubbles or echo chambers
236 +* Submit to audit sampling
101 101  
102 -Limitations:
238 +=== Reviewers Must: ===
103 103  
104 -* Expert status is scoped to specific domains
105 -* Cannot bypass moderation, abuse policies, or legal constraints
240 +* Be impartial and evidence-based
241 +* Document reasoning for decisions
242 +* Escalate to experts when appropriate
243 +* Participate in audits when assigned
244 +* Provide constructive feedback
106 106  
246 +=== Experts Must: ===
247 +
248 +* Stay within domain expertise
249 +* Disclose conflicts of interest
250 +* Document specialized terminology
251 +* Provide reasoning for domain-specific decisions
252 +* Participate in Tier A audits
253 +
107 107  ----
108 108  
109 -== Moderator ==
256 +== Quality Standards ==
110 110  
111 -Responsibilities:
258 +=== Source Requirements ===
112 112  
113 -* Handle abuse reports, spam, harassment, and coordinated manipulation
114 -* Enforce community guidelines and legal constraints
115 -* Manage user bans, content takedowns, and visibility restrictions
260 +* Primary sources preferred over secondary
261 +* Publication date and author must be identifiable
262 +* Sources must be accessible (not paywalled when possible)
263 +* Contradictory sources must be acknowledged
264 +* Echo chamber sources must be flagged
116 116  
117 -Permissions:
266 +=== Claim Requirements ===
118 118  
119 -* Hide or temporarily disable access to abusive content
120 -* Ban or restrict users in line with policy
121 -* Edit or redact sensitive content (e.g., doxxing, illegal material)
268 +* Falsifiable or evaluable
269 +* Clear definitions of key terms
270 +* Boundaries and scope stated
271 +* Assumptions made explicit
272 +* Uncertainty acknowledged
122 122  
123 -Limitations:
274 +=== Evidence Requirements ===
124 124  
125 -* Does not change factual verdicts except where required for legal / safety reasons
126 -* Substantive fact changes must go through the review / expert process
276 +* Relevant to the claim and scenario
277 +* Reliability assessment provided
278 +* Methodology described (for studies)
279 +* Limitations noted
280 +* Conflicting evidence acknowledged
127 127  
128 128  ----
129 129  
130 -== Maintainer / Administrator ==
284 +== Risk Tier Assignment ==
131 131  
132 -Responsibilities:
286 +**Automated (AKEL)**: Initial tier suggested based on domain, keywords, impact
287 +**Human Validation**: Moderators or Experts can override AKEL suggestions
288 +**Review**: Risk tiers periodically reviewed based on audit outcomes
133 133  
134 -* Maintain node configuration, security settings, and backups
135 -* Configure AKEL, storage, federation endpoints, and performance tuning
136 -* Manage role assignments (who is Reviewer, Expert, Moderator, etc.)
137 -* Approve software updates and schema migrations
290 +**Tier A Indicators**:
138 138  
139 -Permissions:
292 +* Medical diagnosis or treatment advice
293 +* Legal interpretation or advice
294 +* Election or voting information
295 +* Safety or security sensitive
296 +* Major financial decisions
297 +* Potential for significant harm
140 140  
141 -* All read/write access to configuration, but not necessarily content editorial authority
142 -* Define organization-level policies (e.g., which sources are allowed by default)
299 +**Tier B Indicators**:
143 143  
144 -Limitations:
301 +* Complex scientific causality
302 +* Contested policy domains
303 +* Historical interpretation with political implications
304 +* Significant economic impact claims
145 145  
146 -* Editorial decisions on controversial topics follow governance rules, not arbitrary admin choice
306 +**Tier C Indicators**:
147 147  
308 +* Established historical facts
309 +* Simple definitions
310 +* Well-documented scientific consensus
311 +* Basic reference information
312 +
148 148  ----
149 149  
150 -== AKEL (AI Knowledge Extraction Layer) ==
151 151  
152 -Responsibilities:
316 +----
153 153  
154 -* Propose drafts — never final decisions
155 -* Normalize claims and extract candidate clusters
156 -* Draft scenarios, evidence candidates, and preliminary verdict suggestions
157 -* Propose re-evaluation when new evidence appears
318 +== User Role Hierarchy Diagram ==
158 158  
159 -Permissions:
320 +The following diagram visualizes the complete role hierarchy:
160 160  
161 -* Create and update **machine-generated drafts** and suggestions
162 -* Never directly publish content without human approval
322 +{{include reference="FactHarbor.Archive.FactHarbor V0\.9\.23 Lost Data.Specification.Diagrams.User Class Diagram.WebHome"/}}
163 163  
164 -Limitations:
324 +----
165 165  
166 -* AKEL output is always labeled as AI-generated draft
167 -* Must be reviewable, auditable, and overridable by humans
326 +----
168 168  
328 +== Role Hierarchy Diagrams ==
329 +
330 +=== User Class Diagram ===
331 +
332 +The following class diagram visualizes the complete user role hierarchy:
333 +
334 +{{include reference="FactHarbor.Archive.FactHarbor V0\.9\.23 Lost Data.Specification.Diagrams.User Class Diagram.WebHome"/}}
335 +
336 +=== Human User Roles ===
337 +
338 +This diagram shows the two-track progression for human users:
339 +
340 +{{include reference="FactHarbor.Archive.FactHarbor V0\.9\.23 Lost Data.Specification.Diagrams.Human User Roles.WebHome"/}}
341 +
342 +=== Technical and System Users ===
343 +
344 +This diagram shows system processes and their management:
345 +
346 +{{include reference="FactHarbor.Archive.FactHarbor V0\.9\.23 Lost Data.Specification.Diagrams.Technical and System Users.WebHome"/}}
347 +
348 +**Key Design Principles**:
349 +
350 +* **Two tracks from Contributor**: Content Track (Reviewer) and Technical Track (Maintainer)
351 +* **Technical Users**: System processes (AKEL, bots) managed by Maintainers
352 +* **Separation of concerns**: Editorial authority independent from technical authority
353 +
169 169  ----
170 170  
356 +
357 +
358 +----
359 +
171 171  = Functional Requirements =
172 172  
173 -This section defines what the system must **do**.
174 174  
363 +
364 +This page defines what the FactHarbor system must **do** to fulfill its mission.
365 +
366 +Requirements are structured as FR (Functional Requirement) items and organized by capability area.
367 +
368 +----
369 +
175 175  == Claim Intake & Normalization ==
176 176  
177 177  === FR1 – Claim Intake ===
... ... @@ -178,36 +178,32 @@
178 178  
179 179  The system must support Claim creation from:
180 180  
181 -* Free-text input
182 -* URLs (web pages, articles, posts)
183 -* Uploaded documents and transcripts
184 -* Structured feeds (optional, e.g. from partner platforms)
376 +* Free-text input (from any Reader)
377 +* URLs (web pages, articles, posts)
378 +* Uploaded documents and transcripts
379 +* Structured feeds (optional, e.g. from partner platforms)
380 +* Automated ingestion (federation input)
381 +* AKEL extraction from multi-claim texts
185 185  
186 -Accepted sources:
383 +**Automatic submission**: Any Reader can submit text, and new claims are added automatically unless identical claims already exist.
187 187  
188 -* Text entered by users
189 -* URLs
190 -* Uploaded documents
191 -* Transcripts
192 -* Automated ingestion (optional federation input)
193 -* AKEL extraction from multi-claim texts
194 -
195 195  === FR2 – Claim Normalization ===
196 196  
197 -* Convert diverse inputs into short, structured, declarative claims
198 -* Preserve original phrasing for reference
199 -* Avoid hidden reinterpretation; differences between original and normalized phrasing must be visible
387 +* Convert diverse inputs into short, structured, declarative claims
388 +* Preserve original phrasing for reference
389 +* Avoid hidden reinterpretation; differences between original and normalized phrasing must be visible
200 200  
201 201  === FR3 – Claim Classification ===
202 202  
203 -* Classify claims by topic, domain, and type (e.g., quantitative, causal, normative)
204 -* Suggest which node / experts are relevant
393 +* Classify claims by topic, domain, and type (e.g., quantitative, causal, normative)
394 +* Assign risk tier (A/B/C) based on domain and potential impact
395 +* Suggest which node / experts are relevant
205 205  
206 206  === FR4 – Claim Clustering ===
207 207  
208 -* Group similar claims into Claim Clusters
209 -* Allow manual correction of cluster membership
210 -* Provide explanation why two claims are considered same cluster
399 +* Group similar claims into Claim Clusters
400 +* Allow manual correction of cluster membership
401 +* Provide explanation why two claims are considered "same cluster"
211 211  
212 212  ----
213 213  
... ... @@ -215,29 +215,30 @@
215 215  
216 216  === FR5 – Scenario Creation ===
217 217  
218 -* Contributors, Reviewers, and Experts can create scenarios
219 -* AKEL can propose draft scenarios
220 -* Each scenario is tied to exactly one Claim Cluster
409 +* Contributors, Reviewers, and Experts can create scenarios
410 +* AKEL can propose draft scenarios
411 +* Each scenario is tied to exactly one Claim Cluster
221 221  
222 222  === FR6 – Required Scenario Fields ===
223 223  
224 224  Each scenario includes:
225 225  
226 -* Definitions (key terms)
227 -* Assumptions (explicit, testable where possible)
228 -* Boundaries (time, geography, population, conditions)
229 -* Scope of evidence considered
230 -* Intended decision / context (optional)
417 +* Definitions (key terms)
418 +* Assumptions (explicit, testable where possible)
419 +* Boundaries (time, geography, population, conditions)
420 +* Scope of evidence considered
421 +* Intended decision / context (optional)
231 231  
232 232  === FR7 – Scenario Versioning ===
233 233  
234 -* Every change to a scenario creates a new version
235 -* Previous versions remain accessible with timestamps and rationale
425 +* Every change to a scenario creates a new version
426 +* Previous versions remain accessible with timestamps and rationale
427 +* ParentVersionID links versions
236 236  
237 237  === FR8 – Scenario Comparison ===
238 238  
239 -* Users can compare scenarios side by side
240 -* Show differences in assumptions, definitions, and evidence sets
431 +* Users can compare scenarios side by side
432 +* Show differences in assumptions, definitions, and evidence sets
241 241  
242 242  ----
243 243  
... ... @@ -245,21 +245,24 @@
245 245  
246 246  === FR9 – Evidence Ingestion ===
247 247  
248 -* Attach external sources (articles, studies, datasets, reports, transcripts) to Scenarios
249 -* Allow multiple pieces of evidence per Scenario
440 +* Attach external sources (articles, studies, datasets, reports, transcripts) to Scenarios
441 +* Allow multiple pieces of evidence per Scenario
442 +* Support large file uploads (with size limits)
250 250  
251 251  === FR10 – Evidence Assessment ===
252 252  
253 253  For each piece of evidence:
254 254  
255 -* Assign reliability / quality ratings
256 -* Capture who rated it and why
257 -* Indicate known limitations, biases, or conflicts of interest
448 +* Assign reliability / quality ratings
449 +* Capture who rated it and why
450 +* Indicate known limitations, biases, or conflicts of interest
451 +* Track evidence version history
258 258  
259 259  === FR11 – Evidence Linking ===
260 260  
261 -* Link one piece of evidence to multiple scenarios if relevant
262 -* Make dependencies explicit (e.g., “Scenario A uses subset of evidence used in Scenario B”)
455 +* Link one piece of evidence to multiple scenarios if relevant
456 +* Make dependencies explicit (e.g., "Scenario A uses subset of evidence used in Scenario B")
457 +* Use ScenarioEvidenceLink table with RelevanceScore
263 263  
264 264  ----
265 265  
... ... @@ -269,19 +269,22 @@
269 269  
270 270  For each Scenario:
271 271  
272 -* Provide a **probability- or likelihood-based verdict**
273 -* Capture uncertainty and reasoning
274 -* Distinguish between AKEL draft and human-approved verdict
467 +* Provide a **probability- or likelihood-based verdict**
468 +* Capture uncertainty and reasoning
469 +* Distinguish between AKEL draft and human-approved verdict
470 +* Support Mode 1 (draft), Mode 2 (AI-generated), Mode 3 (human-reviewed)
275 275  
276 276  === FR13 – Truth Landscape ===
277 277  
278 -* Aggregate all scenario-specific verdicts into a “truth landscape” for a claim
279 -* Make disagreements visible rather than collapsing them into a single binary result
474 +* Aggregate all scenario-specific verdicts into a "truth landscape" for a claim
475 +* Make disagreements visible rather than collapsing them into a single binary result
476 +* Show parallel scenarios and their respective verdicts
280 280  
281 281  === FR14 – Time Evolution ===
282 282  
283 -* Show how verdicts and evidence evolve over time
284 -* Allow users to see “as of date X, what did we know?”
480 +* Show how verdicts and evidence evolve over time
481 +* Allow users to see "as of date X, what did we know?"
482 +* Maintain complete version history for auditing
285 285  
286 286  ----
287 287  
... ... @@ -289,154 +289,196 @@
289 289  
290 290  === FR15 – Workflow States ===
291 291  
292 -* Draft → In Review → Published / Rejected
293 -* Separate states for Claims, Scenarios, Evidence, and Verdicts
490 +* Draft → In Review → Published / Rejected
491 +* Separate states for Claims, Scenarios, Evidence, and Verdicts
492 +* Support Mode 1/2/3 publication model
294 294  
295 295  === FR16 – Moderation & Abuse Handling ===
296 296  
297 -* Allow Moderators to hide content or lock edits for abuse or legal reasons
298 -* Keep internal audit trail even if public view is restricted
496 +* Allow Moderators to hide content or lock edits for abuse or legal reasons
497 +* Keep internal audit trail even if public view is restricted
498 +* Support user reporting and flagging
299 299  
300 300  === FR17 – Audit Trail ===
301 301  
302 -* Every significant action (create, edit, publish, delete/hide) is logged with:
303 - * Who did it
304 - * When
305 - * What changed
306 - * Why (short comment, optional but recommended)
502 +* Every significant action (create, edit, publish, delete/hide) is logged with:
503 +** Who did it
504 +** When (timestamp)
505 +** What changed (diffs)
506 +** Why (justification text)
307 307  
308 308  ----
309 309  
310 -= Federation Requirements =
510 +== Quality Gates & AI Review ==
311 311  
312 -FactHarbor is designed to operate as a **federated network of nodes**.
512 +=== FR18 Quality Gate Validation ===
313 313  
314 -=== FR18 Node Autonomy ===
514 +Before AI-generated content (Mode 2) publication, enforce:
315 315  
316 -* Each node can run independently (local policies, local users, local moderation)
317 -* Nodes decide which other nodes to federate with
516 +* Gate 1: Source Quality
517 +* Gate 2: Contradiction Search (MANDATORY)
518 +* Gate 3: Uncertainty Quantification
519 +* Gate 4: Structural Integrity
318 318  
319 -=== FR19 – Data Sharing Modes ===
521 +=== FR19 – Audit Sampling ===
320 320  
321 -Nodes must be able to:
523 +* Implement stratified sampling by risk tier
524 +* Recommendation: 30-50% Tier A, 10-20% Tier B, 5-10% Tier C
525 +* Support audit workflow and feedback loop
322 322  
323 -* Share claims and summaries only
324 -* Share selected claims, scenarios, and verdicts
325 -* Share full underlying evidence metadata where allowed
326 -* Opt-out of sharing sensitive or restricted content
527 +=== FR20 – Risk Tier Assignment ===
327 327  
328 -=== FR20 – Synchronization & Conflict Handling ===
529 +* AKEL suggests tier based on domain, keywords, impact
530 +* Moderators and Experts can override
531 +* Risk tier affects publication workflow
329 329  
330 -* Changes from remote nodes must be mergeable or explicitly conflict-marked
331 -* Conflicting verdicts are allowed and visible; not forced into consensus
533 +----
332 332  
333 -=== FR21 – Federation Discovery ===
535 +== Federation Requirements ==
334 334  
335 -* Discover other nodes and their capabilities (public endpoints, policies)
336 -* Allow whitelisting / blacklisting of nodes
537 +=== FR21 – Node Autonomy ===
337 337  
338 -**Basic federation** (minimum):
539 +* Each node can run independently (local policies, local users, local moderation)
540 +* Nodes decide which other nodes to federate with
541 +* Trust levels: Trusted / Neutral / Untrusted
339 339  
340 -* Subscribe to and import selected claims and scenarios from other nodes
341 -* Keep provenance (which node originated what)
342 -* Respect remote deletion / redaction notices where required by policy or law
543 +=== FR22 – Data Sharing Modes ===
343 343  
344 -Advanced federation (later versions):
545 +Nodes must be able to:
345 345  
346 -* Cross-node search
347 -* Federation-wide discovery and reputation signals
547 +* Share claims and summaries only
548 +* Share selected claims, scenarios, and verdicts
549 +* Share full underlying evidence metadata where allowed
550 +* Opt-out of sharing sensitive or restricted content
348 348  
552 +=== FR23 – Synchronization & Conflict Handling ===
553 +
554 +* Changes from remote nodes must be mergeable or explicitly conflict-marked
555 +* Conflicting verdicts are allowed and visible; not forced into consensus
556 +* Support push/pull/subscription synchronization
557 +
558 +=== FR24 – Federation Discovery ===
559 +
560 +* Discover other nodes and their capabilities (public endpoints, policies)
561 +* Allow whitelisting / blacklisting of nodes
562 +* Global identifier format: `factharbor://node_url/type/local_id`
563 +
564 +=== FR25 – Cross-Node AI Knowledge Exchange ===
565 +
566 +* Share vector embeddings for clustering
567 +* Share canonical claim forms
568 +* Share scenario templates
569 +* Share contradiction alerts
570 +* NEVER share model weights
571 +* NEVER override local governance
572 +
349 349  ----
350 350  
351 -= Non-Functional Requirements (NFR) =
575 +== Non-Functional Requirements ==
352 352  
353 -== NFR1 – Transparency ==
577 +=== NFR1 – Transparency ===
354 354  
355 -* All assumptions, evidence, and reasoning behind verdicts must be visible
356 -* AKEL involvement must be clearly labeled
357 -* Users must be able to inspect the chain of reasoning and versions
579 +* All assumptions, evidence, and reasoning behind verdicts must be visible
580 +* AKEL involvement must be clearly labeled
581 +* Users must be able to inspect the chain of reasoning and versions
358 358  
359 -== NFR2 – Security ==
583 +=== NFR2 – Security ===
360 360  
361 -* Role-based access control
362 -* Transport-level security (HTTPS)
363 -* Secure storage of secrets (API keys, credentials)
364 -* Audit trails for sensitive actions
585 +* Role-based access control
586 +* Transport-level security (HTTPS)
587 +* Secure storage of secrets (API keys, credentials)
588 +* Audit trails for sensitive actions
365 365  
366 -== NFR3 – Privacy & Compliance ==
590 +=== NFR3 – Privacy & Compliance ===
367 367  
368 -* Configurable data retention policies
369 -* Ability to redact or pseudonymize personal data when required
370 -* Compliance hooks for jurisdiction-specific rules (e.g. GDPR-like deletion requests)
592 +* Configurable data retention policies
593 +* Ability to redact or pseudonymize personal data when required
594 +* Compliance hooks for jurisdiction-specific rules (e.g. GDPR-like deletion requests)
371 371  
372 -== NFR4 – Performance ==
596 +=== NFR4 – Performance ===
373 373  
374 -* POC: typical interactions < 2 s
375 -* Release 1.0: < 300 ms for common read operations after caching
376 -* Degradation strategies under load (e.g. partial federation results, limited history)
598 +* POC: typical interactions < 2 s
599 +* Release 1.0: < 300 ms for common read operations after caching
600 +* Degradation strategies under load
377 377  
378 -== NFR5 – Scalability ==
602 +=== NFR5 – Scalability ===
379 379  
380 -* POC: ~50 internal testers on one node
381 -* Beta 0: ~100 external testers on one node
382 -* Release 1.0: **2000+ concurrent users** on a reasonably provisioned node
604 +* POC: 50 internal testers on one node
605 +* Beta 0: 100 external testers on one node
606 +* Release 1.0: **2000+ concurrent users** on a reasonably provisioned node
383 383  
384 -Suggested technical targets for Release 1.0:
608 +Technical targets for Release 1.0:
385 385  
386 -* Scalable monolith or early microservice architecture
387 -* Sharded vector database (for semantic search)
388 -* Optional IPFS or other decentralized storage for large artefacts
389 -* Horizontal scalability for read capacity
610 +* Scalable monolith or early microservice architecture
611 +* Sharded vector database (for semantic search)
612 +* Optional IPFS or other decentralized storage for large artifacts
613 +* Horizontal scalability for read capacity
390 390  
391 -== NFR6 – Interoperability ==
615 +=== NFR6 – Interoperability ===
392 392  
393 -* Open, documented API
394 -* Modular AKEL that can be swapped or extended
395 -* Federation protocols that follow open standards where possible
396 -* Standard model for external integrations (e.g. news platforms, research tools)
617 +* Open, documented API
618 +* Modular AKEL that can be swapped or extended
619 +* Federation protocols that follow open standards where possible
620 +* Standard model for external integrations
397 397  
398 -== NFR7 – Observability & Operations ==
622 +=== NFR7 – Observability & Operations ===
399 399  
400 -* Metrics for performance, errors, and queue backlogs
401 -* Logs for key flows (claim intake, scenario changes, verdict updates, federation sync)
402 -* Health endpoints for monitoring
624 +* Metrics for performance, errors, and queue backlogs
625 +* Logs for key flows (claim intake, scenario changes, verdict updates, federation sync)
626 +* Health endpoints for monitoring
403 403  
404 -== NFR8 – Maintainability ==
628 +=== NFR8 – Maintainability ===
405 405  
406 -* Clear module boundaries (API, core services, AKEL, storage, federation)
407 -* Backward-compatible schema migration strategy where feasible
408 -* Configuration via files / environment variables, not hard-coded
630 +* Clear module boundaries (API, core services, AKEL, storage, federation)
631 +* Backward-compatible schema migration strategy where feasible
632 +* Configuration via files / environment variables, not hard-coded
409 409  
410 -== NFR9 – Usability ==
634 +=== NFR9 – Usability ===
411 411  
412 -* UI optimized for **exploring complexity**, not hiding it
413 -* Support for saved views, filters, and user-level preferences
414 -* Progressive disclosure: casual users see summaries, advanced users can dive deep
636 +* UI optimized for **exploring complexity**, not hiding it
637 +* Support for saved views, filters, and user-level preferences
638 +* Progressive disclosure: casual users see summaries, advanced users can dive deep
415 415  
416 416  ----
417 417  
418 -= Release Levels =
642 +== Release Levels ==
419 419  
420 420  === Proof of Concept (POC) ===
421 421  
422 -* Single node
423 -* Limited user set (~50 internal testers)
424 -* Basic claim → scenario → evidence → verdict flow
425 -* Minimal federation (optional)
646 +* Single node
647 +* Limited user set (50 internal testers)
648 +* Basic claim → scenario → evidence → verdict flow
649 +* Minimal federation (optional)
650 +* AI-generated publication (Mode 2) demonstration
651 +* Quality gates active
426 426  
427 427  === Beta 0 ===
428 428  
429 -* One or few nodes
430 -* External testers (~100)
431 -* Expanded workflows and basic moderation
432 -* Initial federation experiments
655 +* One or few nodes
656 +* External testers (100)
657 +* Expanded workflows and basic moderation
658 +* Initial federation experiments
659 +* Audit sampling implemented
433 433  
434 434  === Release 1.0 ===
435 435  
436 -* 2000+ concurrent users
437 -* Scalable monolith or early microservices
438 -* Sharded vector DB
439 -* IPFS optional
440 -* High automation (AKEL assistance)
441 -* Multi-node federation
663 +* 2000+ concurrent users
664 +* Scalable architecture
665 +* Sharded vector DB
666 +* IPFS optional
667 +* High automation (AKEL assistance)
668 +* Multi-node federation with full sync protocol
669 +* Mature audit system
442 442  
671 +----
672 +
673 +
674 +
675 +== Related Pages ==
676 +
677 +
678 +
679 +* [[AKEL (AI Knowledge Extraction Layer)>>FactHarbor.Specification.AI Knowledge Extraction Layer (AKEL).WebHome]]
680 +* [[Automation>>FactHarbor.Specification.Automation.WebHome]]
681 +* [[Workflows>>FactHarbor.Specification.Workflows.WebHome]]
682 +* [[Governance>>FactHarbor.Organisation.Governance]]