Changes for page Requirements

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

From version 2.1
edited by Robert Schaub
on 2025/12/24 13:58
Change comment: Imported from XAR
To version 3.3
edited by Robert Schaub
on 2026/01/20 20:21
Change comment: Renamed back-links.

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,1 @@
1 -Test.FactHarbor.Specification.WebHome
1 +Test.FactHarbor V0\.9\.103.Specification.WebHome
Content
... ... @@ -1,6 +1,5 @@
1 1  = Requirements =
2 2  
3 -
4 4  {{info}}
5 5  **Phase Assignments:** See [[Requirements Roadmap Matrix>>FactHarbor.Roadmap.Requirements-Roadmap-Matrix.WebHome]] for which requirements are implemented in which phases.
6 6  {{/info}}
... ... @@ -37,6 +37,7 @@
37 37  **Who**: Anyone (no login required)
38 38  
39 39  **Can**:
39 +
40 40  * Browse and search claims
41 41  * View scenarios, evidence, verdicts, and confidence scores
42 42  * Flag issues or errors
... ... @@ -44,6 +44,7 @@
44 44  * Submit claims automatically (new claims added if not duplicates)
45 45  
46 46  **Cannot**:
47 +
47 47  * Modify content
48 48  * Access edit history details
49 49  
... ... @@ -54,6 +54,7 @@
54 54  **Who**: Registered users (earns reputation through contributions)
55 55  
56 56  **Can**:
58 +
57 57  * Everything a Reader can do
58 58  * Edit claims, evidence, and scenarios
59 59  * Add sources and citations
... ... @@ -62,6 +62,7 @@
62 62  * Earn reputation points for quality contributions
63 63  
64 64  **Reputation System**:
67 +
65 65  * New contributors: Limited edit privileges
66 66  * Established contributors (established reputation): Full edit access
67 67  * Trusted contributors (substantial reputation): Can approve certain changes
... ... @@ -69,6 +69,7 @@
69 69  * Reputation lost through: Reverted edits, invalid flags, abuse
70 70  
71 71  **Cannot**:
75 +
72 72  * Delete or hide content (only moderators)
73 73  * Override moderation decisions
74 74  
... ... @@ -79,6 +79,7 @@
79 79  **Who**: Trusted community members with proven track record, appointed by governance board
80 80  
81 81  **Can**:
86 +
82 82  * Review flagged content
83 83  * Hide harmful or abusive content
84 84  * Resolve disputes between contributors
... ... @@ -87,6 +87,7 @@
87 87  * Access full audit logs
88 88  
89 89  **Cannot**:
95 +
90 90  * Change governance rules
91 91  * Permanently ban users without board approval
92 92  * Override technical quality gates
... ... @@ -100,6 +100,7 @@
100 100  **Not a permanent role**: Contacted externally when needed for contested claims in their domain
101 101  
102 102  **When used**:
109 +
103 103  * Medical claims with life/safety implications
104 104  * Legal interpretations with significant impact
105 105  * Scientific claims with high controversy
... ... @@ -106,6 +106,7 @@
106 106  * Technical claims requiring specialized knowledge
107 107  
108 108  **Process**:
116 +
109 109  * Moderator identifies need for expert input
110 110  * Contact expert externally (don't require them to be users)
111 111  * Trusted Contributor provides written opinion with sources
... ... @@ -125,11 +125,13 @@
125 125  **Status**: Visible to all users
126 126  
127 127  **Includes**:
136 +
128 128  * AI-generated analyses (default state)
129 129  * User-contributed content
130 130  * Edited/improved content
131 131  
132 132  **Quality Indicators** (displayed with content):
142 +
133 133  * **Confidence Score**: 0-100% (AI's confidence in analysis)
134 134  * **Source Quality Score**: 0-100% (based on source track record)
135 135  * **Controversy Flag**: If high dispute/edit activity
... ... @@ -139,6 +139,7 @@
139 139  * **Review Status**: AI-generated / Human-reviewed / Expert-validated
140 140  
141 141  **Automatic Warnings**:
152 +
142 142  * Confidence < 60%: "Low confidence - use caution"
143 143  * Source quality < 40%: "Sources may be unreliable"
144 144  * High controversy: "Disputed - multiple interpretations exist"
... ... @@ -151,6 +151,7 @@
151 151  **Status**: Not visible to regular users (only to moderators)
152 152  
153 153  **Reasons**:
165 +
154 154  * Spam or advertising
155 155  * Personal attacks or harassment
156 156  * Illegal content
... ... @@ -159,6 +159,7 @@
159 159  * Abuse or harmful content
160 160  
161 161  **Process**:
174 +
162 162  * Automated detection flags for moderator review
163 163  * Moderator confirms and hides
164 164  * Original author notified with reason
... ... @@ -181,6 +181,7 @@
181 181  **AKEL is the primary system**. Human contributions supplement and train AKEL.
182 182  
183 183  **AKEL Must**:
197 +
184 184  * Mark all outputs as AI-generated
185 185  * Display confidence scores prominently
186 186  * Provide source citations
... ... @@ -189,6 +189,7 @@
189 189  * Learn from human corrections
190 190  
191 191  **When AKEL Makes Errors**:
206 +
192 192  1. Capture the error pattern (what, why, how common)
193 193  2. Improve the system (better prompt, model, validation)
194 194  3. Re-process affected claims automatically
... ... @@ -219,6 +219,7 @@
219 219  === 4.1 Source Requirements ===
220 220  
221 221  **Track Record Over Credentials**:
237 +
222 222  * Sources evaluated by historical accuracy
223 223  * Correction policy matters
224 224  * Independence from conflicts of interest
... ... @@ -225,6 +225,7 @@
225 225  * Methodology transparency
226 226  
227 227  **Source Quality Database**:
244 +
228 228  * Automated tracking of source accuracy
229 229  * Correction frequency
230 230  * Reliability score (updated continuously)
... ... @@ -256,6 +256,7 @@
256 256  === 4.4 Confidence Scoring ===
257 257  
258 258  **Automated confidence calculation based on**:
276 +
259 259  * Source quality scores
260 260  * Evidence consistency
261 261  * Contradiction detection
... ... @@ -263,6 +263,7 @@
263 263  * Historical accuracy of similar claims
264 264  
265 265  **Thresholds**:
284 +
266 266  * < 40%: Too low to publish (needs improvement)
267 267  * 40-60%: Published with "Low confidence" warning
268 268  * 60-80%: Published as standard
... ... @@ -279,6 +279,7 @@
279 279  === 5.1 Risk Score Calculation ===
280 280  
281 281  **Factors** (weighted algorithm):
301 +
282 282  * **Domain sensitivity**: Medical, legal, safety auto-flagged higher
283 283  * **Potential impact**: Views, citations, spread
284 284  * **Controversy level**: Flags, disputes, edit wars
... ... @@ -305,6 +305,7 @@
305 305  === 6.1 Error Capture ===
306 306  
307 307  **When users flag errors or make corrections**:
328 +
308 308  1. What was wrong? (categorize)
309 309  2. What should it have been?
310 310  3. Why did the system fail? (root cause)
... ... @@ -323,6 +323,7 @@
323 323  === 6.3 Quality Metrics Dashboard ===
324 324  
325 325  **Track continuously**:
347 +
326 326  * Error rate by category
327 327  * Source quality distribution
328 328  * Confidence score trends
... ... @@ -348,6 +348,7 @@
348 348  === 7.2 Anomaly Detection ===
349 349  
350 350  **Automated alerts for**:
373 +
351 351  * Sudden quality drops
352 352  * Unusual patterns
353 353  * Contradiction clusters
... ... @@ -400,6 +400,7 @@
400 400  **Fulfills**: UN-2 (Context-dependent verification), UN-3 (Article summary with FactHarbor analysis summary), UN-8 (Understanding disagreement)
401 401  
402 402  **Automated scenario creation**:
426 +
403 403  * AKEL analyzes claim and generates likely scenarios (use-cases and contexts)
404 404  * Each scenario includes: assumptions, definitions, boundaries, evidence context
405 405  * Users can flag incorrect scenarios
... ... @@ -449,8 +449,6 @@
449 449  This requirement has been **dropped from the current architecture and design**. Versioned entities have been replaced with simple edit history tracking only. Full evolution timeline functionality is deferred to future releases beyond V1.0.
450 450  {{/warning}}
451 451  
452 -
453 -
454 454  **Fulfills**: UN-15 (Verdict evolution timeline)
455 455  
456 456  * Claims and verdicts update as new evidence emerges
... ... @@ -468,6 +468,7 @@
468 468  **Purpose**: Provide side-by-side comparison of what a document claims vs. FactHarbor's complete analysis of its credibility
469 469  
470 470  **Left Panel: Article Summary**:
493 +
471 471  * Document title, source, and claimed credibility
472 472  * "The Big Picture" - main thesis or position change
473 473  * "Key Findings" - structured summary of document's main claims
... ... @@ -475,6 +475,7 @@
475 475  * "Conclusion" - document's bottom line
476 476  
477 477  **Right Panel: FactHarbor Analysis Summary**:
501 +
478 478  * FactHarbor's independent source credibility assessment
479 479  * Claim-by-claim verdicts with confidence scores
480 480  * Methodology assessment (strengths, limitations)
... ... @@ -482,6 +482,7 @@
482 482  * Analysis ID for reference
483 483  
484 484  **Design Principles**:
509 +
485 485  * No scrolling required - both panels visible simultaneously
486 486  * Visual distinction between "what they say" and "FactHarbor's analysis"
487 487  * Color coding for verdicts (supported, uncertain, refuted)
... ... @@ -489,6 +489,7 @@
489 489  * Mobile responsive (panels stack vertically on small screens)
490 490  
491 491  **Implementation Notes**:
517 +
492 492  * Generated automatically by AKEL for every analyzed document
493 493  * Updates when verdict evolves (maintains version history)
494 494  * Exportable as standalone summary report
... ... @@ -515,7 +515,8 @@
515 515  (% style="font-size:0.9em; color:#666;" %)
516 516  ↑ WELL SUPPORTED • 87% confidence
517 517  [[Click for evidence details →]]
518 -(%%)
544 +
545 +
519 519  )))
520 520  
521 521  The study, which followed 10,000 participants over five years, showed significant improvements in cardiovascular health markers.
... ... @@ -528,7 +528,8 @@
528 528  ↑ UNCERTAIN • 45% confidence
529 529  Overstated - evidence shows risk reduction, not prevention
530 530  [[Click for details →]]
531 -(%%)
558 +
559 +
532 532  )))
533 533  
534 534  Dr. Maria Rodriguez, lead researcher, recommends incorporating more olive oil, fish, and vegetables into daily meals.
... ... @@ -541,7 +541,8 @@
541 541  ↑ REFUTED • 15% confidence
542 542  Claim not supported by study design; correlation ≠ causation
543 543  [[Click for counter-evidence →]]
544 -(%%)
572 +
573 +
545 545  )))
546 546  
547 547  Participants also reported feeling more energetic and experiencing better sleep quality, though these were secondary measures.
... ... @@ -548,6 +548,7 @@
548 548  )))
549 549  
550 550  **Legend:**
580 +
551 551  * 🟢 = Well-supported claim (confidence ≥75%)
552 552  * 🟡 = Uncertain claim (confidence 40-74%)
553 553  * 🔴 = Refuted/unsupported claim (confidence <40%)
... ... @@ -566,11 +566,13 @@
566 566  **Confidence:** 87%
567 567  
568 568  **Evidence Summary:**
599 +
569 569  * Meta-analysis of 12 RCTs confirms 23-28% risk reduction
570 570  * Consistent findings across multiple populations
571 571  * Published in peer-reviewed journal (high credibility)
572 572  
573 573  **Uncertainty Factors:**
605 +
574 574  * Exact percentage varies by study (20-30% range)
575 575  
576 576  [[View Full Analysis →]]
... ... @@ -577,6 +577,7 @@
577 577  )))
578 578  
579 579  **Color-Coding System**:
612 +
580 580  * **Green**: Well-supported claims (confidence ≥75%, strong evidence)
581 581  * **Yellow/Orange**: Uncertain claims (confidence 40-74%, conflicting or limited evidence)
582 582  * **Red**: Refuted or unsupported claims (confidence <40%, contradicted by evidence)
... ... @@ -586,8 +586,12 @@
586 586  
587 587  (% style="width:100%; border-collapse:collapse;" %)
588 588  |=**Article Text**|=**Status**|=**Analysis**
589 -|(((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
590 -|(((//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**|(((
622 +|(((
623 +A recent study published in the Journal of Nutrition has revealed new findings about the Mediterranean diet.
624 +)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Context - no highlighting
625 +|(((
626 +//Researchers found that Mediterranean diet followers had a 25% lower risk of heart disease compared to control groups//
627 +)))|(% style="background-color:#D4EDDA; text-align:center; padding:8px;" %)🟢 **WELL SUPPORTED**|(((
591 591  **87% confidence**
592 592  
593 593  Meta-analysis of 12 RCTs confirms 23-28% risk reduction
... ... @@ -594,8 +594,12 @@
594 594  
595 595  [[View Full Analysis]]
596 596  )))
597 -|(((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
598 -|(((//Some experts believe this diet can completely prevent heart attacks//)))|(% style="background-color:#FFF3CD; text-align:center; padding:8px;" %)🟡 **UNCERTAIN**|(((
634 +|(((
635 +The study, which followed 10,000 participants over five years, showed significant improvements in cardiovascular health markers.
636 +)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Methodology - no highlighting
637 +|(((
638 +//Some experts believe this diet can completely prevent heart attacks//
639 +)))|(% style="background-color:#FFF3CD; text-align:center; padding:8px;" %)🟡 **UNCERTAIN**|(((
599 599  **45% confidence**
600 600  
601 601  Overstated - evidence shows risk reduction, not prevention
... ... @@ -602,8 +602,12 @@
602 602  
603 603  [[View Details]]
604 604  )))
605 -|(((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
606 -|(((//The study proves that saturated fats cause heart disease//)))|(% style="background-color:#F8D7DA; text-align:center; padding:8px;" %)🔴 **REFUTED**|(((
646 +|(((
647 +Dr. Rodriguez recommends incorporating more olive oil, fish, and vegetables into daily meals.
648 +)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Recommendation - no highlighting
649 +|(((
650 +//The study proves that saturated fats cause heart disease//
651 +)))|(% style="background-color:#F8D7DA; text-align:center; padding:8px;" %)🔴 **REFUTED**|(((
607 607  **15% confidence**
608 608  
609 609  Claim not supported by study; correlation ≠ causation
... ... @@ -612,6 +612,7 @@
612 612  )))
613 613  
614 614  **Design Notes:**
660 +
615 615  * Highlighted claims use italics to distinguish from plain text
616 616  * Color backgrounds match XWiki message box colors (success/warning/error)
617 617  * Status column shows verdict prominently
... ... @@ -618,6 +618,7 @@
618 618  * Analysis column provides quick summary with link to details
619 619  
620 620  **User Actions**:
667 +
621 621  * **Hover** over highlighted claim → Tooltip appears
622 622  * **Click** highlighted claim → Detailed analysis modal/panel
623 623  * **Toggle** button to turn highlighting on/off
... ... @@ -624,16 +624,18 @@
624 624  * **Keyboard**: Tab through highlighted claims
625 625  
626 626  **Interaction Design**:
674 +
627 627  * Hover/click on highlighted claim → Show tooltip with:
628 - * Claim text
629 - * Verdict (e.g., "WELL SUPPORTED")
630 - * Confidence score (e.g., "85%")
631 - * Brief evidence summary
632 - * Link to detailed analysis
676 +* Claim text
677 +* Verdict (e.g., "WELL SUPPORTED")
678 +* Confidence score (e.g., "85%")
679 +* Brief evidence summary
680 +* Link to detailed analysis
633 633  * Toggle highlighting on/off (user preference)
634 634  * Adjustable color intensity for accessibility
635 635  
636 636  **Technical Requirements**:
685 +
637 637  * Real-time highlighting as page loads (non-blocking)
638 638  * Claim boundary detection (start/end of assertion)
639 639  * Handle nested or overlapping claims
... ... @@ -641,16 +641,19 @@
641 641  * Work with various content formats (HTML, plain text, PDFs)
642 642  
643 643  **Performance Requirements**:
693 +
644 644  * Highlighting renders within 500ms of page load
645 645  * No perceptible delay in reading experience
646 646  * Efficient DOM manipulation (avoid reflows)
647 647  
648 648  **Accessibility**:
699 +
649 649  * Color-blind friendly palette (use patterns/icons in addition to color)
650 650  * Screen reader compatible (ARIA labels for claim credibility)
651 651  * Keyboard navigation to highlighted claims
652 652  
653 653  **Implementation Notes**:
705 +
654 654  * Claims extracted and analyzed by AKEL during initial processing
655 655  * Highlighting data stored as annotations with byte offsets
656 656  * Client-side rendering of highlights based on verdict data
... ... @@ -663,6 +663,7 @@
663 663  **Fulfills**: UN-1 (Fast access to verified content), UN-16 (Clear review status)
664 664  
665 665  **Simple flow**:
718 +
666 666  1. Claim submitted
667 667  2. AKEL processes (automated)
668 668  3. If confidence > threshold: Publish (labeled as AI-generated)
... ... @@ -674,6 +674,7 @@
674 674  ==== FR10 — Moderation ====
675 675  
676 676  **Focus on abuse, not routine quality**:
730 +
677 677  * Automated abuse detection
678 678  * Moderators handle flags
679 679  * Quick response to harmful content
... ... @@ -744,6 +744,7 @@
744 744  **Purpose:** Ensure extracted claims are factual assertions (not opinions/predictions)
745 745  
746 746  **Checks:**
801 +
747 747  1. **Factual Statement Test:** Is this verifiable? (Yes/No)
748 748  2. **Opinion Detection:** Contains hedging language? ("I think", "probably", "best")
749 749  3. **Future Prediction Test:** Makes claims about future events?
... ... @@ -750,6 +750,7 @@
750 750  4. **Specificity Score:** Contains specific entities, numbers, dates?
751 751  
752 752  **Thresholds:**
808 +
753 753  * Factual: Must be "Yes"
754 754  * Opinion markers: <2 hedging phrases
755 755  * Specificity: ≥3 specific elements
... ... @@ -761,11 +761,13 @@
761 761  **Purpose:** Ensure AI-linked evidence actually relates to claim
762 762  
763 763  **Checks:**
820 +
764 764  1. **Semantic Similarity Score:** Evidence vs. claim (embeddings)
765 765  2. **Entity Overlap:** Shared people/places/things?
766 766  3. **Topic Relevance:** Discusses claim subject?
767 767  
768 768  **Thresholds:**
826 +
769 769  * Similarity: ≥0.6 (cosine similarity)
770 770  * Entity overlap: ≥1 shared entity
771 771  * Topic relevance: ≥0.5
... ... @@ -777,11 +777,13 @@
777 777  **Purpose:** Validate scenario assumptions are logical and complete
778 778  
779 779  **Checks:**
838 +
780 780  1. **Completeness:** All required fields populated
781 781  2. **Internal Consistency:** Assumptions don't contradict
782 782  3. **Distinguishability:** Scenarios meaningfully different
783 783  
784 784  **Thresholds:**
844 +
785 785  * Required fields: 100%
786 786  * Contradiction score: <0.3
787 787  * Scenario similarity: <0.8
... ... @@ -793,6 +793,7 @@
793 793  **Purpose:** Only publish high-confidence verdicts
794 794  
795 795  **Checks:**
856 +
796 796  1. **Evidence Count:** Minimum 2 sources
797 797  2. **Source Quality:** Average reliability ≥0.6
798 798  3. **Evidence Agreement:** Supporting vs. contradicting ≥0.6
... ... @@ -799,6 +799,7 @@
799 799  4. **Uncertainty Factors:** Hedging in reasoning
800 800  
801 801  **Confidence Tiers:**
863 +
802 802  * **HIGH (80-100%):** ≥3 sources, ≥0.7 quality, ≥80% agreement
803 803  * **MEDIUM (50-79%):** ≥2 sources, ≥0.6 quality, ≥60% agreement
804 804  * **LOW (0-49%):** <2 sources OR low quality/agreement
... ... @@ -805,11 +805,13 @@
805 805  * **INSUFFICIENT:** <2 sources → DO NOT PUBLISH
806 806  
807 807  **Implementation Phases:**
870 +
808 808  * **POC1:** Gates 1 & 4 only (basic validation)
809 809  * **POC2:** All 4 gates (complete framework)
810 810  * **V1.0:** Hardened with <5% hallucination rate
811 811  
812 812  **Acceptance Criteria:**
876 +
813 813  * ✅ All gates operational
814 814  * ✅ Hallucination rate <5%
815 815  * ✅ Quality metrics public
... ... @@ -818,7 +818,6 @@
818 818  
819 819  **Fulfills:** Data protection, system integrity, user privacy, production readiness
820 820  
821 -
822 822  **Purpose:** Protect FactHarbor systems, user data, and operations from security threats, ensuring production-grade security posture.
823 823  
824 824  **Specification:**
... ... @@ -826,6 +826,7 @@
826 826  ==== API Security ====
827 827  
828 828  **Rate Limiting:**
892 +
829 829  * **Analysis endpoints:** 100 requests/hour per IP
830 830  * **Read endpoints:** 1,000 requests/hour per IP
831 831  * **Search:** 500 requests/hour per IP
... ... @@ -833,21 +833,24 @@
833 833  * **Burst protection:** Max 10 requests/second
834 834  
835 835  **Authentication & Authorization:**
900 +
836 836  * **API Keys:** Required for programmatic access
837 837  * **JWT tokens:** For user sessions (1-hour expiry)
838 838  * **OAuth2:** For third-party integrations
839 839  * **Role-Based Access Control (RBAC):**
840 - * Public: Read-only access to published claims
841 - * Contributor: Submit claims, provide evidence
842 - * Moderator: Review contributions, manage quality
843 - * Admin: System configuration, user management
905 +* Public: Read-only access to published claims
906 +* Contributor: Submit claims, provide evidence
907 +* Moderator: Review contributions, manage quality
908 +* Admin: System configuration, user management
844 844  
845 845  **CORS Policies:**
911 +
846 846  * Whitelist approved domains only
847 847  * No wildcard origins in production
848 848  * Credentials required for sensitive endpoints
849 849  
850 850  **Input Sanitization:**
917 +
851 851  * Validate all user input against schemas
852 852  * Sanitize HTML/JavaScript in text submissions
853 853  * Prevent SQL injection (use parameterized queries)
... ... @@ -855,11 +855,12 @@
855 855  * Max request size: 10MB
856 856  * File upload restrictions: Whitelist file types, scan for malware
857 857  
858 ----
925 +-----
859 859  
860 860  ==== Data Security ====
861 861  
862 862  **Encryption at Rest:**
930 +
863 863  * Database encryption using AES-256
864 864  * Encrypted backups
865 865  * Key management via cloud provider KMS (AWS KMS, Google Cloud KMS)
... ... @@ -866,6 +866,7 @@
866 866  * Regular key rotation (90-day cycle)
867 867  
868 868  **Encryption in Transit:**
937 +
869 869  * HTTPS/TLS 1.3 only (no TLS 1.0/1.1)
870 870  * Strong cipher suites only
871 871  * HSTS (HTTP Strict Transport Security) enabled
... ... @@ -872,6 +872,7 @@
872 872  * Certificate pinning for mobile apps
873 873  
874 874  **Secure Credential Storage:**
944 +
875 875  * Passwords hashed with bcrypt (cost factor 12+)
876 876  * API keys encrypted in database
877 877  * Secrets stored in environment variables (never in code)
... ... @@ -878,12 +878,13 @@
878 878  * Use secrets manager (AWS Secrets Manager, HashiCorp Vault)
879 879  
880 880  **Data Privacy:**
951 +
881 881  * Minimal data collection (privacy by design)
882 882  * User data deletion on request (GDPR compliance)
883 883  * PII encryption in database
884 884  * Anonymize logs (no PII in log files)
885 885  
886 ----
957 +-----
887 887  
888 888  ==== Application Security ====
889 889  
... ... @@ -901,6 +901,7 @@
901 901  10. **Server-Side Request Forgery:** URL validation, whitelist domains
902 902  
903 903  **Security Headers:**
975 +
904 904  * `Content-Security-Policy`: Strict CSP to prevent XSS
905 905  * `X-Frame-Options`: DENY (prevent clickjacking)
906 906  * `X-Content-Type-Options`: nosniff
... ... @@ -908,6 +908,7 @@
908 908  * `Permissions-Policy`: Restrict browser features
909 909  
910 910  **Dependency Vulnerability Scanning:**
983 +
911 911  * **Tools:** Snyk, Dependabot, npm audit, pip-audit
912 912  * **Frequency:** Daily automated scans
913 913  * **Action:** Patch critical vulnerabilities within 24 hours
... ... @@ -914,30 +914,34 @@
914 914  * **Policy:** No known high/critical CVEs in production
915 915  
916 916  **Security Audits:**
990 +
917 917  * **Internal:** Quarterly security reviews
918 918  * **External:** Annual penetration testing by certified firm
919 919  * **Bug Bounty:** Public bug bounty program (V1.1+)
920 920  * **Compliance:** SOC 2 Type II certification target (V1.5)
921 921  
922 ----
996 +-----
923 923  
924 924  ==== Operational Security ====
925 925  
926 926  **DDoS Protection:**
1001 +
927 927  * CloudFlare or AWS Shield
928 928  * Rate limiting at CDN layer
929 929  * Automatic IP blocking for abuse patterns
930 930  
931 931  **Monitoring & Alerting:**
1007 +
932 932  * Real-time security event monitoring
933 933  * Alerts for:
934 - * Failed login attempts (>5 in 10 minutes)
935 - * API abuse patterns
936 - * Unusual data access patterns
937 - * Security scan detections
1010 +* Failed login attempts (>5 in 10 minutes)
1011 +* API abuse patterns
1012 +* Unusual data access patterns
1013 +* Security scan detections
938 938  * Integration with SIEM (Security Information and Event Management)
939 939  
940 940  **Incident Response:**
1017 +
941 941  * Documented incident response plan
942 942  * Security incident classification (P1-P4)
943 943  * On-call rotation for security issues
... ... @@ -945,16 +945,18 @@
945 945  * Public disclosure policy (coordinated disclosure)
946 946  
947 947  **Backup & Recovery:**
1025 +
948 948  * Daily encrypted backups
949 949  * 30-day retention period
950 950  * Tested recovery procedures (quarterly)
951 951  * Disaster recovery plan (RTO: 4 hours, RPO: 1 hour)
952 952  
953 ----
1031 +-----
954 954  
955 955  ==== Compliance & Standards ====
956 956  
957 957  **GDPR Compliance:**
1036 +
958 958  * User consent management
959 959  * Right to access data
960 960  * Right to deletion
... ... @@ -962,6 +962,7 @@
962 962  * Privacy policy published
963 963  
964 964  **Accessibility:**
1044 +
965 965  * WCAG 2.1 AA compliance
966 966  * Screen reader compatibility
967 967  * Keyboard navigation
... ... @@ -968,6 +968,7 @@
968 968  * Alt text for images
969 969  
970 970  **Browser Support:**
1051 +
971 971  * Modern browsers only (Chrome/Edge/Firefox/Safari latest 2 versions)
972 972  * No IE11 support
973 973  
... ... @@ -982,12 +982,10 @@
982 982  * ✅ Incident response plan documented and tested
983 983  * ✅ 95% uptime over 30-day period
984 984  
985 -
986 986  === NFR13: Quality Metrics Transparency ===
987 987  
988 988  **Fulfills:** User trust, transparency, continuous improvement, IFCN methodology transparency
989 989  
990 -
991 991  **Purpose:** Provide transparent, measurable quality metrics that demonstrate AKEL's performance and build user trust in automated fact-checking.
992 992  
993 993  **Specification:**
... ... @@ -996,98 +996,97 @@
996 996  
997 997  **Core Metrics to Display:**
998 998  
999 -**1. Verdict Quality Metrics**
1078 +*
1079 +**
1080 +**1. Verdict Quality Metrics
1000 1000  
1001 1001  **TIGERScore (Fact-Checking Quality):**
1083 +
1002 1002  * **Definition:** Measures how well generated verdicts match expert fact-checker judgments
1003 1003  * **Scale:** 0-100 (higher is better)
1004 1004  * **Calculation:** Using TIGERScore framework (Truth-conditional accuracy, Informativeness, Generality, Evaluativeness, Relevance)
1005 1005  * **Target:** Average ≥80 for production release
1006 1006  * **Display:**
1007 -{{code}}
1008 -Verdict Quality (TIGERScore):
1089 +{{code}}Verdict Quality (TIGERScore):
1009 1009  Overall: 84.2 ▲ (+2.1 from last month)
1010 1010  
1011 1011  Distribution:
1012 - Excellent (>80): 67%
1013 - Good (60-80): 28%
1014 - Needs Improvement (<60): 5%
1093 + Excellent (>80): 67%
1094 + Good (60-80): 28%
1095 + Needs Improvement (<60): 5%
1015 1015  
1016 -Trend: [Graph showing improvement over time]
1017 -{{/code}}
1097 +Trend: [Graph showing improvement over time]{{/code}}
1018 1018  
1019 1019  **2. Hallucination & Faithfulness Metrics**
1020 1020  
1021 1021  **AlignScore (Faithfulness to Evidence):**
1102 +
1022 1022  * **Definition:** Measures how well verdicts align with actual evidence content
1023 1023  * **Scale:** 0-1 (higher is better)
1024 1024  * **Purpose:** Detect AI hallucinations (making claims not supported by evidence)
1025 1025  * **Target:** Average ≥0.85, hallucination rate <5%
1026 1026  * **Display:**
1027 -{{code}}
1028 -Evidence Faithfulness (AlignScore):
1108 +{{code}}Evidence Faithfulness (AlignScore):
1029 1029  Average: 0.87 ▼ (-0.02 from last month)
1030 1030  
1031 1031  Hallucination Rate: 4.2%
1032 - - Claims without evidence support: 3.1%
1033 - - Misrepresented evidence: 1.1%
1112 + - Claims without evidence support: 3.1%
1113 + - Misrepresented evidence: 1.1%
1034 1034  
1035 -Action: Prompt engineering review scheduled
1036 -{{/code}}
1115 +Action: Prompt engineering review scheduled{{/code}}
1037 1037  
1038 1038  **3. Evidence Quality Metrics**
1039 1039  
1040 1040  **Source Reliability:**
1120 +
1041 1041  * Average source quality score (0-1 scale)
1042 1042  * Distribution of high/medium/low quality sources
1043 1043  * Publisher track record trends
1044 1044  
1045 1045  **Evidence Coverage:**
1126 +
1046 1046  * Average number of sources per claim
1047 1047  * Percentage of claims with ≥2 sources (EFCSN minimum)
1048 1048  * Geographic diversity of sources
1049 1049  
1050 1050  **Display:**
1051 -{{code}}
1052 -Evidence Quality:
1132 +{{code}}Evidence Quality:
1053 1053  
1054 1054  Average Sources per Claim: 4.2
1055 1055  Claims with ≥2 sources: 94% (EFCSN compliant)
1056 1056  
1057 1057  Source Quality Distribution:
1058 - High quality (>0.8): 48%
1059 - Medium quality (0.5-0.8): 43%
1060 - Low quality (<0.5): 9%
1138 + High quality (>0.8): 48%
1139 + Medium quality (0.5-0.8): 43%
1140 + Low quality (<0.5): 9%
1061 1061  
1062 -Geographic Diversity: 23 countries represented
1063 -{{/code}}
1142 +Geographic Diversity: 23 countries represented{{/code}}
1064 1064  
1065 1065  **4. Contributor Consensus Metrics** (when human reviewers involved)
1066 1066  
1067 1067  **Inter-Rater Reliability (IRR):**
1147 +
1068 1068  * **Calculation:** Cohen's Kappa or Fleiss' Kappa for multiple raters
1069 1069  * **Scale:** 0-1 (higher is better)
1070 1070  * **Interpretation:**
1071 - * >0.8: Almost perfect agreement
1072 - * 0.6-0.8: Substantial agreement
1073 - * 0.4-0.6: Moderate agreement
1074 - * <0.4: Poor agreement
1151 +* >0.8: Almost perfect agreement
1152 +* 0.6-0.8: Substantial agreement
1153 +* 0.4-0.6: Moderate agreement
1154 +* <0.4: Poor agreement
1075 1075  * **Target:** Maintain ≥0.7 (substantial agreement)
1076 1076  
1077 1077  **Display:**
1078 -{{code}}
1079 -Contributor Consensus:
1158 +{{code}}Contributor Consensus:
1080 1080  
1081 1081  Inter-Rater Reliability (IRR): 0.73 (Substantial agreement)
1082 - - Verdict agreement: 78%
1083 - - Evidence quality agreement: 71%
1084 - - Scenario structure agreement: 69%
1161 + - Verdict agreement: 78%
1162 + - Evidence quality agreement: 71%
1163 + - Scenario structure agreement: 69%
1085 1085  
1086 1086  Cases requiring moderator review: 12
1087 -Moderator override rate: 8%
1088 -{{/code}}
1166 +Moderator override rate: 8%{{/code}}
1089 1089  
1090 ----
1168 +-----
1091 1091  
1092 1092  ==== Quality Dashboard Implementation ====
1093 1093  
... ... @@ -1094,6 +1094,7 @@
1094 1094  **Dashboard Location:** `/quality-metrics`
1095 1095  
1096 1096  **Update Frequency:**
1175 +
1097 1097  * **POC2:** Weekly manual updates
1098 1098  * **Beta 0:** Daily automated updates
1099 1099  * **V1.0:** Real-time metrics (updated hourly)
... ... @@ -1111,16 +1111,16 @@
1111 1111  
1112 1112  {{code}}
1113 1113  ┌─────────────────────────────────────────────────────────────┐
1114 -│ FactHarbor Quality Metrics Last updated: │
1115 -│ Public Dashboard 2 hours ago
1193 +│ FactHarbor Quality Metrics Last updated: │
1194 +│ Public Dashboard 2 hours ago │
1116 1116  └─────────────────────────────────────────────────────────────┘
1117 1117  
1118 1118  📊 KEY METRICS
1119 1119  ─────────────────────────────────────────────────────────────
1120 -TIGERScore (Verdict Quality): 84.2 ▲ (+2.1)
1121 -AlignScore (Faithfulness): 0.87 ▼ (-0.02)
1122 -Hallucination Rate: 4.2% ✓ (Target: <5%)
1123 -Average Sources per Claim: 4.2 ▲ (+0.3)
1199 +TIGERScore (Verdict Quality): 84.2 ▲ (+2.1)
1200 +AlignScore (Faithfulness): 0.87 ▼ (-0.02)
1201 +Hallucination Rate: 4.2% ✓ (Target: <5%)
1202 +Average Sources per Claim: 4.2 ▲ (+0.3)
1124 1124  
1125 1125  📈 TRENDS (30 days)
1126 1126  ─────────────────────────────────────────────────────────────
... ... @@ -1143,7 +1143,7 @@
1143 1143  
1144 1144  {{/code}}
1145 1145  
1146 ----
1225 +-----
1147 1147  
1148 1148  ==== Continuous Improvement Feedback Loop ====
1149 1149  
... ... @@ -1150,31 +1150,36 @@
1150 1150  **How Metrics Inform AKEL Improvements:**
1151 1151  
1152 1152  1. **Identify Weak Areas:**
1153 - * Low TIGERScore → Review prompt engineering
1154 - * High hallucination → Strengthen evidence grounding
1155 - * Low IRR → Clarify evaluation criteria
1156 1156  
1233 +* Low TIGERScore → Review prompt engineering
1234 +* High hallucination → Strengthen evidence grounding
1235 +* Low IRR → Clarify evaluation criteria
1236 +
1157 1157  2. **A/B Testing Integration:**
1158 - * Test prompt variations
1159 - * Measure impact on quality metrics
1160 - * Deploy winners automatically
1161 1161  
1239 +* Test prompt variations
1240 +* Measure impact on quality metrics
1241 +* Deploy winners automatically
1242 +
1162 1162  3. **Alert Thresholds:**
1163 - * TIGERScore drops below 75 → Alert team
1164 - * Hallucination rate exceeds 7% → Pause auto-publishing
1165 - * IRR below 0.6 → Moderator training needed
1166 1166  
1245 +* TIGERScore drops below 75 → Alert team
1246 +* Hallucination rate exceeds 7% → Pause auto-publishing
1247 +* IRR below 0.6 → Moderator training needed
1248 +
1167 1167  4. **Monthly Quality Reviews:**
1168 - * Analyze trends
1169 - * Identify systematic issues
1170 - * Plan prompt improvements
1171 - * Update AKEL models
1172 1172  
1173 ----
1251 +* Analyze trends
1252 +* Identify systematic issues
1253 +* Plan prompt improvements
1254 +* Update AKEL models
1174 1174  
1256 +-----
1257 +
1175 1175  ==== Metric Calculation Details ====
1176 1176  
1177 1177  **TIGERScore Implementation:**
1261 +
1178 1178  * Reference: https://github.com/TIGER-AI-Lab/TIGERScore
1179 1179  * Input: Generated verdict + reference verdict (from expert)
1180 1180  * Output: 0-100 score across 5 dimensions
... ... @@ -1181,6 +1181,7 @@
1181 1181  * Requires: Test set of expert-reviewed claims (minimum 100)
1182 1182  
1183 1183  **AlignScore Implementation:**
1268 +
1184 1184  * Reference: https://github.com/yuh-zha/AlignScore
1185 1185  * Input: Generated verdict + source evidence text
1186 1186  * Output: 0-1 faithfulness score
... ... @@ -1187,11 +1187,12 @@
1187 1187  * Calculation: Semantic alignment between claim and evidence
1188 1188  
1189 1189  **Source Quality Scoring:**
1275 +
1190 1190  * Use existing source reliability database (e.g., NewsGuard, MBFC)
1191 1191  * Factor in: Publication history, corrections record, transparency
1192 1192  * Scale: 0-1 (weighted average across sources)
1193 1193  
1194 ----
1280 +-----
1195 1195  
1196 1196  ==== Integration Points ====
1197 1197  
... ... @@ -1210,9 +1210,6 @@
1210 1210  * ✅ Mobile-responsive dashboard design
1211 1211  * ✅ Metrics inform quarterly AKEL improvement planning
1212 1212  
1213 -
1214 -
1215 -
1216 1216  == 13. Requirements Traceability ==
1217 1217  
1218 1218  For full traceability matrix showing which requirements fulfill which user needs, see:
... ... @@ -1222,11 +1222,13 @@
1222 1222  == 14. Related Pages ==
1223 1223  
1224 1224  **Non-Functional Requirements (see Section 9):**
1308 +
1225 1225  * [[NFR11 — AKEL Quality Assurance Framework>>#NFR11]]
1226 1226  * [[NFR12 — Security Controls>>#NFR12]]
1227 1227  * [[NFR13 — Quality Metrics Transparency>>#NFR13]]
1228 1228  
1229 1229  **Other Requirements:**
1314 +
1230 1230  * [[User Needs>>FactHarbor.Specification.Requirements.User Needs.WebHome]]
1231 1231  * [[V1.0 Requirements>>FactHarbor.Specification.Requirements.V10.]]
1232 1232  * [[Gap Analysis>>FactHarbor.Specification.Requirements.GapAnalysis]]
... ... @@ -1236,7 +1236,7 @@
1236 1236  * [[Data Model>>FactHarbor.Specification.Data Model.WebHome]] - Data structures supporting requirements
1237 1237  * [[Workflows>>FactHarbor.Specification.Workflows.WebHome]] - User interaction workflows
1238 1238  * [[AKEL>>FactHarbor.Specification.AI Knowledge Extraction Layer (AKEL).WebHome]] - AI system fulfilling automation requirements
1239 -* [[Global Rules>>FactHarbor.Organisation.How-We-Work-Together.GlobalRules.WebHome]]
1324 +* [[Global Rules>>Archive.FactHarbor.Organisation.How-We-Work-Together.GlobalRules.WebHome]]
1240 1240  * [[Privacy Policy>>FactHarbor.Organisation.How-We-Work-Together.Privacy-Policy]]
1241 1241  
1242 1242  = V0.9.70 Additional Requirements =
... ... @@ -1247,7 +1247,6 @@
1247 1247  
1248 1248  **Fulfills:** UN-13 (Cite FactHarbor Verdicts), UN-14 (API Access for Integration), UN-26 (Search Engine Visibility)
1249 1249  
1250 -
1251 1251  **Purpose:** Generate valid ClaimReview structured data for every published analysis to enable Google/Bing search visibility and fact-check discovery.
1252 1252  
1253 1253  **Specification:**
... ... @@ -1260,35 +1260,35 @@
1260 1260  
1261 1261  {{code language="json"}}
1262 1262  {
1263 - "@context": "https://schema.org",
1264 - "@type": "ClaimReview",
1265 - "datePublished": "YYYY-MM-DD",
1266 - "url": "https://factharbor.org/claims/{claim_id}",
1267 - "claimReviewed": "The exact claim text",
1268 - "author": {
1269 - "@type": "Organization",
1270 - "name": "FactHarbor",
1271 - "url": "https://factharbor.org"
1272 - },
1273 - "reviewRating": {
1274 - "@type": "Rating",
1275 - "ratingValue": "1-5",
1276 - "bestRating": "5",
1277 - "worstRating": "1",
1278 - "alternateName": "FactHarbor likelihood score"
1279 - },
1280 - "itemReviewed": {
1281 - "@type": "Claim",
1282 - "author": {
1283 - "@type": "Person",
1284 - "name": "Claim author if known"
1285 - },
1286 - "datePublished": "YYYY-MM-DD if known",
1287 - "appearance": {
1288 - "@type": "CreativeWork",
1289 - "url": "Original claim URL if from article"
1290 - }
1291 - }
1347 + "@context": "https://schema.org",
1348 + "@type": "ClaimReview",
1349 + "datePublished": "YYYY-MM-DD",
1350 + "url": "https://factharbor.org/claims/{claim_id}",
1351 + "claimReviewed": "The exact claim text",
1352 + "author": {
1353 + "@type": "Organization",
1354 + "name": "FactHarbor",
1355 + "url": "https://factharbor.org"
1356 + },
1357 + "reviewRating": {
1358 + "@type": "Rating",
1359 + "ratingValue": "1-5",
1360 + "bestRating": "5",
1361 + "worstRating": "1",
1362 + "alternateName": "FactHarbor likelihood score"
1363 + },
1364 + "itemReviewed": {
1365 + "@type": "Claim",
1366 + "author": {
1367 + "@type": "Person",
1368 + "name": "Claim author if known"
1369 + },
1370 + "datePublished": "YYYY-MM-DD if known",
1371 + "appearance": {
1372 + "@type": "CreativeWork",
1373 + "url": "Original claim URL if from article"
1374 + }
1375 + }
1292 1292  }
1293 1293  {{/code}}
1294 1294  
... ... @@ -1295,6 +1295,7 @@
1295 1295  **FactHarbor-Specific Mapping:**
1296 1296  
1297 1297  **Likelihood Score to Rating Scale:**
1382 +
1298 1298  * 80-100% likelihood → 5 (Highly Supported)
1299 1299  * 60-79% likelihood → 4 (Supported)
1300 1300  * 40-59% likelihood → 3 (Mixed/Uncertain)
... ... @@ -1302,6 +1302,7 @@
1302 1302  * 0-19% likelihood → 1 (Refuted)
1303 1303  
1304 1304  **Multiple Scenarios Handling:**
1390 +
1305 1305  * If claim has multiple scenarios with different verdicts, generate **separate ClaimReview** for each scenario
1306 1306  * Add `disambiguatingDescription` field explaining scenario context
1307 1307  * Example: "Scenario: If interpreted as referring to 2023 data..."
... ... @@ -1334,12 +1334,10 @@
1334 1334  * ✅ All required fields populated with correct data types
1335 1335  * ✅ Handles multi-scenario claims correctly (separate ClaimReview per scenario)
1336 1336  
1337 -
1338 1338  === FR45: User Corrections Notification System ===
1339 1339  
1340 1340  **Fulfills:** IFCN Principle 5 (Open & Honest Corrections), EFCSN compliance
1341 1341  
1342 -
1343 1343  **Purpose:** When any claim analysis is corrected, notify users who previously viewed the claim to maintain transparency and build trust.
1344 1344  
1345 1345  **Specification:**
... ... @@ -1355,7 +1355,9 @@
1355 1355  
1356 1356  ==== Notification Mechanisms ====
1357 1357  
1358 -**1. In-Page Banner:**
1442 +*
1443 +**
1444 +**1. In-Page Banner:
1359 1359  
1360 1360  Display prominent banner on claim page:
1361 1361  
... ... @@ -1375,10 +1375,10 @@
1375 1375  
1376 1376  * Public changelog at `/claims/{id}/corrections`
1377 1377  * Displays for each correction:
1378 - * Date/time of correction
1379 - * What changed (before/after comparison)
1380 - * Why changed (reason if provided)
1381 - * Who made change (AKEL auto-update vs. contributor override)
1464 +* Date/time of correction
1465 +* What changed (before/after comparison)
1466 +* Why changed (reason if provided)
1467 +* Who made change (AKEL auto-update vs. contributor override)
1382 1382  
1383 1383  **3. Email Notifications (opt-in):**
1384 1384  
... ... @@ -1422,12 +1422,10 @@
1422 1422  * ✅ Mobile-responsive banner design
1423 1423  * ✅ Accessible (screen reader compatible)
1424 1424  
1425 -
1426 1426  === FR46: Image Verification System ===
1427 1427  
1428 1428  **Fulfills:** UN-27 (Visual Claim Verification)
1429 1429  
1430 -
1431 1431  **Purpose:** Verify authenticity and context of images shared with claims to detect manipulation, misattribution, and out-of-context usage.
1432 1432  
1433 1433  **Specification:**
... ... @@ -1439,23 +1439,25 @@
1439 1439  **Purpose:** Find earlier uses of the image to verify context
1440 1440  
1441 1441  **Implementation:**
1526 +
1442 1442  * Integrate APIs:
1443 - * **Google Vision AI** (reverse search)
1444 - * **TinEye** (oldest known uses)
1445 - * **Bing Visual Search** (broad coverage)
1528 +* **Google Vision AI** (reverse search)
1529 +* **TinEye** (oldest known uses)
1530 +* **Bing Visual Search** (broad coverage)
1446 1446  
1447 1447  **Process:**
1533 +
1448 1448  1. Extract image from claim or user upload
1449 1449  2. Query multiple reverse search services
1450 1450  3. Analyze results for:
1451 - * Earliest known publication
1452 - * Original context (what was it really showing?)
1453 - * Publication timeline
1454 - * Geographic spread
1455 1455  
1538 +* Earliest known publication
1539 +* Original context (what was it really showing?)
1540 +* Publication timeline
1541 +* Geographic spread
1542 +
1456 1456  **Output:**
1457 -{{code}}
1458 -Reverse Image Search Results:
1544 +{{code}}Reverse Image Search Results:
1459 1459  
1460 1460  Earliest known use: 2019-03-15 (5 years before claim)
1461 1461  Original context: "Photo from 2019 flooding in Mumbai"
... ... @@ -1468,10 +1468,9 @@
1468 1468  • 2020-07-22: Bangladesh monsoon
1469 1469  • 2024-10-15: Current claim (misattributed)
1470 1470  
1471 -[View full timeline]
1472 -{{/code}}
1557 +[View full timeline]{{/code}}
1473 1473  
1474 ----
1559 +-----
1475 1475  
1476 1476  **Method 2: AI Manipulation Detection**
1477 1477  
... ... @@ -1478,48 +1478,52 @@
1478 1478  **Purpose:** Detect deepfakes, face swaps, and digital alterations
1479 1479  
1480 1480  **Implementation:**
1566 +
1481 1481  * Integrate detection services:
1482 - * **Sensity AI** (deepfake detection)
1483 - * **Reality Defender** (multimodal analysis)
1484 - * **AWS Rekognition** (face detection inconsistencies)
1568 +* **Sensity AI** (deepfake detection)
1569 +* **Reality Defender** (multimodal analysis)
1570 +* **AWS Rekognition** (face detection inconsistencies)
1485 1485  
1486 1486  **Detection Categories:**
1573 +
1487 1487  1. **Face Manipulation:**
1488 - * Deepfake face swaps
1489 - * Expression manipulation
1490 - * Identity replacement
1491 1491  
1576 +* Deepfake face swaps
1577 +* Expression manipulation
1578 +* Identity replacement
1579 +
1492 1492  2. **Image Manipulation:**
1493 - * Copy-paste artifacts
1494 - * Clone stamp detection
1495 - * Content-aware fill detection
1496 - * JPEG compression inconsistencies
1497 1497  
1582 +* Copy-paste artifacts
1583 +* Clone stamp detection
1584 +* Content-aware fill detection
1585 +* JPEG compression inconsistencies
1586 +
1498 1498  3. **AI Generation:**
1499 - * Detect fully AI-generated images
1500 - * Identify generation artifacts
1501 - * Check for model signatures
1502 1502  
1589 +* Detect fully AI-generated images
1590 +* Identify generation artifacts
1591 +* Check for model signatures
1592 +
1503 1503  **Confidence Scoring:**
1594 +
1504 1504  * **HIGH (80-100%):** Strong evidence of manipulation
1505 1505  * **MEDIUM (50-79%):** Suspicious artifacts detected
1506 1506  * **LOW (0-49%):** Minor inconsistencies or inconclusive
1507 1507  
1508 1508  **Output:**
1509 -{{code}}
1510 -Manipulation Analysis:
1600 +{{code}}Manipulation Analysis:
1511 1511  
1512 1512  Face Manipulation: LOW RISK (12%)
1513 1513  Image Editing: MEDIUM RISK (64%)
1514 - • Clone stamp artifacts detected in sky region
1515 - • JPEG compression inconsistent between objects
1604 + • Clone stamp artifacts detected in sky region
1605 + • JPEG compression inconsistent between objects
1516 1516  
1517 1517  AI Generation: LOW RISK (8%)
1518 1518  
1519 -⚠️ Possible manipulation detected. Manual review recommended.
1520 -{{/code}}
1609 +⚠️ Possible manipulation detected. Manual review recommended.{{/code}}
1521 1521  
1522 ----
1611 +-----
1523 1523  
1524 1524  **Method 3: Metadata Analysis (EXIF)**
1525 1525  
... ... @@ -1526,6 +1526,7 @@
1526 1526  **Purpose:** Extract technical details that may reveal manipulation or misattribution
1527 1527  
1528 1528  **Extracted Data:**
1618 +
1529 1529  * **Camera/Device:** Make, model, software
1530 1530  * **Timestamps:** Original date, modification dates
1531 1531  * **Location:** GPS coordinates (if present)
... ... @@ -1533,6 +1533,7 @@
1533 1533  * **File Properties:** Resolution, compression, format conversions
1534 1534  
1535 1535  **Red Flags:**
1626 +
1536 1536  * Metadata completely stripped (suspicious)
1537 1537  * Timestamp conflicts with claimed date
1538 1538  * GPS location conflicts with claimed location
... ... @@ -1540,8 +1540,7 @@
1540 1540  * Creation date after modification date (impossible)
1541 1541  
1542 1542  **Output:**
1543 -{{code}}
1544 -Image Metadata:
1634 +{{code}}Image Metadata:
1545 1545  
1546 1546  Camera: iPhone 14 Pro
1547 1547  Original date: 2023-08-12 14:32:15
... ... @@ -1553,19 +1553,20 @@
1553 1553  Claim says: "Taken in Los Angeles"
1554 1554  EXIF says: New York City
1555 1555  
1556 -⚠️ Edited 14 months after capture
1557 -{{/code}}
1646 +⚠️ Edited 14 months after capture{{/code}}
1558 1558  
1559 ----
1648 +-----
1560 1560  
1561 1561  ==== Verification Workflow ====
1562 1562  
1563 1563  **Automatic Triggers:**
1653 +
1564 1564  1. User submits claim with image
1565 1565  2. Article being analyzed contains images
1566 1566  3. Social media post includes photos
1567 1567  
1568 1568  **Process:**
1659 +
1569 1569  1. Extract images from content
1570 1570  2. Run all 3 verification methods in parallel
1571 1571  3. Aggregate results into confidence score
... ... @@ -1600,14 +1600,16 @@
1600 1600  ==== Cost Considerations ====
1601 1601  
1602 1602  **API Costs (estimated per image):**
1694 +
1603 1603  * Google Vision AI: $0.001-0.003
1604 1604  * TinEye: $0.02 (commercial API)
1605 1605  * Sensity AI: $0.05-0.10
1606 1606  * AWS Rekognition: $0.001-0.002
1607 1607  
1608 -**Total per image:** ~$0.07-0.15
1700 +**Total per image:** $0.07-0.15**
1609 1609  
1610 1610  **Mitigation Strategies:**
1703 +
1611 1611  * Cache results for duplicate images
1612 1612  * Use free tier quotas where available
1613 1613  * Prioritize higher-value claims for deep analysis
... ... @@ -1622,11 +1622,10 @@
1622 1622  * ✅ Mobile-friendly image comparison interface
1623 1623  * ✅ False positive rate <15%
1624 1624  
1625 -
1626 1626  === FR47: Archive.org Integration ===
1627 1627  
1628 -**Importance:** CRITICAL
1629 -**Fulfills:** Evidence persistence, FR5 (Evidence linking)
1720 +**Importance:** CRITICAL
1721 +**Fulfills:** Evidence persistence, FR5 (Evidence linking)
1630 1630  
1631 1631  **Purpose:** Ensure evidence remains accessible even if original sources are deleted.
1632 1632  
... ... @@ -1635,6 +1635,7 @@
1635 1635  **Automatic Archiving:**
1636 1636  
1637 1637  When AKEL links evidence:
1730 +
1638 1638  1. Check if URL already archived (Wayback Machine API)
1639 1639  2. If not, submit for archiving (Save Page Now API)
1640 1640  3. Store both original URL and archive URL
... ... @@ -1669,17 +1669,20 @@
1669 1669  * ✅ API rate limits respected
1670 1670  * ✅ Archive status visible in evidence display
1671 1671  
1765 +== Category 4: Community Safety ==
1672 1672  
1673 -== Category 4: Community Safety ===== FR48: Contributor Safety Framework ===
1767 + FR48: Contributor Safety Framework ===
1674 1674  
1675 -**Importance:** CRITICAL
1676 -**Fulfills:** UN-28 (Safe contribution environment)
1769 +**Importance:** CRITICAL
1770 +**Fulfills:** UN-28 (Safe contribution environment)
1677 1677  
1678 1678  **Purpose:** Protect contributors from harassment, doxxing, and coordinated attacks.
1679 1679  
1680 1680  **Specification:**
1681 1681  
1682 -**1. Privacy Protection:**
1776 +*
1777 +**
1778 +**1. Privacy Protection:
1683 1683  
1684 1684  * **Optional Pseudonymity:** Contributors can use pseudonyms
1685 1685  * **Email Privacy:** Emails never displayed publicly
... ... @@ -1722,11 +1722,12 @@
1722 1722  * ✅ Moderator tools implemented
1723 1723  * ✅ Safety policy published
1724 1724  
1821 +== Category 5: Continuous Improvement ==
1725 1725  
1726 -== Category 5: Continuous Improvement ===== FR49: A/B Testing Framework ===
1823 + FR49: A/B Testing Framework ===
1727 1727  
1728 -**Importance:** CRITICAL
1729 -**Fulfills:** Continuous system improvement
1825 +**Importance:** CRITICAL
1826 +**Fulfills:** Continuous system improvement
1730 1730  
1731 1731  **Purpose:** Test and measure improvements to AKEL prompts, algorithms, and workflows.
1732 1732  
... ... @@ -1735,20 +1735,23 @@
1735 1735  **Test Capabilities:**
1736 1736  
1737 1737  1. **Prompt Variations:**
1738 - * Test different claim extraction prompts
1739 - * Test different verdict generation prompts
1740 - * Measure: Accuracy, clarity, completeness
1741 1741  
1836 +* Test different claim extraction prompts
1837 +* Test different verdict generation prompts
1838 +* Measure: Accuracy, clarity, completeness
1839 +
1742 1742  2. **Algorithm Variations:**
1743 - * Test different source scoring algorithms
1744 - * Test different confidence calculations
1745 - * Measure: Audit accuracy, user satisfaction
1746 1746  
1842 +* Test different source scoring algorithms
1843 +* Test different confidence calculations
1844 +* Measure: Audit accuracy, user satisfaction
1845 +
1747 1747  3. **Workflow Variations:**
1748 - * Test different quality gate thresholds
1749 - * Test different risk tier assignments
1750 - * Measure: Publication rate, quality scores
1751 1751  
1848 +* Test different quality gate thresholds
1849 +* Test different risk tier assignments
1850 +* Measure: Publication rate, quality scores
1851 +
1752 1752  **Implementation:**
1753 1753  
1754 1754  * **Traffic Split:** 50/50 or 90/10 splits
... ... @@ -1777,11 +1777,10 @@
1777 1777  * ✅ Statistical significance calculated
1778 1778  * ✅ Results inform system improvements
1779 1779  
1780 -
1781 1781  === FR54: Evidence Deduplication ===
1782 1782  
1783 -**Importance:** CRITICAL (POC2/Beta)
1784 -**Fulfills:** Accurate evidence counting, quality metrics
1882 +**Importance:** CRITICAL (POC2/Beta)
1883 +**Fulfills:** Accurate evidence counting, quality metrics
1785 1785  
1786 1786  **Purpose:** Avoid counting the same source multiple times when it appears in different forms.
1787 1787  
... ... @@ -1790,21 +1790,24 @@
1790 1790  **Deduplication Logic:**
1791 1791  
1792 1792  1. **URL Normalization:**
1793 - * Remove tracking parameters (?utm_source=...)
1794 - * Normalize http/https
1795 - * Normalize www/non-www
1796 - * Handle redirects
1797 1797  
1893 +* Remove tracking parameters (?utm_source=...)
1894 +* Normalize http/https
1895 +* Normalize www/non-www
1896 +* Handle redirects
1897 +
1798 1798  2. **Content Similarity:**
1799 - * If two sources have >90% text similarity → Same source
1800 - * If one is subset of other → Same source
1801 - * Use fuzzy matching for minor differences
1802 1802  
1900 +* If two sources have >90% text similarity → Same source
1901 +* If one is subset of other → Same source
1902 +* Use fuzzy matching for minor differences
1903 +
1803 1803  3. **Cross-Domain Syndication:**
1804 - * Detect wire service content (AP, Reuters)
1805 - * Mark as single source if syndicated
1806 - * Count original publication only
1807 1807  
1906 +* Detect wire service content (AP, Reuters)
1907 +* Mark as single source if syndicated
1908 +* Count original publication only
1909 +
1808 1808  **Display:**
1809 1809  
1810 1810  {{code}}
... ... @@ -1811,7 +1811,7 @@
1811 1811  Evidence Sources (3 unique, 5 total):
1812 1812  
1813 1813  1. Original Article (NYTimes)
1814 - - Also appeared in: WashPost, Guardian (syndicated)
1916 + - Also appeared in: WashPost, Guardian (syndicated)
1815 1815  
1816 1816  2. Research Paper (Nature)
1817 1817  
... ... @@ -1826,16 +1826,16 @@
1826 1826  * ✅ Unique vs. total counts accurate
1827 1827  * ✅ Improves evidence quality metrics
1828 1828  
1931 +== Additional Requirements (Lower Importance) ==
1829 1829  
1830 -== Additional Requirements (Lower Importance) ===== FR50: OSINT Toolkit Integration ===
1933 + FR50: OSINT Toolkit Integration ===
1831 1831  
1935 +**Fulfills:** Advanced media verification
1832 1832  
1833 -
1834 -**Fulfills:** Advanced media verification
1835 -
1836 1836  **Purpose:** Integrate open-source intelligence tools for advanced verification.
1837 1837  
1838 1838  **Tools to Integrate:**
1940 +
1839 1839  * InVID/WeVerify (video verification)
1840 1840  * Bellingcat toolkit
1841 1841  * Additional TBD based on V1.0 learnings
... ... @@ -1842,13 +1842,12 @@
1842 1842  
1843 1843  === FR51: Video Verification System ===
1844 1844  
1947 +**Fulfills:** UN-27 (Visual claims), advanced media verification
1845 1845  
1846 -
1847 -**Fulfills:** UN-27 (Visual claims), advanced media verification
1848 -
1849 1849  **Purpose:** Verify video-based claims.
1850 1850  
1851 1851  **Specification:**
1952 +
1852 1852  * Keyframe extraction
1853 1853  * Reverse video search
1854 1854  * Deepfake detection (AI-powered)
... ... @@ -1857,13 +1857,12 @@
1857 1857  
1858 1858  === FR52: Interactive Detection Training ===
1859 1859  
1961 +**Fulfills:** Media literacy education
1860 1860  
1861 -
1862 -**Fulfills:** Media literacy education
1863 -
1864 1864  **Purpose:** Teach users to identify misinformation.
1865 1865  
1866 1866  **Specification:**
1966 +
1867 1867  * Interactive tutorials
1868 1868  * Practice exercises
1869 1869  * Detection quizzes
... ... @@ -1871,19 +1871,17 @@
1871 1871  
1872 1872  === FR53: Cross-Organizational Sharing ===
1873 1873  
1974 +**Fulfills:** Collaboration with other fact-checkers
1874 1874  
1875 -
1876 -**Fulfills:** Collaboration with other fact-checkers
1877 -
1878 1878  **Purpose:** Share findings with IFCN/EFCSN members.
1879 1879  
1880 1880  **Specification:**
1979 +
1881 1881  * API for fact-checking organizations
1882 1882  * Structured data exchange
1883 1883  * Privacy controls
1884 1884  * Attribution requirements
1885 1885  
1886 -
1887 1887  == Summary ==
1888 1888  
1889 1889  **V1.0 Critical Requirements (Must Have):**
... ... @@ -1906,15 +1906,12 @@
1906 1906  * FR52: Detection Training
1907 1907  * FR53: Cross-Org Sharing
1908 1908  
1909 -
1910 1910  **Total:** 11 critical requirements for V1.0
1911 1911  
1912 1912  === FR54: Evidence Deduplication ===
1913 1913  
2011 +**Fulfills:** Accurate evidence counting, quality metrics
1914 1914  
1915 -
1916 -**Fulfills:** Accurate evidence counting, quality metrics
1917 -
1918 1918  **Purpose:** Avoid counting the same source multiple times when it appears in different forms.
1919 1919  
1920 1920  **Specification:**
... ... @@ -1922,21 +1922,24 @@
1922 1922  **Deduplication Logic:**
1923 1923  
1924 1924  1. **URL Normalization:**
1925 - * Remove tracking parameters (?utm_source=...)
1926 - * Normalize http/https
1927 - * Normalize www/non-www
1928 - * Handle redirects
1929 1929  
2021 +* Remove tracking parameters (?utm_source=...)
2022 +* Normalize http/https
2023 +* Normalize www/non-www
2024 +* Handle redirects
2025 +
1930 1930  2. **Content Similarity:**
1931 - * If two sources have >90% text similarity → Same source
1932 - * If one is subset of other → Same source
1933 - * Use fuzzy matching for minor differences
1934 1934  
2028 +* If two sources have >90% text similarity → Same source
2029 +* If one is subset of other → Same source
2030 +* Use fuzzy matching for minor differences
2031 +
1935 1935  3. **Cross-Domain Syndication:**
1936 - * Detect wire service content (AP, Reuters)
1937 - * Mark as single source if syndicated
1938 - * Count original publication only
1939 1939  
2034 +* Detect wire service content (AP, Reuters)
2035 +* Mark as single source if syndicated
2036 +* Count original publication only
2037 +
1940 1940  **Display:**
1941 1941  
1942 1942  {{code}}
... ... @@ -1943,7 +1943,7 @@
1943 1943  Evidence Sources (3 unique, 5 total):
1944 1944  
1945 1945  1. Original Article (NYTimes)
1946 - - Also appeared in: WashPost, Guardian (syndicated)
2044 + - Also appeared in: WashPost, Guardian (syndicated)
1947 1947  
1948 1948  2. Research Paper (Nature)
1949 1949  
... ... @@ -1958,8 +1958,9 @@
1958 1958  * ✅ Unique vs. total counts accurate
1959 1959  * ✅ Improves evidence quality metrics
1960 1960  
2059 +== Additional Requirements (Lower Importance) ==
1961 1961  
1962 -== Additional Requirements (Lower Importance) ===== FR7: Automated Verdicts (Enhanced with Quality Gates) ===
2061 + FR7: Automated Verdicts (Enhanced with Quality Gates) ===
1963 1963  
1964 1964  **POC1+ Enhancement:**
1965 1965  
... ... @@ -1968,19 +1968,20 @@
1968 1968  {{code}}
1969 1969  Workflow:
1970 1970  1. Extract claims
1971 -
2070 + ↓
1972 1972  2. [GATE 1] Validate fact-checkable
1973 -
2072 + ↓
1974 1974  3. Generate scenarios
1975 -
2074 + ↓
1976 1976  4. Generate verdicts
1977 -
2076 + ↓
1978 1978  5. [GATE 4] Validate confidence
1979 -
2078 + ↓
1980 1980  6. Display to user
1981 1981  {{/code}}
1982 1982  
1983 1983  **Updated Verdict States:**
2083 +
1984 1984  * PUBLISHED
1985 1985  * INSUFFICIENT_EVIDENCE
1986 1986  * NON_FACTUAL_CLAIM
... ... @@ -1995,11 +1995,10 @@
1995 1995  
1996 1996  {{code}}
1997 1997  Analysis Summary:
1998 - Verifiable Claims: 3/5
1999 - High Confidence Verdicts: 1
2000 - Medium Confidence: 2
2001 - Evidence Sources: 12
2002 - Avg Source Quality: 0.73
2003 - Quality Score: 8.5/10
2098 + Verifiable Claims: 3/5
2099 + High Confidence Verdicts: 1
2100 + Medium Confidence: 2
2101 + Evidence Sources: 12
2102 + Avg Source Quality: 0.73
2103 + Quality Score: 8.5/10
2004 2004  {{/code}}
2005 -