Changes for page Requirements

Last modified by Robert Schaub on 2026/02/08 21:32

From version 6.1
edited by Robert Schaub
on 2025/12/23 08:03
Change comment: Imported from XAR
To version 7.3
edited by Robert Schaub
on 2026/01/20 20:22
Change comment: Renamed back-links.

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,1 @@
1 -Test.FactHarbor.Specification.WebHome
1 +Test.FactHarbor V0\.9\.76.Specification.WebHome
Content
... ... @@ -32,6 +32,7 @@
32 32  **Who**: Anyone (no login required)
33 33  
34 34  **Can**:
35 +
35 35  * Browse and search claims
36 36  * View scenarios, evidence, verdicts, and confidence scores
37 37  * Flag issues or errors
... ... @@ -39,6 +39,7 @@
39 39  * Submit claims automatically (new claims added if not duplicates)
40 40  
41 41  **Cannot**:
43 +
42 42  * Modify content
43 43  * Access edit history details
44 44  
... ... @@ -49,6 +49,7 @@
49 49  **Who**: Registered users (earns reputation through contributions)
50 50  
51 51  **Can**:
54 +
52 52  * Everything a Reader can do
53 53  * Edit claims, evidence, and scenarios
54 54  * Add sources and citations
... ... @@ -57,6 +57,7 @@
57 57  * Earn reputation points for quality contributions
58 58  
59 59  **Reputation System**:
63 +
60 60  * New contributors: Limited edit privileges
61 61  * Established contributors (established reputation): Full edit access
62 62  * Trusted contributors (substantial reputation): Can approve certain changes
... ... @@ -64,6 +64,7 @@
64 64  * Reputation lost through: Reverted edits, invalid flags, abuse
65 65  
66 66  **Cannot**:
71 +
67 67  * Delete or hide content (only moderators)
68 68  * Override moderation decisions
69 69  
... ... @@ -74,6 +74,7 @@
74 74  **Who**: Trusted community members with proven track record, appointed by governance board
75 75  
76 76  **Can**:
82 +
77 77  * Review flagged content
78 78  * Hide harmful or abusive content
79 79  * Resolve disputes between contributors
... ... @@ -82,6 +82,7 @@
82 82  * Access full audit logs
83 83  
84 84  **Cannot**:
91 +
85 85  * Change governance rules
86 86  * Permanently ban users without board approval
87 87  * Override technical quality gates
... ... @@ -95,6 +95,7 @@
95 95  **Not a permanent role**: Contacted externally when needed for contested claims in their domain
96 96  
97 97  **When used**:
105 +
98 98  * Medical claims with life/safety implications
99 99  * Legal interpretations with significant impact
100 100  * Scientific claims with high controversy
... ... @@ -101,6 +101,7 @@
101 101  * Technical claims requiring specialized knowledge
102 102  
103 103  **Process**:
112 +
104 104  * Moderator identifies need for expert input
105 105  * Contact expert externally (don't require them to be users)
106 106  * Trusted Contributor provides written opinion with sources
... ... @@ -120,11 +120,13 @@
120 120  **Status**: Visible to all users
121 121  
122 122  **Includes**:
132 +
123 123  * AI-generated analyses (default state)
124 124  * User-contributed content
125 125  * Edited/improved content
126 126  
127 127  **Quality Indicators** (displayed with content):
138 +
128 128  * **Confidence Score**: 0-100% (AI's confidence in analysis)
129 129  * **Source Quality Score**: 0-100% (based on source track record)
130 130  * **Controversy Flag**: If high dispute/edit activity
... ... @@ -134,6 +134,7 @@
134 134  * **Review Status**: AI-generated / Human-reviewed / Expert-validated
135 135  
136 136  **Automatic Warnings**:
148 +
137 137  * Confidence < 60%: "Low confidence - use caution"
138 138  * Source quality < 40%: "Sources may be unreliable"
139 139  * High controversy: "Disputed - multiple interpretations exist"
... ... @@ -146,6 +146,7 @@
146 146  **Status**: Not visible to regular users (only to moderators)
147 147  
148 148  **Reasons**:
161 +
149 149  * Spam or advertising
150 150  * Personal attacks or harassment
151 151  * Illegal content
... ... @@ -154,6 +154,7 @@
154 154  * Abuse or harmful content
155 155  
156 156  **Process**:
170 +
157 157  * Automated detection flags for moderator review
158 158  * Moderator confirms and hides
159 159  * Original author notified with reason
... ... @@ -176,6 +176,7 @@
176 176  **AKEL is the primary system**. Human contributions supplement and train AKEL.
177 177  
178 178  **AKEL Must**:
193 +
179 179  * Mark all outputs as AI-generated
180 180  * Display confidence scores prominently
181 181  * Provide source citations
... ... @@ -184,6 +184,7 @@
184 184  * Learn from human corrections
185 185  
186 186  **When AKEL Makes Errors**:
202 +
187 187  1. Capture the error pattern (what, why, how common)
188 188  2. Improve the system (better prompt, model, validation)
189 189  3. Re-process affected claims automatically
... ... @@ -214,6 +214,7 @@
214 214  === 4.1 Source Requirements ===
215 215  
216 216  **Track Record Over Credentials**:
233 +
217 217  * Sources evaluated by historical accuracy
218 218  * Correction policy matters
219 219  * Independence from conflicts of interest
... ... @@ -220,6 +220,7 @@
220 220  * Methodology transparency
221 221  
222 222  **Source Quality Database**:
240 +
223 223  * Automated tracking of source accuracy
224 224  * Correction frequency
225 225  * Reliability score (updated continuously)
... ... @@ -251,6 +251,7 @@
251 251  === 4.4 Confidence Scoring ===
252 252  
253 253  **Automated confidence calculation based on**:
272 +
254 254  * Source quality scores
255 255  * Evidence consistency
256 256  * Contradiction detection
... ... @@ -258,6 +258,7 @@
258 258  * Historical accuracy of similar claims
259 259  
260 260  **Thresholds**:
280 +
261 261  * < 40%: Too low to publish (needs improvement)
262 262  * 40-60%: Published with "Low confidence" warning
263 263  * 60-80%: Published as standard
... ... @@ -274,6 +274,7 @@
274 274  === 5.1 Risk Score Calculation ===
275 275  
276 276  **Factors** (weighted algorithm):
297 +
277 277  * **Domain sensitivity**: Medical, legal, safety auto-flagged higher
278 278  * **Potential impact**: Views, citations, spread
279 279  * **Controversy level**: Flags, disputes, edit wars
... ... @@ -300,6 +300,7 @@
300 300  === 6.1 Error Capture ===
301 301  
302 302  **When users flag errors or make corrections**:
324 +
303 303  1. What was wrong? (categorize)
304 304  2. What should it have been?
305 305  3. Why did the system fail? (root cause)
... ... @@ -318,6 +318,7 @@
318 318  === 6.3 Quality Metrics Dashboard ===
319 319  
320 320  **Track continuously**:
343 +
321 321  * Error rate by category
322 322  * Source quality distribution
323 323  * Confidence score trends
... ... @@ -343,6 +343,7 @@
343 343  === 7.2 Anomaly Detection ===
344 344  
345 345  **Automated alerts for**:
369 +
346 346  * Sudden quality drops
347 347  * Unusual patterns
348 348  * Contradiction clusters
... ... @@ -395,6 +395,7 @@
395 395  **Fulfills**: UN-2 (Context-dependent verification), UN-3 (Article summary with FactHarbor analysis summary), UN-8 (Understanding disagreement)
396 396  
397 397  **Automated scenario creation**:
422 +
398 398  * AKEL analyzes claim and generates likely scenarios (use-cases and contexts)
399 399  * Each scenario includes: assumptions, definitions, boundaries, evidence context
400 400  * Users can flag incorrect scenarios
... ... @@ -455,6 +455,7 @@
455 455  **Purpose**: Provide side-by-side comparison of what a document claims vs. FactHarbor's complete analysis of its credibility
456 456  
457 457  **Left Panel: Article Summary**:
483 +
458 458  * Document title, source, and claimed credibility
459 459  * "The Big Picture" - main thesis or position change
460 460  * "Key Findings" - structured summary of document's main claims
... ... @@ -462,6 +462,7 @@
462 462  * "Conclusion" - document's bottom line
463 463  
464 464  **Right Panel: FactHarbor Analysis Summary**:
491 +
465 465  * FactHarbor's independent source credibility assessment
466 466  * Claim-by-claim verdicts with confidence scores
467 467  * Methodology assessment (strengths, limitations)
... ... @@ -469,6 +469,7 @@
469 469  * Analysis ID for reference
470 470  
471 471  **Design Principles**:
499 +
472 472  * No scrolling required - both panels visible simultaneously
473 473  * Visual distinction between "what they say" and "FactHarbor's analysis"
474 474  * Color coding for verdicts (supported, uncertain, refuted)
... ... @@ -476,6 +476,7 @@
476 476  * Mobile responsive (panels stack vertically on small screens)
477 477  
478 478  **Implementation Notes**:
507 +
479 479  * Generated automatically by AKEL for every analyzed document
480 480  * Updates when verdict evolves (maintains version history)
481 481  * Exportable as standalone summary report
... ... @@ -502,7 +502,8 @@
502 502  (% style="font-size:0.9em; color:#666;" %)
503 503  ↑ WELL SUPPORTED • 87% confidence
504 504  [[Click for evidence details →]]
505 -(%%)
534 +
535 +
506 506  )))
507 507  
508 508  The study, which followed 10,000 participants over five years, showed significant improvements in cardiovascular health markers.
... ... @@ -515,7 +515,8 @@
515 515  ↑ UNCERTAIN • 45% confidence
516 516  Overstated - evidence shows risk reduction, not prevention
517 517  [[Click for details →]]
518 -(%%)
548 +
549 +
519 519  )))
520 520  
521 521  Dr. Maria Rodriguez, lead researcher, recommends incorporating more olive oil, fish, and vegetables into daily meals.
... ... @@ -528,7 +528,8 @@
528 528  ↑ REFUTED • 15% confidence
529 529  Claim not supported by study design; correlation ≠ causation
530 530  [[Click for counter-evidence →]]
531 -(%%)
562 +
563 +
532 532  )))
533 533  
534 534  Participants also reported feeling more energetic and experiencing better sleep quality, though these were secondary measures.
... ... @@ -535,6 +535,7 @@
535 535  )))
536 536  
537 537  **Legend:**
570 +
538 538  * 🟢 = Well-supported claim (confidence ≥75%)
539 539  * 🟡 = Uncertain claim (confidence 40-74%)
540 540  * 🔴 = Refuted/unsupported claim (confidence <40%)
... ... @@ -553,11 +553,13 @@
553 553  **Confidence:** 87%
554 554  
555 555  **Evidence Summary:**
589 +
556 556  * Meta-analysis of 12 RCTs confirms 23-28% risk reduction
557 557  * Consistent findings across multiple populations
558 558  * Published in peer-reviewed journal (high credibility)
559 559  
560 560  **Uncertainty Factors:**
595 +
561 561  * Exact percentage varies by study (20-30% range)
562 562  
563 563  [[View Full Analysis →]]
... ... @@ -564,6 +564,7 @@
564 564  )))
565 565  
566 566  **Color-Coding System**:
602 +
567 567  * **Green**: Well-supported claims (confidence ≥75%, strong evidence)
568 568  * **Yellow/Orange**: Uncertain claims (confidence 40-74%, conflicting or limited evidence)
569 569  * **Red**: Refuted or unsupported claims (confidence <40%, contradicted by evidence)
... ... @@ -573,8 +573,12 @@
573 573  
574 574  (% style="width:100%; border-collapse:collapse;" %)
575 575  |=**Article Text**|=**Status**|=**Analysis**
576 -|(((A recent study published in the Journal of Nutrition has revealed new findings about the Mediterranean diet.)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Context - no highlighting
577 -|(((//Researchers found that Mediterranean diet followers had a 25% lower risk of heart disease compared to control groups//)))|(% style="background-color:#D4EDDA; text-align:center; padding:8px;" %)🟢 **WELL SUPPORTED**|(((
612 +|(((
613 +A recent study published in the Journal of Nutrition has revealed new findings about the Mediterranean diet.
614 +)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Context - no highlighting
615 +|(((
616 +//Researchers found that Mediterranean diet followers had a 25% lower risk of heart disease compared to control groups//
617 +)))|(% style="background-color:#D4EDDA; text-align:center; padding:8px;" %)🟢 **WELL SUPPORTED**|(((
578 578  **87% confidence**
579 579  
580 580  Meta-analysis of 12 RCTs confirms 23-28% risk reduction
... ... @@ -581,8 +581,12 @@
581 581  
582 582  [[View Full Analysis]]
583 583  )))
584 -|(((The study, which followed 10,000 participants over five years, showed significant improvements in cardiovascular health markers.)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Methodology - no highlighting
585 -|(((//Some experts believe this diet can completely prevent heart attacks//)))|(% style="background-color:#FFF3CD; text-align:center; padding:8px;" %)🟡 **UNCERTAIN**|(((
624 +|(((
625 +The study, which followed 10,000 participants over five years, showed significant improvements in cardiovascular health markers.
626 +)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Methodology - no highlighting
627 +|(((
628 +//Some experts believe this diet can completely prevent heart attacks//
629 +)))|(% style="background-color:#FFF3CD; text-align:center; padding:8px;" %)🟡 **UNCERTAIN**|(((
586 586  **45% confidence**
587 587  
588 588  Overstated - evidence shows risk reduction, not prevention
... ... @@ -589,8 +589,12 @@
589 589  
590 590  [[View Details]]
591 591  )))
592 -|(((Dr. Rodriguez recommends incorporating more olive oil, fish, and vegetables into daily meals.)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Recommendation - no highlighting
593 -|(((//The study proves that saturated fats cause heart disease//)))|(% style="background-color:#F8D7DA; text-align:center; padding:8px;" %)🔴 **REFUTED**|(((
636 +|(((
637 +Dr. Rodriguez recommends incorporating more olive oil, fish, and vegetables into daily meals.
638 +)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Recommendation - no highlighting
639 +|(((
640 +//The study proves that saturated fats cause heart disease//
641 +)))|(% style="background-color:#F8D7DA; text-align:center; padding:8px;" %)🔴 **REFUTED**|(((
594 594  **15% confidence**
595 595  
596 596  Claim not supported by study; correlation ≠ causation
... ... @@ -599,6 +599,7 @@
599 599  )))
600 600  
601 601  **Design Notes:**
650 +
602 602  * Highlighted claims use italics to distinguish from plain text
603 603  * Color backgrounds match XWiki message box colors (success/warning/error)
604 604  * Status column shows verdict prominently
... ... @@ -605,6 +605,7 @@
605 605  * Analysis column provides quick summary with link to details
606 606  
607 607  **User Actions**:
657 +
608 608  * **Hover** over highlighted claim → Tooltip appears
609 609  * **Click** highlighted claim → Detailed analysis modal/panel
610 610  * **Toggle** button to turn highlighting on/off
... ... @@ -611,16 +611,18 @@
611 611  * **Keyboard**: Tab through highlighted claims
612 612  
613 613  **Interaction Design**:
664 +
614 614  * Hover/click on highlighted claim → Show tooltip with:
615 - * Claim text
616 - * Verdict (e.g., "WELL SUPPORTED")
617 - * Confidence score (e.g., "85%")
618 - * Brief evidence summary
619 - * Link to detailed analysis
666 +* Claim text
667 +* Verdict (e.g., "WELL SUPPORTED")
668 +* Confidence score (e.g., "85%")
669 +* Brief evidence summary
670 +* Link to detailed analysis
620 620  * Toggle highlighting on/off (user preference)
621 621  * Adjustable color intensity for accessibility
622 622  
623 623  **Technical Requirements**:
675 +
624 624  * Real-time highlighting as page loads (non-blocking)
625 625  * Claim boundary detection (start/end of assertion)
626 626  * Handle nested or overlapping claims
... ... @@ -628,16 +628,19 @@
628 628  * Work with various content formats (HTML, plain text, PDFs)
629 629  
630 630  **Performance Requirements**:
683 +
631 631  * Highlighting renders within 500ms of page load
632 632  * No perceptible delay in reading experience
633 633  * Efficient DOM manipulation (avoid reflows)
634 634  
635 635  **Accessibility**:
689 +
636 636  * Color-blind friendly palette (use patterns/icons in addition to color)
637 637  * Screen reader compatible (ARIA labels for claim credibility)
638 638  * Keyboard navigation to highlighted claims
639 639  
640 640  **Implementation Notes**:
695 +
641 641  * Claims extracted and analyzed by AKEL during initial processing
642 642  * Highlighting data stored as annotations with byte offsets
643 643  * Client-side rendering of highlights based on verdict data
... ... @@ -650,6 +650,7 @@
650 650  **Fulfills**: UN-1 (Fast access to verified content), UN-16 (Clear review status)
651 651  
652 652  **Simple flow**:
708 +
653 653  1. Claim submitted
654 654  2. AKEL processes (automated)
655 655  3. If confidence > threshold: Publish (labeled as AI-generated)
... ... @@ -661,6 +661,7 @@
661 661  ==== FR10 — Moderation ====
662 662  
663 663  **Focus on abuse, not routine quality**:
720 +
664 664  * Automated abuse detection
665 665  * Moderators handle flags
666 666  * Quick response to harmful content
... ... @@ -731,6 +731,7 @@
731 731  **Purpose:** Ensure extracted claims are factual assertions (not opinions/predictions)
732 732  
733 733  **Checks:**
791 +
734 734  1. **Factual Statement Test:** Is this verifiable? (Yes/No)
735 735  2. **Opinion Detection:** Contains hedging language? ("I think", "probably", "best")
736 736  3. **Future Prediction Test:** Makes claims about future events?
... ... @@ -737,6 +737,7 @@
737 737  4. **Specificity Score:** Contains specific entities, numbers, dates?
738 738  
739 739  **Thresholds:**
798 +
740 740  * Factual: Must be "Yes"
741 741  * Opinion markers: <2 hedging phrases
742 742  * Specificity: ≥3 specific elements
... ... @@ -748,11 +748,13 @@
748 748  **Purpose:** Ensure AI-linked evidence actually relates to claim
749 749  
750 750  **Checks:**
810 +
751 751  1. **Semantic Similarity Score:** Evidence vs. claim (embeddings)
752 752  2. **Entity Overlap:** Shared people/places/things?
753 753  3. **Topic Relevance:** Discusses claim subject?
754 754  
755 755  **Thresholds:**
816 +
756 756  * Similarity: ≥0.6 (cosine similarity)
757 757  * Entity overlap: ≥1 shared entity
758 758  * Topic relevance: ≥0.5
... ... @@ -764,11 +764,13 @@
764 764  **Purpose:** Validate scenario assumptions are logical and complete
765 765  
766 766  **Checks:**
828 +
767 767  1. **Completeness:** All required fields populated
768 768  2. **Internal Consistency:** Assumptions don't contradict
769 769  3. **Distinguishability:** Scenarios meaningfully different
770 770  
771 771  **Thresholds:**
834 +
772 772  * Required fields: 100%
773 773  * Contradiction score: <0.3
774 774  * Scenario similarity: <0.8
... ... @@ -780,6 +780,7 @@
780 780  **Purpose:** Only publish high-confidence verdicts
781 781  
782 782  **Checks:**
846 +
783 783  1. **Evidence Count:** Minimum 2 sources
784 784  2. **Source Quality:** Average reliability ≥0.6
785 785  3. **Evidence Agreement:** Supporting vs. contradicting ≥0.6
... ... @@ -786,6 +786,7 @@
786 786  4. **Uncertainty Factors:** Hedging in reasoning
787 787  
788 788  **Confidence Tiers:**
853 +
789 789  * **HIGH (80-100%):** ≥3 sources, ≥0.7 quality, ≥80% agreement
790 790  * **MEDIUM (50-79%):** ≥2 sources, ≥0.6 quality, ≥60% agreement
791 791  * **LOW (0-49%):** <2 sources OR low quality/agreement
... ... @@ -792,11 +792,13 @@
792 792  * **INSUFFICIENT:** <2 sources → DO NOT PUBLISH
793 793  
794 794  **Implementation Phases:**
860 +
795 795  * **POC1:** Gates 1 & 4 only (basic validation)
796 796  * **POC2:** All 4 gates (complete framework)
797 797  * **V1.0:** Hardened with <5% hallucination rate
798 798  
799 799  **Acceptance Criteria:**
866 +
800 800  * ✅ All gates operational
801 801  * ✅ Hallucination rate <5%
802 802  * ✅ Quality metrics public
... ... @@ -814,6 +814,7 @@
814 814  ==== API Security ====
815 815  
816 816  **Rate Limiting:**
884 +
817 817  * **Analysis endpoints:** 100 requests/hour per IP
818 818  * **Read endpoints:** 1,000 requests/hour per IP
819 819  * **Search:** 500 requests/hour per IP
... ... @@ -821,21 +821,24 @@
821 821  * **Burst protection:** Max 10 requests/second
822 822  
823 823  **Authentication & Authorization:**
892 +
824 824  * **API Keys:** Required for programmatic access
825 825  * **JWT tokens:** For user sessions (1-hour expiry)
826 826  * **OAuth2:** For third-party integrations
827 827  * **Role-Based Access Control (RBAC):**
828 - * Public: Read-only access to published claims
829 - * Contributor: Submit claims, provide evidence
830 - * Moderator: Review contributions, manage quality
831 - * Admin: System configuration, user management
897 +* Public: Read-only access to published claims
898 +* Contributor: Submit claims, provide evidence
899 +* Moderator: Review contributions, manage quality
900 +* Admin: System configuration, user management
832 832  
833 833  **CORS Policies:**
903 +
834 834  * Whitelist approved domains only
835 835  * No wildcard origins in production
836 836  * Credentials required for sensitive endpoints
837 837  
838 838  **Input Sanitization:**
909 +
839 839  * Validate all user input against schemas
840 840  * Sanitize HTML/JavaScript in text submissions
841 841  * Prevent SQL injection (use parameterized queries)
... ... @@ -843,11 +843,12 @@
843 843  * Max request size: 10MB
844 844  * File upload restrictions: Whitelist file types, scan for malware
845 845  
846 ----
917 +-----
847 847  
848 848  ==== Data Security ====
849 849  
850 850  **Encryption at Rest:**
922 +
851 851  * Database encryption using AES-256
852 852  * Encrypted backups
853 853  * Key management via cloud provider KMS (AWS KMS, Google Cloud KMS)
... ... @@ -854,6 +854,7 @@
854 854  * Regular key rotation (90-day cycle)
855 855  
856 856  **Encryption in Transit:**
929 +
857 857  * HTTPS/TLS 1.3 only (no TLS 1.0/1.1)
858 858  * Strong cipher suites only
859 859  * HSTS (HTTP Strict Transport Security) enabled
... ... @@ -860,6 +860,7 @@
860 860  * Certificate pinning for mobile apps
861 861  
862 862  **Secure Credential Storage:**
936 +
863 863  * Passwords hashed with bcrypt (cost factor 12+)
864 864  * API keys encrypted in database
865 865  * Secrets stored in environment variables (never in code)
... ... @@ -866,12 +866,13 @@
866 866  * Use secrets manager (AWS Secrets Manager, HashiCorp Vault)
867 867  
868 868  **Data Privacy:**
943 +
869 869  * Minimal data collection (privacy by design)
870 870  * User data deletion on request (GDPR compliance)
871 871  * PII encryption in database
872 872  * Anonymize logs (no PII in log files)
873 873  
874 ----
949 +-----
875 875  
876 876  ==== Application Security ====
877 877  
... ... @@ -889,6 +889,7 @@
889 889  10. **Server-Side Request Forgery:** URL validation, whitelist domains
890 890  
891 891  **Security Headers:**
967 +
892 892  * `Content-Security-Policy`: Strict CSP to prevent XSS
893 893  * `X-Frame-Options`: DENY (prevent clickjacking)
894 894  * `X-Content-Type-Options`: nosniff
... ... @@ -896,6 +896,7 @@
896 896  * `Permissions-Policy`: Restrict browser features
897 897  
898 898  **Dependency Vulnerability Scanning:**
975 +
899 899  * **Tools:** Snyk, Dependabot, npm audit, pip-audit
900 900  * **Frequency:** Daily automated scans
901 901  * **Action:** Patch critical vulnerabilities within 24 hours
... ... @@ -902,30 +902,34 @@
902 902  * **Policy:** No known high/critical CVEs in production
903 903  
904 904  **Security Audits:**
982 +
905 905  * **Internal:** Quarterly security reviews
906 906  * **External:** Annual penetration testing by certified firm
907 907  * **Bug Bounty:** Public bug bounty program (V1.1+)
908 908  * **Compliance:** SOC 2 Type II certification target (V1.5)
909 909  
910 ----
988 +-----
911 911  
912 912  ==== Operational Security ====
913 913  
914 914  **DDoS Protection:**
993 +
915 915  * CloudFlare or AWS Shield
916 916  * Rate limiting at CDN layer
917 917  * Automatic IP blocking for abuse patterns
918 918  
919 919  **Monitoring & Alerting:**
999 +
920 920  * Real-time security event monitoring
921 921  * Alerts for:
922 - * Failed login attempts (>5 in 10 minutes)
923 - * API abuse patterns
924 - * Unusual data access patterns
925 - * Security scan detections
1002 +* Failed login attempts (>5 in 10 minutes)
1003 +* API abuse patterns
1004 +* Unusual data access patterns
1005 +* Security scan detections
926 926  * Integration with SIEM (Security Information and Event Management)
927 927  
928 928  **Incident Response:**
1009 +
929 929  * Documented incident response plan
930 930  * Security incident classification (P1-P4)
931 931  * On-call rotation for security issues
... ... @@ -933,16 +933,18 @@
933 933  * Public disclosure policy (coordinated disclosure)
934 934  
935 935  **Backup & Recovery:**
1017 +
936 936  * Daily encrypted backups
937 937  * 30-day retention period
938 938  * Tested recovery procedures (quarterly)
939 939  * Disaster recovery plan (RTO: 4 hours, RPO: 1 hour)
940 940  
941 ----
1023 +-----
942 942  
943 943  ==== Compliance & Standards ====
944 944  
945 945  **GDPR Compliance:**
1028 +
946 946  * User consent management
947 947  * Right to access data
948 948  * Right to deletion
... ... @@ -950,6 +950,7 @@
950 950  * Privacy policy published
951 951  
952 952  **Accessibility:**
1036 +
953 953  * WCAG 2.1 AA compliance
954 954  * Screen reader compatibility
955 955  * Keyboard navigation
... ... @@ -956,6 +956,7 @@
956 956  * Alt text for images
957 957  
958 958  **Browser Support:**
1043 +
959 959  * Modern browsers only (Chrome/Edge/Firefox/Safari latest 2 versions)
960 960  * No IE11 support
961 961  
... ... @@ -970,7 +970,6 @@
970 970  * ✅ Incident response plan documented and tested
971 971  * ✅ 95% uptime over 30-day period
972 972  
973 -
974 974  === NFR13: Quality Metrics Transparency ===
975 975  
976 976  **Fulfills:** User trust, transparency, continuous improvement, IFCN methodology transparency
... ... @@ -985,16 +985,18 @@
985 985  
986 986  **Core Metrics to Display:**
987 987  
988 -**1. Verdict Quality Metrics**
1072 +*
1073 +**
1074 +**1. Verdict Quality Metrics
989 989  
990 990  **TIGERScore (Fact-Checking Quality):**
1077 +
991 991  * **Definition:** Measures how well generated verdicts match expert fact-checker judgments
992 992  * **Scale:** 0-100 (higher is better)
993 993  * **Calculation:** Using TIGERScore framework (Truth-conditional accuracy, Informativeness, Generality, Evaluativeness, Relevance)
994 994  * **Target:** Average ≥80 for production release
995 995  * **Display:**
996 -{{code}}
997 -Verdict Quality (TIGERScore):
1083 +{{code}}Verdict Quality (TIGERScore):
998 998  Overall: 84.2 ▲ (+2.1 from last month)
999 999  
1000 1000  Distribution:
... ... @@ -1002,19 +1002,18 @@
1002 1002   Good (60-80): 28%
1003 1003   Needs Improvement (<60): 5%
1004 1004  
1005 -Trend: [Graph showing improvement over time]
1006 -{{/code}}
1091 +Trend: [Graph showing improvement over time]{{/code}}
1007 1007  
1008 1008  **2. Hallucination & Faithfulness Metrics**
1009 1009  
1010 1010  **AlignScore (Faithfulness to Evidence):**
1096 +
1011 1011  * **Definition:** Measures how well verdicts align with actual evidence content
1012 1012  * **Scale:** 0-1 (higher is better)
1013 1013  * **Purpose:** Detect AI hallucinations (making claims not supported by evidence)
1014 1014  * **Target:** Average ≥0.85, hallucination rate <5%
1015 1015  * **Display:**
1016 -{{code}}
1017 -Evidence Faithfulness (AlignScore):
1102 +{{code}}Evidence Faithfulness (AlignScore):
1018 1018  Average: 0.87 ▼ (-0.02 from last month)
1019 1019  
1020 1020  Hallucination Rate: 4.2%
... ... @@ -1021,24 +1021,24 @@
1021 1021   - Claims without evidence support: 3.1%
1022 1022   - Misrepresented evidence: 1.1%
1023 1023  
1024 -Action: Prompt engineering review scheduled
1025 -{{/code}}
1109 +Action: Prompt engineering review scheduled{{/code}}
1026 1026  
1027 1027  **3. Evidence Quality Metrics**
1028 1028  
1029 1029  **Source Reliability:**
1114 +
1030 1030  * Average source quality score (0-1 scale)
1031 1031  * Distribution of high/medium/low quality sources
1032 1032  * Publisher track record trends
1033 1033  
1034 1034  **Evidence Coverage:**
1120 +
1035 1035  * Average number of sources per claim
1036 1036  * Percentage of claims with ≥2 sources (EFCSN minimum)
1037 1037  * Geographic diversity of sources
1038 1038  
1039 1039  **Display:**
1040 -{{code}}
1041 -Evidence Quality:
1126 +{{code}}Evidence Quality:
1042 1042  
1043 1043  Average Sources per Claim: 4.2
1044 1044  Claims with ≥2 sources: 94% (EFCSN compliant)
... ... @@ -1048,24 +1048,23 @@
1048 1048   Medium quality (0.5-0.8): 43%
1049 1049   Low quality (<0.5): 9%
1050 1050  
1051 -Geographic Diversity: 23 countries represented
1052 -{{/code}}
1136 +Geographic Diversity: 23 countries represented{{/code}}
1053 1053  
1054 1054  **4. Contributor Consensus Metrics** (when human reviewers involved)
1055 1055  
1056 1056  **Inter-Rater Reliability (IRR):**
1141 +
1057 1057  * **Calculation:** Cohen's Kappa or Fleiss' Kappa for multiple raters
1058 1058  * **Scale:** 0-1 (higher is better)
1059 1059  * **Interpretation:**
1060 - * >0.8: Almost perfect agreement
1061 - * 0.6-0.8: Substantial agreement
1062 - * 0.4-0.6: Moderate agreement
1063 - * <0.4: Poor agreement
1145 +* >0.8: Almost perfect agreement
1146 +* 0.6-0.8: Substantial agreement
1147 +* 0.4-0.6: Moderate agreement
1148 +* <0.4: Poor agreement
1064 1064  * **Target:** Maintain ≥0.7 (substantial agreement)
1065 1065  
1066 1066  **Display:**
1067 -{{code}}
1068 -Contributor Consensus:
1152 +{{code}}Contributor Consensus:
1069 1069  
1070 1070  Inter-Rater Reliability (IRR): 0.73 (Substantial agreement)
1071 1071   - Verdict agreement: 78%
... ... @@ -1073,10 +1073,9 @@
1073 1073   - Scenario structure agreement: 69%
1074 1074  
1075 1075  Cases requiring moderator review: 12
1076 -Moderator override rate: 8%
1077 -{{/code}}
1160 +Moderator override rate: 8%{{/code}}
1078 1078  
1079 ----
1162 +-----
1080 1080  
1081 1081  ==== Quality Dashboard Implementation ====
1082 1082  
... ... @@ -1083,6 +1083,7 @@
1083 1083  **Dashboard Location:** `/quality-metrics`
1084 1084  
1085 1085  **Update Frequency:**
1169 +
1086 1086  * **POC2:** Weekly manual updates
1087 1087  * **Beta 0:** Daily automated updates
1088 1088  * **V1.0:** Real-time metrics (updated hourly)
... ... @@ -1132,7 +1132,7 @@
1132 1132  
1133 1133  {{/code}}
1134 1134  
1135 ----
1219 +-----
1136 1136  
1137 1137  ==== Continuous Improvement Feedback Loop ====
1138 1138  
... ... @@ -1139,31 +1139,36 @@
1139 1139  **How Metrics Inform AKEL Improvements:**
1140 1140  
1141 1141  1. **Identify Weak Areas:**
1142 - * Low TIGERScore → Review prompt engineering
1143 - * High hallucination → Strengthen evidence grounding
1144 - * Low IRR → Clarify evaluation criteria
1145 1145  
1227 +* Low TIGERScore → Review prompt engineering
1228 +* High hallucination → Strengthen evidence grounding
1229 +* Low IRR → Clarify evaluation criteria
1230 +
1146 1146  2. **A/B Testing Integration:**
1147 - * Test prompt variations
1148 - * Measure impact on quality metrics
1149 - * Deploy winners automatically
1150 1150  
1233 +* Test prompt variations
1234 +* Measure impact on quality metrics
1235 +* Deploy winners automatically
1236 +
1151 1151  3. **Alert Thresholds:**
1152 - * TIGERScore drops below 75 → Alert team
1153 - * Hallucination rate exceeds 7% → Pause auto-publishing
1154 - * IRR below 0.6 → Moderator training needed
1155 1155  
1239 +* TIGERScore drops below 75 → Alert team
1240 +* Hallucination rate exceeds 7% → Pause auto-publishing
1241 +* IRR below 0.6 → Moderator training needed
1242 +
1156 1156  4. **Monthly Quality Reviews:**
1157 - * Analyze trends
1158 - * Identify systematic issues
1159 - * Plan prompt improvements
1160 - * Update AKEL models
1161 1161  
1162 ----
1245 +* Analyze trends
1246 +* Identify systematic issues
1247 +* Plan prompt improvements
1248 +* Update AKEL models
1163 1163  
1250 +-----
1251 +
1164 1164  ==== Metric Calculation Details ====
1165 1165  
1166 1166  **TIGERScore Implementation:**
1255 +
1167 1167  * Reference: https://github.com/TIGER-AI-Lab/TIGERScore
1168 1168  * Input: Generated verdict + reference verdict (from expert)
1169 1169  * Output: 0-100 score across 5 dimensions
... ... @@ -1170,6 +1170,7 @@
1170 1170  * Requires: Test set of expert-reviewed claims (minimum 100)
1171 1171  
1172 1172  **AlignScore Implementation:**
1262 +
1173 1173  * Reference: https://github.com/yuh-zha/AlignScore
1174 1174  * Input: Generated verdict + source evidence text
1175 1175  * Output: 0-1 faithfulness score
... ... @@ -1176,11 +1176,12 @@
1176 1176  * Calculation: Semantic alignment between claim and evidence
1177 1177  
1178 1178  **Source Quality Scoring:**
1269 +
1179 1179  * Use existing source reliability database (e.g., NewsGuard, MBFC)
1180 1180  * Factor in: Publication history, corrections record, transparency
1181 1181  * Scale: 0-1 (weighted average across sources)
1182 1182  
1183 ----
1274 +-----
1184 1184  
1185 1185  ==== Integration Points ====
1186 1186  
... ... @@ -1211,11 +1211,13 @@
1211 1211  == 14. Related Pages ==
1212 1212  
1213 1213  **Non-Functional Requirements (see Section 9):**
1305 +
1214 1214  * [[NFR11 — AKEL Quality Assurance Framework>>#NFR11]]
1215 1215  * [[NFR12 — Security Controls>>#NFR12]]
1216 1216  * [[NFR13 — Quality Metrics Transparency>>#NFR13]]
1217 1217  
1218 1218  **Other Requirements:**
1311 +
1219 1219  * [[User Needs>>FactHarbor.Specification.Requirements.User Needs.WebHome]]
1220 1220  * [[V1.0 Requirements>>FactHarbor.Specification.Requirements.V10.]]
1221 1221  * [[Gap Analysis>>FactHarbor.Specification.Requirements.GapAnalysis]]
... ... @@ -1225,7 +1225,7 @@
1225 1225  * [[Data Model>>FactHarbor.Specification.Data Model.WebHome]] - Data structures supporting requirements
1226 1226  * [[Workflows>>FactHarbor.Specification.Workflows.WebHome]] - User interaction workflows
1227 1227  * [[AKEL>>FactHarbor.Specification.AI Knowledge Extraction Layer (AKEL).WebHome]] - AI system fulfilling automation requirements
1228 -* [[Global Rules>>FactHarbor.Organisation.How-We-Work-Together.GlobalRules.WebHome]]
1321 +* [[Global Rules>>Archive.FactHarbor.Organisation.How-We-Work-Together.GlobalRules.WebHome]]
1229 1229  * [[Privacy Policy>>FactHarbor.Organisation.How-We-Work-Together.Privacy-Policy]]
1230 1230  
1231 1231  = V0.9.70 Additional Requirements =
... ... @@ -1285,6 +1285,7 @@
1285 1285  **FactHarbor-Specific Mapping:**
1286 1286  
1287 1287  **Likelihood Score to Rating Scale:**
1381 +
1288 1288  * 80-100% likelihood → 5 (Highly Supported)
1289 1289  * 60-79% likelihood → 4 (Supported)
1290 1290  * 40-59% likelihood → 3 (Mixed/Uncertain)
... ... @@ -1292,6 +1292,7 @@
1292 1292  * 0-19% likelihood → 1 (Refuted)
1293 1293  
1294 1294  **Multiple Scenarios Handling:**
1389 +
1295 1295  * If claim has multiple scenarios with different verdicts, generate **separate ClaimReview** for each scenario
1296 1296  * Add `disambiguatingDescription` field explaining scenario context
1297 1297  * Example: "Scenario: If interpreted as referring to 2023 data..."
... ... @@ -1324,7 +1324,6 @@
1324 1324  * ✅ All required fields populated with correct data types
1325 1325  * ✅ Handles multi-scenario claims correctly (separate ClaimReview per scenario)
1326 1326  
1327 -
1328 1328  === FR45: User Corrections Notification System ===
1329 1329  
1330 1330  **Fulfills:** IFCN Principle 5 (Open & Honest Corrections), EFCSN compliance
... ... @@ -1346,7 +1346,9 @@
1346 1346  
1347 1347  ==== Notification Mechanisms ====
1348 1348  
1349 -**1. In-Page Banner:**
1443 +*
1444 +**
1445 +**1. In-Page Banner:
1350 1350  
1351 1351  Display prominent banner on claim page:
1352 1352  
... ... @@ -1366,10 +1366,10 @@
1366 1366  
1367 1367  * Public changelog at `/claims/{id}/corrections`
1368 1368  * Displays for each correction:
1369 - * Date/time of correction
1370 - * What changed (before/after comparison)
1371 - * Why changed (reason if provided)
1372 - * Who made change (AKEL auto-update vs. contributor override)
1465 +* Date/time of correction
1466 +* What changed (before/after comparison)
1467 +* Why changed (reason if provided)
1468 +* Who made change (AKEL auto-update vs. contributor override)
1373 1373  
1374 1374  **3. Email Notifications (opt-in):**
1375 1375  
... ... @@ -1413,7 +1413,6 @@
1413 1413  * ✅ Mobile-responsive banner design
1414 1414  * ✅ Accessible (screen reader compatible)
1415 1415  
1416 -
1417 1417  === FR46: Image Verification System ===
1418 1418  
1419 1419  **Fulfills:** UN-27 (Visual Claim Verification)
... ... @@ -1431,23 +1431,25 @@
1431 1431  **Purpose:** Find earlier uses of the image to verify context
1432 1432  
1433 1433  **Implementation:**
1529 +
1434 1434  * Integrate APIs:
1435 - * **Google Vision AI** (reverse search)
1436 - * **TinEye** (oldest known uses)
1437 - * **Bing Visual Search** (broad coverage)
1531 +* **Google Vision AI** (reverse search)
1532 +* **TinEye** (oldest known uses)
1533 +* **Bing Visual Search** (broad coverage)
1438 1438  
1439 1439  **Process:**
1536 +
1440 1440  1. Extract image from claim or user upload
1441 1441  2. Query multiple reverse search services
1442 1442  3. Analyze results for:
1443 - * Earliest known publication
1444 - * Original context (what was it really showing?)
1445 - * Publication timeline
1446 - * Geographic spread
1447 1447  
1541 +* Earliest known publication
1542 +* Original context (what was it really showing?)
1543 +* Publication timeline
1544 +* Geographic spread
1545 +
1448 1448  **Output:**
1449 -{{code}}
1450 -Reverse Image Search Results:
1547 +{{code}}Reverse Image Search Results:
1451 1451  
1452 1452  Earliest known use: 2019-03-15 (5 years before claim)
1453 1453  Original context: "Photo from 2019 flooding in Mumbai"
... ... @@ -1460,10 +1460,9 @@
1460 1460  • 2020-07-22: Bangladesh monsoon
1461 1461  • 2024-10-15: Current claim (misattributed)
1462 1462  
1463 -[View full timeline]
1464 -{{/code}}
1560 +[View full timeline]{{/code}}
1465 1465  
1466 ----
1562 +-----
1467 1467  
1468 1468  **Method 2: AI Manipulation Detection**
1469 1469  
... ... @@ -1470,36 +1470,41 @@
1470 1470  **Purpose:** Detect deepfakes, face swaps, and digital alterations
1471 1471  
1472 1472  **Implementation:**
1569 +
1473 1473  * Integrate detection services:
1474 - * **Sensity AI** (deepfake detection)
1475 - * **Reality Defender** (multimodal analysis)
1476 - * **AWS Rekognition** (face detection inconsistencies)
1571 +* **Sensity AI** (deepfake detection)
1572 +* **Reality Defender** (multimodal analysis)
1573 +* **AWS Rekognition** (face detection inconsistencies)
1477 1477  
1478 1478  **Detection Categories:**
1576 +
1479 1479  1. **Face Manipulation:**
1480 - * Deepfake face swaps
1481 - * Expression manipulation
1482 - * Identity replacement
1483 1483  
1579 +* Deepfake face swaps
1580 +* Expression manipulation
1581 +* Identity replacement
1582 +
1484 1484  2. **Image Manipulation:**
1485 - * Copy-paste artifacts
1486 - * Clone stamp detection
1487 - * Content-aware fill detection
1488 - * JPEG compression inconsistencies
1489 1489  
1585 +* Copy-paste artifacts
1586 +* Clone stamp detection
1587 +* Content-aware fill detection
1588 +* JPEG compression inconsistencies
1589 +
1490 1490  3. **AI Generation:**
1491 - * Detect fully AI-generated images
1492 - * Identify generation artifacts
1493 - * Check for model signatures
1494 1494  
1592 +* Detect fully AI-generated images
1593 +* Identify generation artifacts
1594 +* Check for model signatures
1595 +
1495 1495  **Confidence Scoring:**
1597 +
1496 1496  * **HIGH (80-100%):** Strong evidence of manipulation
1497 1497  * **MEDIUM (50-79%):** Suspicious artifacts detected
1498 1498  * **LOW (0-49%):** Minor inconsistencies or inconclusive
1499 1499  
1500 1500  **Output:**
1501 -{{code}}
1502 -Manipulation Analysis:
1603 +{{code}}Manipulation Analysis:
1503 1503  
1504 1504  Face Manipulation: LOW RISK (12%)
1505 1505  Image Editing: MEDIUM RISK (64%)
... ... @@ -1508,10 +1508,9 @@
1508 1508  
1509 1509  AI Generation: LOW RISK (8%)
1510 1510  
1511 -⚠️ Possible manipulation detected. Manual review recommended.
1512 -{{/code}}
1612 +⚠️ Possible manipulation detected. Manual review recommended.{{/code}}
1513 1513  
1514 ----
1614 +-----
1515 1515  
1516 1516  **Method 3: Metadata Analysis (EXIF)**
1517 1517  
... ... @@ -1518,6 +1518,7 @@
1518 1518  **Purpose:** Extract technical details that may reveal manipulation or misattribution
1519 1519  
1520 1520  **Extracted Data:**
1621 +
1521 1521  * **Camera/Device:** Make, model, software
1522 1522  * **Timestamps:** Original date, modification dates
1523 1523  * **Location:** GPS coordinates (if present)
... ... @@ -1525,6 +1525,7 @@
1525 1525  * **File Properties:** Resolution, compression, format conversions
1526 1526  
1527 1527  **Red Flags:**
1629 +
1528 1528  * Metadata completely stripped (suspicious)
1529 1529  * Timestamp conflicts with claimed date
1530 1530  * GPS location conflicts with claimed location
... ... @@ -1532,8 +1532,7 @@
1532 1532  * Creation date after modification date (impossible)
1533 1533  
1534 1534  **Output:**
1535 -{{code}}
1536 -Image Metadata:
1637 +{{code}}Image Metadata:
1537 1537  
1538 1538  Camera: iPhone 14 Pro
1539 1539  Original date: 2023-08-12 14:32:15
... ... @@ -1545,19 +1545,20 @@
1545 1545  Claim says: "Taken in Los Angeles"
1546 1546  EXIF says: New York City
1547 1547  
1548 -⚠️ Edited 14 months after capture
1549 -{{/code}}
1649 +⚠️ Edited 14 months after capture{{/code}}
1550 1550  
1551 ----
1651 +-----
1552 1552  
1553 1553  ==== Verification Workflow ====
1554 1554  
1555 1555  **Automatic Triggers:**
1656 +
1556 1556  1. User submits claim with image
1557 1557  2. Article being analyzed contains images
1558 1558  3. Social media post includes photos
1559 1559  
1560 1560  **Process:**
1662 +
1561 1561  1. Extract images from content
1562 1562  2. Run all 3 verification methods in parallel
1563 1563  3. Aggregate results into confidence score
... ... @@ -1592,14 +1592,16 @@
1592 1592  ==== Cost Considerations ====
1593 1593  
1594 1594  **API Costs (estimated per image):**
1697 +
1595 1595  * Google Vision AI: $0.001-0.003
1596 1596  * TinEye: $0.02 (commercial API)
1597 1597  * Sensity AI: $0.05-0.10
1598 1598  * AWS Rekognition: $0.001-0.002
1599 1599  
1600 -**Total per image:** ~$0.07-0.15
1703 +**Total per image:** $0.07-0.15**
1601 1601  
1602 1602  **Mitigation Strategies:**
1706 +
1603 1603  * Cache results for duplicate images
1604 1604  * Use free tier quotas where available
1605 1605  * Prioritize higher-value claims for deep analysis
... ... @@ -1614,29 +1614,229 @@
1614 1614  * ✅ Mobile-friendly image comparison interface
1615 1615  * ✅ False positive rate <15%
1616 1616  
1617 -
1618 1618  === FR47: Archive.org Integration ===
1619 1619  
1620 -Auto-save evidence sources to Wayback Machine.
1723 +**Priority:** CRITICAL
1724 +**Fulfills:** Evidence persistence, FR5 (Evidence linking)
1725 +**Phase:** V1.0
1621 1621  
1622 -**Milestone:** Beta 0
1727 +**Purpose:** Ensure evidence remains accessible even if original sources are deleted.
1623 1623  
1624 -=== FR48: Safety Framework for Contributors ===
1729 +**Specification:**
1625 1625  
1626 -Protect contributors from harassment and legal threats.
1731 +**Automatic Archiving:**
1627 1627  
1628 -**Milestone:** V1.1
1733 +When AKEL links evidence:
1629 1629  
1630 -=== FR49: A/B Testing Framework ===
1735 +1. Check if URL already archived (Wayback Machine API)
1736 +2. If not, submit for archiving (Save Page Now API)
1737 +3. Store both original URL and archive URL
1738 +4. Display both to users
1631 1631  
1632 -Test AKEL approaches and UI designs systematically.
1740 +**Archive Display:**
1633 1633  
1634 -**Milestone:** V1.0
1742 +{{code}}
1743 +Evidence Source: [Original URL]
1744 +Archived: [Archive.org URL] (Captured: [date])
1635 1635  
1636 -=== FR50: OSINT Toolkit Integration ===
1746 +[View Original] [View Archive]
1747 +{{/code}}
1637 1637  
1749 +**Fallback Logic:**
1638 1638  
1751 +* If original URL unavailable → Auto-redirect to archive
1752 +* If archive unavailable → Display warning
1753 +* If both unavailable → Flag for manual review
1639 1639  
1755 +**API Integration:**
1756 +
1757 +* Use Wayback Machine Availability API
1758 +* Use Save Page Now API (SPNv2)
1759 +* Rate limiting: 15 requests/minute (Wayback limit)
1760 +
1761 +**Acceptance Criteria:**
1762 +
1763 +* ✅ All evidence URLs auto-archived
1764 +* ✅ Archive links displayed to users
1765 +* ✅ Fallback to archive if original unavailable
1766 +* ✅ API rate limits respected
1767 +* ✅ Archive status visible in evidence display
1768 +
1769 +== Category 4: Community Safety ==
1770 +
1771 + FR48: Contributor Safety Framework ===
1772 +
1773 +**Priority:** CRITICAL
1774 +**Fulfills:** UN-28 (Safe contribution environment)
1775 +**Phase:** V1.0
1776 +
1777 +**Purpose:** Protect contributors from harassment, doxxing, and coordinated attacks.
1778 +
1779 +**Specification:**
1780 +
1781 +*
1782 +**
1783 +**1. Privacy Protection:
1784 +
1785 +* **Optional Pseudonymity:** Contributors can use pseudonyms
1786 +* **Email Privacy:** Emails never displayed publicly
1787 +* **Profile Privacy:** Contributors control what's public
1788 +* **IP Logging:** Only for abuse prevention, not public
1789 +
1790 +**2. Harassment Prevention:**
1791 +
1792 +* **Automated Toxicity Detection:** Flag abusive comments
1793 +* **Personal Information Detection:** Auto-block doxxing attempts
1794 +* **Coordinated Attack Detection:** Identify brigading patterns
1795 +* **Rapid Response:** Moderator alerts for harassment
1796 +
1797 +**3. Safety Features:**
1798 +
1799 +* **Block Users:** Contributors can block harassers
1800 +* **Private Contributions:** Option to contribute anonymously
1801 +* **Report Harassment:** One-click harassment reporting
1802 +* **Safety Resources:** Links to support resources
1803 +
1804 +**4. Moderator Tools:**
1805 +
1806 +* **Quick Ban:** Immediately block abusers
1807 +* **Pattern Detection:** Identify coordinated attacks
1808 +* **Appeal Process:** Fair review of moderation actions
1809 +* **Escalation:** Serious threats escalated to authorities
1810 +
1811 +**5. Trusted Contributor Protection:**
1812 +
1813 +* **Enhanced Privacy:** Additional protection for high-profile contributors
1814 +* **Verification:** Optional identity verification (not public)
1815 +* **Legal Support:** Resources for contributors facing legal threats
1816 +
1817 +**Acceptance Criteria:**
1818 +
1819 +* ✅ Pseudonyms supported
1820 +* ✅ Toxicity detection active
1821 +* ✅ Doxxing auto-blocked
1822 +* ✅ Harassment reporting functional
1823 +* ✅ Moderator tools implemented
1824 +* ✅ Safety policy published
1825 +
1826 +== Category 5: Continuous Improvement ==
1827 +
1828 + FR49: A/B Testing Framework ===
1829 +
1830 +**Priority:** CRITICAL
1831 +**Fulfills:** Continuous system improvement
1832 +**Phase:** V1.0
1833 +
1834 +**Purpose:** Test and measure improvements to AKEL prompts, algorithms, and workflows.
1835 +
1836 +**Specification:**
1837 +
1838 +**Test Capabilities:**
1839 +
1840 +1. **Prompt Variations:**
1841 +
1842 +* Test different claim extraction prompts
1843 +* Test different verdict generation prompts
1844 +* Measure: Accuracy, clarity, completeness
1845 +
1846 +2. **Algorithm Variations:**
1847 +
1848 +* Test different source scoring algorithms
1849 +* Test different confidence calculations
1850 +* Measure: Audit accuracy, user satisfaction
1851 +
1852 +3. **Workflow Variations:**
1853 +
1854 +* Test different quality gate thresholds
1855 +* Test different risk tier assignments
1856 +* Measure: Publication rate, quality scores
1857 +
1858 +**Implementation:**
1859 +
1860 +* **Traffic Split:** 50/50 or 90/10 splits
1861 +* **Randomization:** Consistent per claim (not per user)
1862 +* **Metrics Collection:** Automatic for all variants
1863 +* **Statistical Significance:** Minimum sample size calculation
1864 +* **Rollout:** Winner promoted to 100% traffic
1865 +
1866 +**A/B Test Workflow:**
1867 +
1868 +{{code}}
1869 +1. Hypothesis: "New prompt improves claim extraction"
1870 +2. Design test: Control vs. Variant
1871 +3. Define metrics: Extraction accuracy, completeness
1872 +4. Run test: 7-14 days, minimum 100 claims each
1873 +5. Analyze results: Statistical significance?
1874 +6. Decision: Deploy winner or iterate
1875 +{{/code}}
1876 +
1877 +**Acceptance Criteria:**
1878 +
1879 +* ✅ A/B testing framework implemented
1880 +* ✅ Can test prompt variations
1881 +* ✅ Can test algorithm variations
1882 +* ✅ Metrics automatically collected
1883 +* ✅ Statistical significance calculated
1884 +* ✅ Results inform system improvements
1885 +
1886 +=== FR54: Evidence Deduplication ===
1887 +
1888 +**Priority:** CRITICAL (POC2/Beta)
1889 +**Fulfills:** Accurate evidence counting, quality metrics
1890 +**Phase:** POC2, Beta 0, V1.0
1891 +
1892 +**Purpose:** Avoid counting the same source multiple times when it appears in different forms.
1893 +
1894 +**Specification:**
1895 +
1896 +**Deduplication Logic:**
1897 +
1898 +1. **URL Normalization:**
1899 +
1900 +* Remove tracking parameters (?utm_source=...)
1901 +* Normalize http/https
1902 +* Normalize www/non-www
1903 +* Handle redirects
1904 +
1905 +2. **Content Similarity:**
1906 +
1907 +* If two sources have >90% text similarity → Same source
1908 +* If one is subset of other → Same source
1909 +* Use fuzzy matching for minor differences
1910 +
1911 +3. **Cross-Domain Syndication:**
1912 +
1913 +* Detect wire service content (AP, Reuters)
1914 +* Mark as single source if syndicated
1915 +* Count original publication only
1916 +
1917 +**Display:**
1918 +
1919 +{{code}}
1920 +Evidence Sources (3 unique, 5 total):
1921 +
1922 +1. Original Article (NYTimes)
1923 + - Also appeared in: WashPost, Guardian (syndicated)
1924 +
1925 +2. Research Paper (Nature)
1926 +
1927 +3. Official Statement (WHO)
1928 +{{/code}}
1929 +
1930 +**Acceptance Criteria:**
1931 +
1932 +* ✅ URL normalization works
1933 +* ✅ Content similarity detected
1934 +* ✅ Syndicated content identified
1935 +* ✅ Unique vs. total counts accurate
1936 +* ✅ Improves evidence quality metrics
1937 +
1938 +== Additional Requirements (Lower Priority) ==
1939 +
1940 + FR50: OSINT Toolkit Integration ===
1941 +
1942 +
1943 +
1640 1640  **Fulfills:** Advanced media verification
1641 1641  **Phase:** V1.1
1642 1642  
... ... @@ -1643,6 +1643,7 @@
1643 1643  **Purpose:** Integrate open-source intelligence tools for advanced verification.
1644 1644  
1645 1645  **Tools to Integrate:**
1950 +
1646 1646  * InVID/WeVerify (video verification)
1647 1647  * Bellingcat toolkit
1648 1648  * Additional TBD based on V1.0 learnings
... ... @@ -1657,6 +1657,7 @@
1657 1657  **Purpose:** Verify video-based claims.
1658 1658  
1659 1659  **Specification:**
1965 +
1660 1660  * Keyframe extraction
1661 1661  * Reverse video search
1662 1662  * Deepfake detection (AI-powered)
... ... @@ -1673,6 +1673,7 @@
1673 1673  **Purpose:** Teach users to identify misinformation.
1674 1674  
1675 1675  **Specification:**
1982 +
1676 1676  * Interactive tutorials
1677 1677  * Practice exercises
1678 1678  * Detection quizzes
... ... @@ -1688,12 +1688,12 @@
1688 1688  **Purpose:** Share findings with IFCN/EFCSN members.
1689 1689  
1690 1690  **Specification:**
1998 +
1691 1691  * API for fact-checking organizations
1692 1692  * Structured data exchange
1693 1693  * Privacy controls
1694 1694  * Attribution requirements
1695 1695  
1696 -
1697 1697  == Summary ==
1698 1698  
1699 1699  **V1.0 Critical Requirements (Must Have):**
... ... @@ -1716,7 +1716,6 @@
1716 1716  * FR52: Detection Training
1717 1717  * FR53: Cross-Org Sharing
1718 1718  
1719 -
1720 1720  **Total:** 11 critical requirements for V1.0
1721 1721  
1722 1722  === FR54: Evidence Deduplication ===
... ... @@ -1733,21 +1733,24 @@
1733 1733  **Deduplication Logic:**
1734 1734  
1735 1735  1. **URL Normalization:**
1736 - * Remove tracking parameters (?utm_source=...)
1737 - * Normalize http/https
1738 - * Normalize www/non-www
1739 - * Handle redirects
1740 1740  
2043 +* Remove tracking parameters (?utm_source=...)
2044 +* Normalize http/https
2045 +* Normalize www/non-www
2046 +* Handle redirects
2047 +
1741 1741  2. **Content Similarity:**
1742 - * If two sources have >90% text similarity → Same source
1743 - * If one is subset of other → Same source
1744 - * Use fuzzy matching for minor differences
1745 1745  
2050 +* If two sources have >90% text similarity → Same source
2051 +* If one is subset of other → Same source
2052 +* Use fuzzy matching for minor differences
2053 +
1746 1746  3. **Cross-Domain Syndication:**
1747 - * Detect wire service content (AP, Reuters)
1748 - * Mark as single source if syndicated
1749 - * Count original publication only
1750 1750  
2056 +* Detect wire service content (AP, Reuters)
2057 +* Mark as single source if syndicated
2058 +* Count original publication only
2059 +
1751 1751  **Display:**
1752 1752  
1753 1753  {{code}}
... ... @@ -1769,8 +1769,9 @@
1769 1769  * ✅ Unique vs. total counts accurate
1770 1770  * ✅ Improves evidence quality metrics
1771 1771  
2081 +== Additional Requirements (Lower Priority) ==
1772 1772  
1773 -== Additional Requirements (Lower Priority) ===== FR7: Automated Verdicts (Enhanced with Quality Gates) ===
2083 + FR7: Automated Verdicts (Enhanced with Quality Gates) ===
1774 1774  
1775 1775  **POC1+ Enhancement:**
1776 1776  
... ... @@ -1792,6 +1792,7 @@
1792 1792  {{/code}}
1793 1793  
1794 1794  **Updated Verdict States:**
2105 +
1795 1795  * PUBLISHED
1796 1796  * INSUFFICIENT_EVIDENCE
1797 1797  * NON_FACTUAL_CLAIM
... ... @@ -1813,4 +1813,3 @@
1813 1813   Avg Source Quality: 0.73
1814 1814   Quality Score: 8.5/10
1815 1815  {{/code}}
1816 -