Changes for page Requirements
Last modified by Robert Schaub on 2026/02/08 21:32
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Parent
-
... ... @@ -1,1 +1,1 @@ 1 -Test.FactHarbor V0\.9\.76.Specification.WebHome1 +Test.FactHarbor.Specification.WebHome - Content
-
... ... @@ -32,7 +32,6 @@ 32 32 **Who**: Anyone (no login required) 33 33 34 34 **Can**: 35 - 36 36 * Browse and search claims 37 37 * View scenarios, evidence, verdicts, and confidence scores 38 38 * Flag issues or errors ... ... @@ -40,7 +40,6 @@ 40 40 * Submit claims automatically (new claims added if not duplicates) 41 41 42 42 **Cannot**: 43 - 44 44 * Modify content 45 45 * Access edit history details 46 46 ... ... @@ -51,7 +51,6 @@ 51 51 **Who**: Registered users (earns reputation through contributions) 52 52 53 53 **Can**: 54 - 55 55 * Everything a Reader can do 56 56 * Edit claims, evidence, and scenarios 57 57 * Add sources and citations ... ... @@ -60,7 +60,6 @@ 60 60 * Earn reputation points for quality contributions 61 61 62 62 **Reputation System**: 63 - 64 64 * New contributors: Limited edit privileges 65 65 * Established contributors (established reputation): Full edit access 66 66 * Trusted contributors (substantial reputation): Can approve certain changes ... ... @@ -68,7 +68,6 @@ 68 68 * Reputation lost through: Reverted edits, invalid flags, abuse 69 69 70 70 **Cannot**: 71 - 72 72 * Delete or hide content (only moderators) 73 73 * Override moderation decisions 74 74 ... ... @@ -79,7 +79,6 @@ 79 79 **Who**: Trusted community members with proven track record, appointed by governance board 80 80 81 81 **Can**: 82 - 83 83 * Review flagged content 84 84 * Hide harmful or abusive content 85 85 * Resolve disputes between contributors ... ... @@ -88,7 +88,6 @@ 88 88 * Access full audit logs 89 89 90 90 **Cannot**: 91 - 92 92 * Change governance rules 93 93 * Permanently ban users without board approval 94 94 * Override technical quality gates ... ... @@ -102,7 +102,6 @@ 102 102 **Not a permanent role**: Contacted externally when needed for contested claims in their domain 103 103 104 104 **When used**: 105 - 106 106 * Medical claims with life/safety implications 107 107 * Legal interpretations with significant impact 108 108 * Scientific claims with high controversy ... ... @@ -109,7 +109,6 @@ 109 109 * Technical claims requiring specialized knowledge 110 110 111 111 **Process**: 112 - 113 113 * Moderator identifies need for expert input 114 114 * Contact expert externally (don't require them to be users) 115 115 * Trusted Contributor provides written opinion with sources ... ... @@ -129,13 +129,11 @@ 129 129 **Status**: Visible to all users 130 130 131 131 **Includes**: 132 - 133 133 * AI-generated analyses (default state) 134 134 * User-contributed content 135 135 * Edited/improved content 136 136 137 137 **Quality Indicators** (displayed with content): 138 - 139 139 * **Confidence Score**: 0-100% (AI's confidence in analysis) 140 140 * **Source Quality Score**: 0-100% (based on source track record) 141 141 * **Controversy Flag**: If high dispute/edit activity ... ... @@ -145,7 +145,6 @@ 145 145 * **Review Status**: AI-generated / Human-reviewed / Expert-validated 146 146 147 147 **Automatic Warnings**: 148 - 149 149 * Confidence < 60%: "Low confidence - use caution" 150 150 * Source quality < 40%: "Sources may be unreliable" 151 151 * High controversy: "Disputed - multiple interpretations exist" ... ... @@ -158,7 +158,6 @@ 158 158 **Status**: Not visible to regular users (only to moderators) 159 159 160 160 **Reasons**: 161 - 162 162 * Spam or advertising 163 163 * Personal attacks or harassment 164 164 * Illegal content ... ... @@ -167,7 +167,6 @@ 167 167 * Abuse or harmful content 168 168 169 169 **Process**: 170 - 171 171 * Automated detection flags for moderator review 172 172 * Moderator confirms and hides 173 173 * Original author notified with reason ... ... @@ -190,7 +190,6 @@ 190 190 **AKEL is the primary system**. Human contributions supplement and train AKEL. 191 191 192 192 **AKEL Must**: 193 - 194 194 * Mark all outputs as AI-generated 195 195 * Display confidence scores prominently 196 196 * Provide source citations ... ... @@ -199,7 +199,6 @@ 199 199 * Learn from human corrections 200 200 201 201 **When AKEL Makes Errors**: 202 - 203 203 1. Capture the error pattern (what, why, how common) 204 204 2. Improve the system (better prompt, model, validation) 205 205 3. Re-process affected claims automatically ... ... @@ -230,7 +230,6 @@ 230 230 === 4.1 Source Requirements === 231 231 232 232 **Track Record Over Credentials**: 233 - 234 234 * Sources evaluated by historical accuracy 235 235 * Correction policy matters 236 236 * Independence from conflicts of interest ... ... @@ -237,7 +237,6 @@ 237 237 * Methodology transparency 238 238 239 239 **Source Quality Database**: 240 - 241 241 * Automated tracking of source accuracy 242 242 * Correction frequency 243 243 * Reliability score (updated continuously) ... ... @@ -269,7 +269,6 @@ 269 269 === 4.4 Confidence Scoring === 270 270 271 271 **Automated confidence calculation based on**: 272 - 273 273 * Source quality scores 274 274 * Evidence consistency 275 275 * Contradiction detection ... ... @@ -277,7 +277,6 @@ 277 277 * Historical accuracy of similar claims 278 278 279 279 **Thresholds**: 280 - 281 281 * < 40%: Too low to publish (needs improvement) 282 282 * 40-60%: Published with "Low confidence" warning 283 283 * 60-80%: Published as standard ... ... @@ -294,7 +294,6 @@ 294 294 === 5.1 Risk Score Calculation === 295 295 296 296 **Factors** (weighted algorithm): 297 - 298 298 * **Domain sensitivity**: Medical, legal, safety auto-flagged higher 299 299 * **Potential impact**: Views, citations, spread 300 300 * **Controversy level**: Flags, disputes, edit wars ... ... @@ -321,7 +321,6 @@ 321 321 === 6.1 Error Capture === 322 322 323 323 **When users flag errors or make corrections**: 324 - 325 325 1. What was wrong? (categorize) 326 326 2. What should it have been? 327 327 3. Why did the system fail? (root cause) ... ... @@ -340,7 +340,6 @@ 340 340 === 6.3 Quality Metrics Dashboard === 341 341 342 342 **Track continuously**: 343 - 344 344 * Error rate by category 345 345 * Source quality distribution 346 346 * Confidence score trends ... ... @@ -366,7 +366,6 @@ 366 366 === 7.2 Anomaly Detection === 367 367 368 368 **Automated alerts for**: 369 - 370 370 * Sudden quality drops 371 371 * Unusual patterns 372 372 * Contradiction clusters ... ... @@ -419,7 +419,6 @@ 419 419 **Fulfills**: UN-2 (Context-dependent verification), UN-3 (Article summary with FactHarbor analysis summary), UN-8 (Understanding disagreement) 420 420 421 421 **Automated scenario creation**: 422 - 423 423 * AKEL analyzes claim and generates likely scenarios (use-cases and contexts) 424 424 * Each scenario includes: assumptions, definitions, boundaries, evidence context 425 425 * Users can flag incorrect scenarios ... ... @@ -480,7 +480,6 @@ 480 480 **Purpose**: Provide side-by-side comparison of what a document claims vs. FactHarbor's complete analysis of its credibility 481 481 482 482 **Left Panel: Article Summary**: 483 - 484 484 * Document title, source, and claimed credibility 485 485 * "The Big Picture" - main thesis or position change 486 486 * "Key Findings" - structured summary of document's main claims ... ... @@ -488,7 +488,6 @@ 488 488 * "Conclusion" - document's bottom line 489 489 490 490 **Right Panel: FactHarbor Analysis Summary**: 491 - 492 492 * FactHarbor's independent source credibility assessment 493 493 * Claim-by-claim verdicts with confidence scores 494 494 * Methodology assessment (strengths, limitations) ... ... @@ -496,7 +496,6 @@ 496 496 * Analysis ID for reference 497 497 498 498 **Design Principles**: 499 - 500 500 * No scrolling required - both panels visible simultaneously 501 501 * Visual distinction between "what they say" and "FactHarbor's analysis" 502 502 * Color coding for verdicts (supported, uncertain, refuted) ... ... @@ -504,7 +504,6 @@ 504 504 * Mobile responsive (panels stack vertically on small screens) 505 505 506 506 **Implementation Notes**: 507 - 508 508 * Generated automatically by AKEL for every analyzed document 509 509 * Updates when verdict evolves (maintains version history) 510 510 * Exportable as standalone summary report ... ... @@ -531,8 +531,7 @@ 531 531 (% style="font-size:0.9em; color:#666;" %) 532 532 ↑ WELL SUPPORTED • 87% confidence 533 533 [[Click for evidence details →]] 534 - 535 - 505 +(%%) 536 536 ))) 537 537 538 538 The study, which followed 10,000 participants over five years, showed significant improvements in cardiovascular health markers. ... ... @@ -545,8 +545,7 @@ 545 545 ↑ UNCERTAIN • 45% confidence 546 546 Overstated - evidence shows risk reduction, not prevention 547 547 [[Click for details →]] 548 - 549 - 518 +(%%) 550 550 ))) 551 551 552 552 Dr. Maria Rodriguez, lead researcher, recommends incorporating more olive oil, fish, and vegetables into daily meals. ... ... @@ -559,8 +559,7 @@ 559 559 ↑ REFUTED • 15% confidence 560 560 Claim not supported by study design; correlation ≠ causation 561 561 [[Click for counter-evidence →]] 562 - 563 - 531 +(%%) 564 564 ))) 565 565 566 566 Participants also reported feeling more energetic and experiencing better sleep quality, though these were secondary measures. ... ... @@ -567,7 +567,6 @@ 567 567 ))) 568 568 569 569 **Legend:** 570 - 571 571 * 🟢 = Well-supported claim (confidence ≥75%) 572 572 * 🟡 = Uncertain claim (confidence 40-74%) 573 573 * 🔴 = Refuted/unsupported claim (confidence <40%) ... ... @@ -586,13 +586,11 @@ 586 586 **Confidence:** 87% 587 587 588 588 **Evidence Summary:** 589 - 590 590 * Meta-analysis of 12 RCTs confirms 23-28% risk reduction 591 591 * Consistent findings across multiple populations 592 592 * Published in peer-reviewed journal (high credibility) 593 593 594 594 **Uncertainty Factors:** 595 - 596 596 * Exact percentage varies by study (20-30% range) 597 597 598 598 [[View Full Analysis →]] ... ... @@ -599,7 +599,6 @@ 599 599 ))) 600 600 601 601 **Color-Coding System**: 602 - 603 603 * **Green**: Well-supported claims (confidence ≥75%, strong evidence) 604 604 * **Yellow/Orange**: Uncertain claims (confidence 40-74%, conflicting or limited evidence) 605 605 * **Red**: Refuted or unsupported claims (confidence <40%, contradicted by evidence) ... ... @@ -609,12 +609,8 @@ 609 609 610 610 (% style="width:100%; border-collapse:collapse;" %) 611 611 |=**Article Text**|=**Status**|=**Analysis** 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**|((( 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**|((( 618 618 **87% confidence** 619 619 620 620 Meta-analysis of 12 RCTs confirms 23-28% risk reduction ... ... @@ -621,12 +621,8 @@ 621 621 622 622 [[View Full Analysis]] 623 623 ))) 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**|((( 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**|((( 630 630 **45% confidence** 631 631 632 632 Overstated - evidence shows risk reduction, not prevention ... ... @@ -633,12 +633,8 @@ 633 633 634 634 [[View Details]] 635 635 ))) 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**|((( 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**|((( 642 642 **15% confidence** 643 643 644 644 Claim not supported by study; correlation ≠ causation ... ... @@ -647,7 +647,6 @@ 647 647 ))) 648 648 649 649 **Design Notes:** 650 - 651 651 * Highlighted claims use italics to distinguish from plain text 652 652 * Color backgrounds match XWiki message box colors (success/warning/error) 653 653 * Status column shows verdict prominently ... ... @@ -654,7 +654,6 @@ 654 654 * Analysis column provides quick summary with link to details 655 655 656 656 **User Actions**: 657 - 658 658 * **Hover** over highlighted claim → Tooltip appears 659 659 * **Click** highlighted claim → Detailed analysis modal/panel 660 660 * **Toggle** button to turn highlighting on/off ... ... @@ -661,18 +661,16 @@ 661 661 * **Keyboard**: Tab through highlighted claims 662 662 663 663 **Interaction Design**: 664 - 665 665 * Hover/click on highlighted claim → Show tooltip with: 666 -* Claim text 667 -* Verdict (e.g., "WELL SUPPORTED") 668 -* Confidence score (e.g., "85%") 669 -* Brief evidence summary 670 -* Link to detailed analysis 615 + * Claim text 616 + * Verdict (e.g., "WELL SUPPORTED") 617 + * Confidence score (e.g., "85%") 618 + * Brief evidence summary 619 + * Link to detailed analysis 671 671 * Toggle highlighting on/off (user preference) 672 672 * Adjustable color intensity for accessibility 673 673 674 674 **Technical Requirements**: 675 - 676 676 * Real-time highlighting as page loads (non-blocking) 677 677 * Claim boundary detection (start/end of assertion) 678 678 * Handle nested or overlapping claims ... ... @@ -680,19 +680,16 @@ 680 680 * Work with various content formats (HTML, plain text, PDFs) 681 681 682 682 **Performance Requirements**: 683 - 684 684 * Highlighting renders within 500ms of page load 685 685 * No perceptible delay in reading experience 686 686 * Efficient DOM manipulation (avoid reflows) 687 687 688 688 **Accessibility**: 689 - 690 690 * Color-blind friendly palette (use patterns/icons in addition to color) 691 691 * Screen reader compatible (ARIA labels for claim credibility) 692 692 * Keyboard navigation to highlighted claims 693 693 694 694 **Implementation Notes**: 695 - 696 696 * Claims extracted and analyzed by AKEL during initial processing 697 697 * Highlighting data stored as annotations with byte offsets 698 698 * Client-side rendering of highlights based on verdict data ... ... @@ -705,7 +705,6 @@ 705 705 **Fulfills**: UN-1 (Fast access to verified content), UN-16 (Clear review status) 706 706 707 707 **Simple flow**: 708 - 709 709 1. Claim submitted 710 710 2. AKEL processes (automated) 711 711 3. If confidence > threshold: Publish (labeled as AI-generated) ... ... @@ -717,7 +717,6 @@ 717 717 ==== FR10 — Moderation ==== 718 718 719 719 **Focus on abuse, not routine quality**: 720 - 721 721 * Automated abuse detection 722 722 * Moderators handle flags 723 723 * Quick response to harmful content ... ... @@ -788,7 +788,6 @@ 788 788 **Purpose:** Ensure extracted claims are factual assertions (not opinions/predictions) 789 789 790 790 **Checks:** 791 - 792 792 1. **Factual Statement Test:** Is this verifiable? (Yes/No) 793 793 2. **Opinion Detection:** Contains hedging language? ("I think", "probably", "best") 794 794 3. **Future Prediction Test:** Makes claims about future events? ... ... @@ -795,7 +795,6 @@ 795 795 4. **Specificity Score:** Contains specific entities, numbers, dates? 796 796 797 797 **Thresholds:** 798 - 799 799 * Factual: Must be "Yes" 800 800 * Opinion markers: <2 hedging phrases 801 801 * Specificity: ≥3 specific elements ... ... @@ -807,13 +807,11 @@ 807 807 **Purpose:** Ensure AI-linked evidence actually relates to claim 808 808 809 809 **Checks:** 810 - 811 811 1. **Semantic Similarity Score:** Evidence vs. claim (embeddings) 812 812 2. **Entity Overlap:** Shared people/places/things? 813 813 3. **Topic Relevance:** Discusses claim subject? 814 814 815 815 **Thresholds:** 816 - 817 817 * Similarity: ≥0.6 (cosine similarity) 818 818 * Entity overlap: ≥1 shared entity 819 819 * Topic relevance: ≥0.5 ... ... @@ -825,13 +825,11 @@ 825 825 **Purpose:** Validate scenario assumptions are logical and complete 826 826 827 827 **Checks:** 828 - 829 829 1. **Completeness:** All required fields populated 830 830 2. **Internal Consistency:** Assumptions don't contradict 831 831 3. **Distinguishability:** Scenarios meaningfully different 832 832 833 833 **Thresholds:** 834 - 835 835 * Required fields: 100% 836 836 * Contradiction score: <0.3 837 837 * Scenario similarity: <0.8 ... ... @@ -843,7 +843,6 @@ 843 843 **Purpose:** Only publish high-confidence verdicts 844 844 845 845 **Checks:** 846 - 847 847 1. **Evidence Count:** Minimum 2 sources 848 848 2. **Source Quality:** Average reliability ≥0.6 849 849 3. **Evidence Agreement:** Supporting vs. contradicting ≥0.6 ... ... @@ -850,7 +850,6 @@ 850 850 4. **Uncertainty Factors:** Hedging in reasoning 851 851 852 852 **Confidence Tiers:** 853 - 854 854 * **HIGH (80-100%):** ≥3 sources, ≥0.7 quality, ≥80% agreement 855 855 * **MEDIUM (50-79%):** ≥2 sources, ≥0.6 quality, ≥60% agreement 856 856 * **LOW (0-49%):** <2 sources OR low quality/agreement ... ... @@ -857,13 +857,11 @@ 857 857 * **INSUFFICIENT:** <2 sources → DO NOT PUBLISH 858 858 859 859 **Implementation Phases:** 860 - 861 861 * **POC1:** Gates 1 & 4 only (basic validation) 862 862 * **POC2:** All 4 gates (complete framework) 863 863 * **V1.0:** Hardened with <5% hallucination rate 864 864 865 865 **Acceptance Criteria:** 866 - 867 867 * ✅ All gates operational 868 868 * ✅ Hallucination rate <5% 869 869 * ✅ Quality metrics public ... ... @@ -870,429 +870,31 @@ 870 870 871 871 === NFR12: Security Controls === 872 872 873 -**Fulfills:** Data protection,systemintegrity,user privacy,production readiness806 +**Fulfills:** Production readiness, legal compliance 874 874 875 -**Phase:** Beta 0 (essential), V1.0 (complete) **BLOCKER** 808 +**Requirements:** 809 +1. **Input Validation:** SQL injection, XSS, CSRF prevention 810 +2. **Rate Limiting:** 5 analyses per minute per IP 811 +3. **Authentication:** Secure sessions, API key rotation 812 +4. **Data Protection:** HTTPS, encryption, backups 813 +5. **Security Audit:** Penetration testing, GDPR compliance 876 876 877 -** Purpose:**ProtectFactHarborsystems, user data, and operations from security threats,ensuringproduction-gradesecurity posture.815 +**Milestone:** Beta 0 (essential), V1.0 (complete) **BLOCKER** 878 878 879 -**Specification:** 880 - 881 -==== API Security ==== 882 - 883 -**Rate Limiting:** 884 - 885 -* **Analysis endpoints:** 100 requests/hour per IP 886 -* **Read endpoints:** 1,000 requests/hour per IP 887 -* **Search:** 500 requests/hour per IP 888 -* **Authenticated users:** 5x higher limits 889 -* **Burst protection:** Max 10 requests/second 890 - 891 -**Authentication & Authorization:** 892 - 893 -* **API Keys:** Required for programmatic access 894 -* **JWT tokens:** For user sessions (1-hour expiry) 895 -* **OAuth2:** For third-party integrations 896 -* **Role-Based Access Control (RBAC):** 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 901 - 902 -**CORS Policies:** 903 - 904 -* Whitelist approved domains only 905 -* No wildcard origins in production 906 -* Credentials required for sensitive endpoints 907 - 908 -**Input Sanitization:** 909 - 910 -* Validate all user input against schemas 911 -* Sanitize HTML/JavaScript in text submissions 912 -* Prevent SQL injection (use parameterized queries) 913 -* Prevent command injection (no shell execution of user input) 914 -* Max request size: 10MB 915 -* File upload restrictions: Whitelist file types, scan for malware 916 - 917 ------ 918 - 919 -==== Data Security ==== 920 - 921 -**Encryption at Rest:** 922 - 923 -* Database encryption using AES-256 924 -* Encrypted backups 925 -* Key management via cloud provider KMS (AWS KMS, Google Cloud KMS) 926 -* Regular key rotation (90-day cycle) 927 - 928 -**Encryption in Transit:** 929 - 930 -* HTTPS/TLS 1.3 only (no TLS 1.0/1.1) 931 -* Strong cipher suites only 932 -* HSTS (HTTP Strict Transport Security) enabled 933 -* Certificate pinning for mobile apps 934 - 935 -**Secure Credential Storage:** 936 - 937 -* Passwords hashed with bcrypt (cost factor 12+) 938 -* API keys encrypted in database 939 -* Secrets stored in environment variables (never in code) 940 -* Use secrets manager (AWS Secrets Manager, HashiCorp Vault) 941 - 942 -**Data Privacy:** 943 - 944 -* Minimal data collection (privacy by design) 945 -* User data deletion on request (GDPR compliance) 946 -* PII encryption in database 947 -* Anonymize logs (no PII in log files) 948 - 949 ------ 950 - 951 -==== Application Security ==== 952 - 953 -**OWASP Top 10 Compliance:** 954 - 955 -1. **Broken Access Control:** RBAC implementation, path traversal prevention 956 -2. **Cryptographic Failures:** Strong encryption, secure key management 957 -3. **Injection:** Parameterized queries, input validation 958 -4. **Insecure Design:** Security review of all features 959 -5. **Security Misconfiguration:** Hardened defaults, security headers 960 -6. **Vulnerable Components:** Dependency scanning (see below) 961 -7. **Authentication Failures:** Strong password policy, MFA support 962 -8. **Data Integrity Failures:** Signature verification, checksums 963 -9. **Security Logging Failures:** Comprehensive audit logs 964 -10. **Server-Side Request Forgery:** URL validation, whitelist domains 965 - 966 -**Security Headers:** 967 - 968 -* `Content-Security-Policy`: Strict CSP to prevent XSS 969 -* `X-Frame-Options`: DENY (prevent clickjacking) 970 -* `X-Content-Type-Options`: nosniff 971 -* `Referrer-Policy`: strict-origin-when-cross-origin 972 -* `Permissions-Policy`: Restrict browser features 973 - 974 -**Dependency Vulnerability Scanning:** 975 - 976 -* **Tools:** Snyk, Dependabot, npm audit, pip-audit 977 -* **Frequency:** Daily automated scans 978 -* **Action:** Patch critical vulnerabilities within 24 hours 979 -* **Policy:** No known high/critical CVEs in production 980 - 981 -**Security Audits:** 982 - 983 -* **Internal:** Quarterly security reviews 984 -* **External:** Annual penetration testing by certified firm 985 -* **Bug Bounty:** Public bug bounty program (V1.1+) 986 -* **Compliance:** SOC 2 Type II certification target (V1.5) 987 - 988 ------ 989 - 990 -==== Operational Security ==== 991 - 992 -**DDoS Protection:** 993 - 994 -* CloudFlare or AWS Shield 995 -* Rate limiting at CDN layer 996 -* Automatic IP blocking for abuse patterns 997 - 998 -**Monitoring & Alerting:** 999 - 1000 -* Real-time security event monitoring 1001 -* Alerts for: 1002 -* Failed login attempts (>5 in 10 minutes) 1003 -* API abuse patterns 1004 -* Unusual data access patterns 1005 -* Security scan detections 1006 -* Integration with SIEM (Security Information and Event Management) 1007 - 1008 -**Incident Response:** 1009 - 1010 -* Documented incident response plan 1011 -* Security incident classification (P1-P4) 1012 -* On-call rotation for security issues 1013 -* Post-mortem for all security incidents 1014 -* Public disclosure policy (coordinated disclosure) 1015 - 1016 -**Backup & Recovery:** 1017 - 1018 -* Daily encrypted backups 1019 -* 30-day retention period 1020 -* Tested recovery procedures (quarterly) 1021 -* Disaster recovery plan (RTO: 4 hours, RPO: 1 hour) 1022 - 1023 ------ 1024 - 1025 -==== Compliance & Standards ==== 1026 - 1027 -**GDPR Compliance:** 1028 - 1029 -* User consent management 1030 -* Right to access data 1031 -* Right to deletion 1032 -* Data portability 1033 -* Privacy policy published 1034 - 1035 -**Accessibility:** 1036 - 1037 -* WCAG 2.1 AA compliance 1038 -* Screen reader compatibility 1039 -* Keyboard navigation 1040 -* Alt text for images 1041 - 1042 -**Browser Support:** 1043 - 1044 -* Modern browsers only (Chrome/Edge/Firefox/Safari latest 2 versions) 1045 -* No IE11 support 1046 - 1047 -**Acceptance Criteria:** 1048 - 1049 -* ✅ Passes OWASP ZAP security scan (no high/critical findings) 1050 -* ✅ All dependencies with known vulnerabilities patched 1051 -* ✅ Penetration test completed with no critical findings 1052 -* ✅ Rate limiting blocks abuse attempts 1053 -* ✅ Encryption at rest and in transit verified 1054 -* ✅ Security headers scored A+ on securityheaders.com 1055 -* ✅ Incident response plan documented and tested 1056 -* ✅ 95% uptime over 30-day period 1057 - 1058 1058 === NFR13: Quality Metrics Transparency === 1059 1059 1060 -**Fulfills:** Usertrust, transparency,continuousimprovement,IFCN methodology transparency819 +**Fulfills:** IFCN transparency, user trust 1061 1061 1062 -**Phase:** POC2 (internal), Beta 0 (public), V1.0 (real-time) 821 +**Public Metrics:** 822 +* Quality gates performance 823 +* Evidence quality stats 824 +* Hallucination rate 825 +* User feedback 1063 1063 1064 -** Purpose:** Providetransparent,measurable quality metricsthatdemonstrateAKEL's performance and build usertrustin automated fact-checking.827 +**Milestone:** POC2 (internal), Beta 0 (public), V1.0 (real-time) 1065 1065 1066 -**Specification:** 1067 1067 1068 -==== Component: Public Quality Dashboard ==== 1069 1069 1070 -**Core Metrics to Display:** 1071 - 1072 -* 1073 -** 1074 -**1. Verdict Quality Metrics 1075 - 1076 -**TIGERScore (Fact-Checking Quality):** 1077 - 1078 -* **Definition:** Measures how well generated verdicts match expert fact-checker judgments 1079 -* **Scale:** 0-100 (higher is better) 1080 -* **Calculation:** Using TIGERScore framework (Truth-conditional accuracy, Informativeness, Generality, Evaluativeness, Relevance) 1081 -* **Target:** Average ≥80 for production release 1082 -* **Display:** 1083 -{{code}}Verdict Quality (TIGERScore): 1084 -Overall: 84.2 ▲ (+2.1 from last month) 1085 - 1086 -Distribution: 1087 - Excellent (>80): 67% 1088 - Good (60-80): 28% 1089 - Needs Improvement (<60): 5% 1090 - 1091 -Trend: [Graph showing improvement over time]{{/code}} 1092 - 1093 -**2. Hallucination & Faithfulness Metrics** 1094 - 1095 -**AlignScore (Faithfulness to Evidence):** 1096 - 1097 -* **Definition:** Measures how well verdicts align with actual evidence content 1098 -* **Scale:** 0-1 (higher is better) 1099 -* **Purpose:** Detect AI hallucinations (making claims not supported by evidence) 1100 -* **Target:** Average ≥0.85, hallucination rate <5% 1101 -* **Display:** 1102 -{{code}}Evidence Faithfulness (AlignScore): 1103 -Average: 0.87 ▼ (-0.02 from last month) 1104 - 1105 -Hallucination Rate: 4.2% 1106 - - Claims without evidence support: 3.1% 1107 - - Misrepresented evidence: 1.1% 1108 - 1109 -Action: Prompt engineering review scheduled{{/code}} 1110 - 1111 -**3. Evidence Quality Metrics** 1112 - 1113 -**Source Reliability:** 1114 - 1115 -* Average source quality score (0-1 scale) 1116 -* Distribution of high/medium/low quality sources 1117 -* Publisher track record trends 1118 - 1119 -**Evidence Coverage:** 1120 - 1121 -* Average number of sources per claim 1122 -* Percentage of claims with ≥2 sources (EFCSN minimum) 1123 -* Geographic diversity of sources 1124 - 1125 -**Display:** 1126 -{{code}}Evidence Quality: 1127 - 1128 -Average Sources per Claim: 4.2 1129 -Claims with ≥2 sources: 94% (EFCSN compliant) 1130 - 1131 -Source Quality Distribution: 1132 - High quality (>0.8): 48% 1133 - Medium quality (0.5-0.8): 43% 1134 - Low quality (<0.5): 9% 1135 - 1136 -Geographic Diversity: 23 countries represented{{/code}} 1137 - 1138 -**4. Contributor Consensus Metrics** (when human reviewers involved) 1139 - 1140 -**Inter-Rater Reliability (IRR):** 1141 - 1142 -* **Calculation:** Cohen's Kappa or Fleiss' Kappa for multiple raters 1143 -* **Scale:** 0-1 (higher is better) 1144 -* **Interpretation:** 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 1149 -* **Target:** Maintain ≥0.7 (substantial agreement) 1150 - 1151 -**Display:** 1152 -{{code}}Contributor Consensus: 1153 - 1154 -Inter-Rater Reliability (IRR): 0.73 (Substantial agreement) 1155 - - Verdict agreement: 78% 1156 - - Evidence quality agreement: 71% 1157 - - Scenario structure agreement: 69% 1158 - 1159 -Cases requiring moderator review: 12 1160 -Moderator override rate: 8%{{/code}} 1161 - 1162 ------ 1163 - 1164 -==== Quality Dashboard Implementation ==== 1165 - 1166 -**Dashboard Location:** `/quality-metrics` 1167 - 1168 -**Update Frequency:** 1169 - 1170 -* **POC2:** Weekly manual updates 1171 -* **Beta 0:** Daily automated updates 1172 -* **V1.0:** Real-time metrics (updated hourly) 1173 - 1174 -**Dashboard Sections:** 1175 - 1176 -1. **Overview:** Key metrics at a glance 1177 -2. **Verdict Quality:** TIGERScore trends and distributions 1178 -3. **Evidence Analysis:** Source quality and coverage 1179 -4. **AI Performance:** Hallucination rates, AlignScore 1180 -5. **Human Oversight:** Contributor consensus, review rates 1181 -6. **System Health:** Processing times, error rates, uptime 1182 - 1183 -**Example Dashboard Layout:** 1184 - 1185 -{{code}} 1186 -┌─────────────────────────────────────────────────────────────┐ 1187 -│ FactHarbor Quality Metrics Last updated: │ 1188 -│ Public Dashboard 2 hours ago │ 1189 -└─────────────────────────────────────────────────────────────┘ 1190 - 1191 -📊 KEY METRICS 1192 -───────────────────────────────────────────────────────────── 1193 -TIGERScore (Verdict Quality): 84.2 ▲ (+2.1) 1194 -AlignScore (Faithfulness): 0.87 ▼ (-0.02) 1195 -Hallucination Rate: 4.2% ✓ (Target: <5%) 1196 -Average Sources per Claim: 4.2 ▲ (+0.3) 1197 - 1198 -📈 TRENDS (30 days) 1199 -───────────────────────────────────────────────────────────── 1200 -[Graph: TIGERScore trending upward] 1201 -[Graph: Hallucination rate declining] 1202 -[Graph: Evidence quality stable] 1203 - 1204 -⚠️ IMPROVEMENT TARGETS 1205 -───────────────────────────────────────────────────────────── 1206 -1. Reduce hallucination rate to <3% (Current: 4.2%) 1207 -2. Increase TIGERScore average to >85 (Current: 84.2) 1208 -3. Maintain IRR >0.75 (Current: 0.73) 1209 - 1210 -📄 DETAILED REPORTS 1211 -───────────────────────────────────────────────────────────── 1212 -• Monthly Quality Report (PDF) 1213 -• Methodology Documentation 1214 -• AKEL Performance Analysis 1215 -• Contributor Agreement Analysis 1216 - 1217 -{{/code}} 1218 - 1219 ------ 1220 - 1221 -==== Continuous Improvement Feedback Loop ==== 1222 - 1223 -**How Metrics Inform AKEL Improvements:** 1224 - 1225 -1. **Identify Weak Areas:** 1226 - 1227 -* Low TIGERScore → Review prompt engineering 1228 -* High hallucination → Strengthen evidence grounding 1229 -* Low IRR → Clarify evaluation criteria 1230 - 1231 -2. **A/B Testing Integration:** 1232 - 1233 -* Test prompt variations 1234 -* Measure impact on quality metrics 1235 -* Deploy winners automatically 1236 - 1237 -3. **Alert Thresholds:** 1238 - 1239 -* TIGERScore drops below 75 → Alert team 1240 -* Hallucination rate exceeds 7% → Pause auto-publishing 1241 -* IRR below 0.6 → Moderator training needed 1242 - 1243 -4. **Monthly Quality Reviews:** 1244 - 1245 -* Analyze trends 1246 -* Identify systematic issues 1247 -* Plan prompt improvements 1248 -* Update AKEL models 1249 - 1250 ------ 1251 - 1252 -==== Metric Calculation Details ==== 1253 - 1254 -**TIGERScore Implementation:** 1255 - 1256 -* Reference: https://github.com/TIGER-AI-Lab/TIGERScore 1257 -* Input: Generated verdict + reference verdict (from expert) 1258 -* Output: 0-100 score across 5 dimensions 1259 -* Requires: Test set of expert-reviewed claims (minimum 100) 1260 - 1261 -**AlignScore Implementation:** 1262 - 1263 -* Reference: https://github.com/yuh-zha/AlignScore 1264 -* Input: Generated verdict + source evidence text 1265 -* Output: 0-1 faithfulness score 1266 -* Calculation: Semantic alignment between claim and evidence 1267 - 1268 -**Source Quality Scoring:** 1269 - 1270 -* Use existing source reliability database (e.g., NewsGuard, MBFC) 1271 -* Factor in: Publication history, corrections record, transparency 1272 -* Scale: 0-1 (weighted average across sources) 1273 - 1274 ------ 1275 - 1276 -==== Integration Points ==== 1277 - 1278 -* **NFR11: AKEL Quality Assurance** - Metrics validate quality gate effectiveness 1279 -* **FR49: A/B Testing** - Metrics measure test success 1280 -* **FR11: Audit Trail** - Source of quality data 1281 -* **NFR3: Transparency** - Public metrics build trust 1282 - 1283 -**Acceptance Criteria:** 1284 - 1285 -* ✅ All core metrics implemented and calculating correctly 1286 -* ✅ Dashboard updates daily (Beta 0) or hourly (V1.0) 1287 -* ✅ Alerts trigger when metrics degrade beyond thresholds 1288 -* ✅ Monthly quality report auto-generates 1289 -* ✅ Dashboard is publicly accessible (no login required) 1290 -* ✅ Mobile-responsive dashboard design 1291 -* ✅ Metrics inform quarterly AKEL improvement planning 1292 - 1293 - 1294 - 1295 - 1296 1296 == 13. Requirements Traceability == 1297 1297 1298 1298 For full traceability matrix showing which requirements fulfill which user needs, see: ... ... @@ -1302,13 +1302,11 @@ 1302 1302 == 14. Related Pages == 1303 1303 1304 1304 **Non-Functional Requirements (see Section 9):** 1305 - 1306 1306 * [[NFR11 — AKEL Quality Assurance Framework>>#NFR11]] 1307 1307 * [[NFR12 — Security Controls>>#NFR12]] 1308 1308 * [[NFR13 — Quality Metrics Transparency>>#NFR13]] 1309 1309 1310 1310 **Other Requirements:** 1311 - 1312 1312 * [[User Needs>>FactHarbor.Specification.Requirements.User Needs.WebHome]] 1313 1313 * [[V1.0 Requirements>>FactHarbor.Specification.Requirements.V10.]] 1314 1314 * [[Gap Analysis>>FactHarbor.Specification.Requirements.GapAnalysis]] ... ... @@ -1318,7 +1318,7 @@ 1318 1318 * [[Data Model>>FactHarbor.Specification.Data Model.WebHome]] - Data structures supporting requirements 1319 1319 * [[Workflows>>FactHarbor.Specification.Workflows.WebHome]] - User interaction workflows 1320 1320 * [[AKEL>>FactHarbor.Specification.AI Knowledge Extraction Layer (AKEL).WebHome]] - AI system fulfilling automation requirements 1321 -* [[Global Rules>> Archive.FactHarbor.Organisation.How-We-Work-Together.GlobalRules.WebHome]]854 +* [[Global Rules>>FactHarbor.Organisation.How-We-Work-Together.GlobalRules.WebHome]] 1322 1322 * [[Privacy Policy>>FactHarbor.Organisation.How-We-Work-Together.Privacy-Policy]] 1323 1323 1324 1324 = V0.9.70 Additional Requirements = ... ... @@ -1327,620 +1327,61 @@ 1327 1327 1328 1328 === FR44: ClaimReview Schema Implementation === 1329 1329 1330 - **Fulfills:**UN-13 (CiteFactHarbor Verdicts),UN-14 (API AccessforIntegration), UN-26 (Search EngineVisibility)863 +Generate valid ClaimReview structured data for Google/Bing visibility. 1331 1331 1332 -**Phase:** V1.0 1333 - 1334 -**Purpose:** Generate valid ClaimReview structured data for every published analysis to enable Google/Bing search visibility and fact-check discovery. 1335 - 1336 -**Specification:** 1337 - 1338 -==== Component: Schema.org Markup Generator ==== 1339 - 1340 -FactHarbor must generate valid ClaimReview structured data following Schema.org specifications for every published claim analysis. 1341 - 1342 -**Required JSON-LD Schema:** 1343 - 1344 -{{code language="json"}} 1345 -{ 1346 - "@context": "https://schema.org", 1347 - "@type": "ClaimReview", 1348 - "datePublished": "YYYY-MM-DD", 1349 - "url": "https://factharbor.org/claims/{claim_id}", 1350 - "claimReviewed": "The exact claim text", 1351 - "author": { 1352 - "@type": "Organization", 1353 - "name": "FactHarbor", 1354 - "url": "https://factharbor.org" 1355 - }, 1356 - "reviewRating": { 1357 - "@type": "Rating", 1358 - "ratingValue": "1-5", 1359 - "bestRating": "5", 1360 - "worstRating": "1", 1361 - "alternateName": "FactHarbor likelihood score" 1362 - }, 1363 - "itemReviewed": { 1364 - "@type": "Claim", 1365 - "author": { 1366 - "@type": "Person", 1367 - "name": "Claim author if known" 1368 - }, 1369 - "datePublished": "YYYY-MM-DD if known", 1370 - "appearance": { 1371 - "@type": "CreativeWork", 1372 - "url": "Original claim URL if from article" 1373 - } 1374 - } 1375 -} 1376 -{{/code}} 1377 - 1378 -**FactHarbor-Specific Mapping:** 1379 - 1380 -**Likelihood Score to Rating Scale:** 1381 - 865 +**Schema.org Mapping:** 1382 1382 * 80-100% likelihood → 5 (Highly Supported) 1383 -* 60-79% likelihood→ 4 (Supported)1384 -* 40-59% likelihood→ 3 (Mixed/Uncertain)1385 -* 20-39% likelihood→ 2 (Questionable)1386 -* 0-19% likelihood→ 1 (Refuted)867 +* 60-79% → 4 (Supported) 868 +* 40-59% → 3 (Mixed) 869 +* 20-39% → 2 (Questionable) 870 +* 0-19% → 1 (Refuted) 1387 1387 1388 -**M ultipleScenariosHandling:**872 +**Milestone:** V1.0 1389 1389 1390 -* If claim has multiple scenarios with different verdicts, generate **separate ClaimReview** for each scenario 1391 -* Add `disambiguatingDescription` field explaining scenario context 1392 -* Example: "Scenario: If interpreted as referring to 2023 data..." 1393 - 1394 -==== Implementation Requirements ==== 1395 - 1396 -1. **Auto-generate** on claim publication 1397 -2. **Embed** in HTML `<head>` section as JSON-LD script 1398 -3. **Validate** against Schema.org validator before publishing 1399 -4. **Submit** to Google Search Console for indexing 1400 -5. **Update** automatically when verdict changes (integrate with FR8: Time Evolution) 1401 - 1402 -==== Integration Points ==== 1403 - 1404 -* **FR7: Automated Verdicts** - Source of rating data and claim text 1405 -* **FR8: Time Evolution** - Triggers schema updates when verdicts change 1406 -* **FR11: Audit Trail** - Logs all schema generation and update events 1407 - 1408 -==== Resources ==== 1409 - 1410 -* ClaimReview Project: https://www.claimreviewproject.com 1411 -* Schema.org ClaimReview: https://schema.org/ClaimReview 1412 -* Google Fact Check Guidelines: https://developers.google.com/search/docs/appearance/fact-check 1413 - 1414 -**Acceptance Criteria:** 1415 - 1416 -* ✅ Passes Google Structured Data Testing Tool 1417 -* ✅ Appears in Google Fact Check Explorer within 48 hours of publication 1418 -* ✅ Valid JSON-LD syntax (no errors) 1419 -* ✅ All required fields populated with correct data types 1420 -* ✅ Handles multi-scenario claims correctly (separate ClaimReview per scenario) 1421 - 1422 1422 === FR45: User Corrections Notification System === 1423 1423 1424 - **Fulfills:** IFCNPrinciple5 (Open& HonestCorrections),EFCSNcompliance876 +Notify users when analyses are corrected. 1425 1425 1426 -**Phase:** Beta 0 (basic), V1.0 (complete) **BLOCKER** 878 +**Mechanisms:** 879 +1. In-page banner (30 days) 880 +2. Public correction log 881 +3. Email notifications (opt-in) 882 +4. RSS/API feed 1427 1427 1428 -** Purpose:**Whenanyclaimanalysis iscorrected,notifyusers whopreviously viewedtheclaim to maintain transparency and build trust.884 +**Milestone:** Beta 0 (basic), V1.0 (complete) **BLOCKER** 1429 1429 1430 -**Specification:** 1431 - 1432 -==== Component: Corrections Visibility Framework ==== 1433 - 1434 -**Correction Types:** 1435 - 1436 -1. **Major Correction:** Verdict changes category (e.g., "Supported" → "Refuted") 1437 -2. **Significant Correction:** Likelihood score changes >20% 1438 -3. **Minor Correction:** Evidence additions, source quality updates 1439 -4. **Scenario Addition:** New scenario added to existing claim 1440 - 1441 -==== Notification Mechanisms ==== 1442 - 1443 -* 1444 -** 1445 -**1. In-Page Banner: 1446 - 1447 -Display prominent banner on claim page: 1448 - 1449 -{{code}} 1450 -[!] CORRECTION NOTICE 1451 -This analysis was updated on [DATE]. [View what changed] [Dismiss] 1452 - 1453 -Major changes: 1454 -• Verdict changed from "Likely True (75%)" to "Uncertain (45%)" 1455 -• New contradicting evidence added from [Source] 1456 -• Scenario 2 updated with additional context 1457 - 1458 -[See full correction log] 1459 -{{/code}} 1460 - 1461 -**2. Correction Log Page:** 1462 - 1463 -* Public changelog at `/claims/{id}/corrections` 1464 -* Displays for each correction: 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) 1469 - 1470 -**3. Email Notifications (opt-in):** 1471 - 1472 -* Send to users who bookmarked or shared the claim 1473 -* Subject: "FactHarbor Correction: [Claim title]" 1474 -* Include summary of changes 1475 -* Link to updated analysis 1476 - 1477 -**4. RSS/API Feed:** 1478 - 1479 -* Corrections feed at `/corrections.rss` 1480 -* API endpoint: `GET /api/corrections?since={timestamp}` 1481 -* Enables external monitoring by journalists and researchers 1482 - 1483 -==== Display Rules ==== 1484 - 1485 -* Show banner on **ALL pages** displaying the claim (search results, related claims, embeddings) 1486 -* Banner persists for **30 days** after correction 1487 -* **"Corrections" count badge** on claim card 1488 -* **Timestamp** on every verdict: "Last updated: [datetime]" 1489 - 1490 -==== IFCN Compliance Requirements ==== 1491 - 1492 -* Corrections policy published at `/corrections-policy` 1493 -* User can report suspected errors via `/report-error/{claim_id}` 1494 -* Link to IFCN complaint process (if FactHarbor becomes signatory) 1495 -* **Scrupulous transparency:** Never silently edit analyses 1496 - 1497 -==== Integration Points ==== 1498 - 1499 -* **FR8: Time Evolution** - Triggers corrections when verdicts change 1500 -* **FR11: Audit Trail** - Source of correction data and change history 1501 -* **NFR3: Transparency** - Public correction log demonstrates commitment 1502 - 1503 -**Acceptance Criteria:** 1504 - 1505 -* ✅ Banner appears within 60 seconds of correction 1506 -* ✅ Correction log is permanent and publicly accessible 1507 -* ✅ Email notifications deliver within 5 minutes 1508 -* ✅ RSS feed updates in real-time 1509 -* ✅ Mobile-responsive banner design 1510 -* ✅ Accessible (screen reader compatible) 1511 - 1512 1512 === FR46: Image Verification System === 1513 1513 1514 -**Fulfills:** UN-27 (Visual Claim Verification) 888 +**Methods:** 889 +1. Reverse image search 890 +2. EXIF metadata analysis 891 +3. Manipulation detection (basic) 892 +4. Context verification 1515 1515 1516 -** Phase:** Beta 0 (basic), V1.0 (extended)894 +**Milestone:** Beta 0 (basic), V1.0 (extended) 1517 1517 1518 -**Purpose:** Verify authenticity and context of images shared with claims to detect manipulation, misattribution, and out-of-context usage. 1519 - 1520 -**Specification:** 1521 - 1522 -==== Component: Multi-Method Image Verification ==== 1523 - 1524 -**Method 1: Reverse Image Search** 1525 - 1526 -**Purpose:** Find earlier uses of the image to verify context 1527 - 1528 -**Implementation:** 1529 - 1530 -* Integrate APIs: 1531 -* **Google Vision AI** (reverse search) 1532 -* **TinEye** (oldest known uses) 1533 -* **Bing Visual Search** (broad coverage) 1534 - 1535 -**Process:** 1536 - 1537 -1. Extract image from claim or user upload 1538 -2. Query multiple reverse search services 1539 -3. Analyze results for: 1540 - 1541 -* Earliest known publication 1542 -* Original context (what was it really showing?) 1543 -* Publication timeline 1544 -* Geographic spread 1545 - 1546 -**Output:** 1547 -{{code}}Reverse Image Search Results: 1548 - 1549 -Earliest known use: 2019-03-15 (5 years before claim) 1550 -Original context: "Photo from 2019 flooding in Mumbai" 1551 -This claim uses it for: "2024 hurricane damage in Florida" 1552 - 1553 -⚠️ Image is OUT OF CONTEXT 1554 - 1555 -Found in 47 other articles: 1556 -• 2019-03-15: Mumbai floods (original) 1557 -• 2020-07-22: Bangladesh monsoon 1558 -• 2024-10-15: Current claim (misattributed) 1559 - 1560 -[View full timeline]{{/code}} 1561 - 1562 ------ 1563 - 1564 -**Method 2: AI Manipulation Detection** 1565 - 1566 -**Purpose:** Detect deepfakes, face swaps, and digital alterations 1567 - 1568 -**Implementation:** 1569 - 1570 -* Integrate detection services: 1571 -* **Sensity AI** (deepfake detection) 1572 -* **Reality Defender** (multimodal analysis) 1573 -* **AWS Rekognition** (face detection inconsistencies) 1574 - 1575 -**Detection Categories:** 1576 - 1577 -1. **Face Manipulation:** 1578 - 1579 -* Deepfake face swaps 1580 -* Expression manipulation 1581 -* Identity replacement 1582 - 1583 -2. **Image Manipulation:** 1584 - 1585 -* Copy-paste artifacts 1586 -* Clone stamp detection 1587 -* Content-aware fill detection 1588 -* JPEG compression inconsistencies 1589 - 1590 -3. **AI Generation:** 1591 - 1592 -* Detect fully AI-generated images 1593 -* Identify generation artifacts 1594 -* Check for model signatures 1595 - 1596 -**Confidence Scoring:** 1597 - 1598 -* **HIGH (80-100%):** Strong evidence of manipulation 1599 -* **MEDIUM (50-79%):** Suspicious artifacts detected 1600 -* **LOW (0-49%):** Minor inconsistencies or inconclusive 1601 - 1602 -**Output:** 1603 -{{code}}Manipulation Analysis: 1604 - 1605 -Face Manipulation: LOW RISK (12%) 1606 -Image Editing: MEDIUM RISK (64%) 1607 - • Clone stamp artifacts detected in sky region 1608 - • JPEG compression inconsistent between objects 1609 - 1610 -AI Generation: LOW RISK (8%) 1611 - 1612 -⚠️ Possible manipulation detected. Manual review recommended.{{/code}} 1613 - 1614 ------ 1615 - 1616 -**Method 3: Metadata Analysis (EXIF)** 1617 - 1618 -**Purpose:** Extract technical details that may reveal manipulation or misattribution 1619 - 1620 -**Extracted Data:** 1621 - 1622 -* **Camera/Device:** Make, model, software 1623 -* **Timestamps:** Original date, modification dates 1624 -* **Location:** GPS coordinates (if present) 1625 -* **Editing History:** Software used, edit count 1626 -* **File Properties:** Resolution, compression, format conversions 1627 - 1628 -**Red Flags:** 1629 - 1630 -* Metadata completely stripped (suspicious) 1631 -* Timestamp conflicts with claimed date 1632 -* GPS location conflicts with claimed location 1633 -* Multiple edit rounds (hiding something?) 1634 -* Creation date after modification date (impossible) 1635 - 1636 -**Output:** 1637 -{{code}}Image Metadata: 1638 - 1639 -Camera: iPhone 14 Pro 1640 -Original date: 2023-08-12 14:32:15 1641 -Location: 40.7128°N, 74.0060°W (New York City) 1642 -Modified: 2024-10-15 08:45:22 1643 -Software: Adobe Photoshop 2024 1644 - 1645 -⚠️ Location conflicts with claim 1646 -Claim says: "Taken in Los Angeles" 1647 -EXIF says: New York City 1648 - 1649 -⚠️ Edited 14 months after capture{{/code}} 1650 - 1651 ------ 1652 - 1653 -==== Verification Workflow ==== 1654 - 1655 -**Automatic Triggers:** 1656 - 1657 -1. User submits claim with image 1658 -2. Article being analyzed contains images 1659 -3. Social media post includes photos 1660 - 1661 -**Process:** 1662 - 1663 -1. Extract images from content 1664 -2. Run all 3 verification methods in parallel 1665 -3. Aggregate results into confidence score 1666 -4. Generate human-readable summary 1667 -5. Display prominently in analysis 1668 - 1669 -**Display Integration:** 1670 - 1671 -Show image verification panel in claim analysis: 1672 - 1673 -{{code}} 1674 -📷 IMAGE VERIFICATION 1675 - 1676 -[Image thumbnail] 1677 - 1678 -✅ Reverse Search: Original context verified 1679 -⚠️ Manipulation: Possible editing detected (64% confidence) 1680 -✅ Metadata: Consistent with claim details 1681 - 1682 -Overall Assessment: CAUTION ADVISED 1683 -This image may have been edited. Original context appears accurate. 1684 - 1685 -[View detailed analysis] 1686 -{{/code}} 1687 - 1688 -==== Integration Points ==== 1689 - 1690 -* **FR7: Automated Verdicts** - Image verification affects claim credibility 1691 -* **FR4: Analysis Summary** - Image findings included in summary 1692 -* **UN-27: Visual Claim Verification** - Direct fulfillment 1693 - 1694 -==== Cost Considerations ==== 1695 - 1696 -**API Costs (estimated per image):** 1697 - 1698 -* Google Vision AI: $0.001-0.003 1699 -* TinEye: $0.02 (commercial API) 1700 -* Sensity AI: $0.05-0.10 1701 -* AWS Rekognition: $0.001-0.002 1702 - 1703 -**Total per image:** $0.07-0.15** 1704 - 1705 -**Mitigation Strategies:** 1706 - 1707 -* Cache results for duplicate images 1708 -* Use free tier quotas where available 1709 -* Prioritize higher-value claims for deep analysis 1710 -* Offer premium verification as paid tier 1711 - 1712 -**Acceptance Criteria:** 1713 - 1714 -* ✅ Reverse image search finds original sources 1715 -* ✅ Manipulation detection accuracy >80% on test dataset 1716 -* ✅ EXIF extraction works for major image formats (JPEG, PNG, HEIC) 1717 -* ✅ Results display within 10 seconds 1718 -* ✅ Mobile-friendly image comparison interface 1719 -* ✅ False positive rate <15% 1720 - 1721 1721 === FR47: Archive.org Integration === 1722 1722 1723 -**Priority:** CRITICAL 1724 -**Fulfills:** Evidence persistence, FR5 (Evidence linking) 1725 -**Phase:** V1.0 898 +Auto-save evidence sources to Wayback Machine. 1726 1726 1727 -** Purpose:** Ensure evidence remains accessibleeven if originalsourcesaredeleted.900 +**Milestone:** Beta 0 1728 1728 1729 - **Specification:**902 +=== FR48: Safety Framework for Contributors === 1730 1730 1731 - **AutomaticArchiving:**904 +Protect contributors from harassment and legal threats. 1732 1732 1733 - When AKEL linksevidence:906 +**Milestone:** V1.1 1734 1734 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 908 +=== FR49: A/B Testing Framework === 1739 1739 1740 - **ArchiveDisplay:**910 +Test AKEL approaches and UI designs systematically. 1741 1741 1742 -{{code}} 1743 -Evidence Source: [Original URL] 1744 -Archived: [Archive.org URL] (Captured: [date]) 912 +**Milestone:** V1.0 1745 1745 1746 -[View Original] [View Archive] 1747 -{{/code}} 914 +=== FR50: OSINT Toolkit Integration === 1748 1748 1749 -**Fallback Logic:** 1750 1750 1751 -* If original URL unavailable → Auto-redirect to archive 1752 -* If archive unavailable → Display warning 1753 -* If both unavailable → Flag for manual review 1754 1754 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 - 1944 1944 **Fulfills:** Advanced media verification 1945 1945 **Phase:** V1.1 1946 1946 ... ... @@ -1947,7 +1947,6 @@ 1947 1947 **Purpose:** Integrate open-source intelligence tools for advanced verification. 1948 1948 1949 1949 **Tools to Integrate:** 1950 - 1951 1951 * InVID/WeVerify (video verification) 1952 1952 * Bellingcat toolkit 1953 1953 * Additional TBD based on V1.0 learnings ... ... @@ -1962,7 +1962,6 @@ 1962 1962 **Purpose:** Verify video-based claims. 1963 1963 1964 1964 **Specification:** 1965 - 1966 1966 * Keyframe extraction 1967 1967 * Reverse video search 1968 1968 * Deepfake detection (AI-powered) ... ... @@ -1979,7 +1979,6 @@ 1979 1979 **Purpose:** Teach users to identify misinformation. 1980 1980 1981 1981 **Specification:** 1982 - 1983 1983 * Interactive tutorials 1984 1984 * Practice exercises 1985 1985 * Detection quizzes ... ... @@ -1995,12 +1995,12 @@ 1995 1995 **Purpose:** Share findings with IFCN/EFCSN members. 1996 1996 1997 1997 **Specification:** 1998 - 1999 1999 * API for fact-checking organizations 2000 2000 * Structured data exchange 2001 2001 * Privacy controls 2002 2002 * Attribution requirements 2003 2003 974 + 2004 2004 == Summary == 2005 2005 2006 2006 **V1.0 Critical Requirements (Must Have):** ... ... @@ -2023,6 +2023,7 @@ 2023 2023 * FR52: Detection Training 2024 2024 * FR53: Cross-Org Sharing 2025 2025 997 + 2026 2026 **Total:** 11 critical requirements for V1.0 2027 2027 2028 2028 === FR54: Evidence Deduplication === ... ... @@ -2039,24 +2039,21 @@ 2039 2039 **Deduplication Logic:** 2040 2040 2041 2041 1. **URL Normalization:** 1014 + * Remove tracking parameters (?utm_source=...) 1015 + * Normalize http/https 1016 + * Normalize www/non-www 1017 + * Handle redirects 2042 2042 2043 -* Remove tracking parameters (?utm_source=...) 2044 -* Normalize http/https 2045 -* Normalize www/non-www 2046 -* Handle redirects 2047 - 2048 2048 2. **Content Similarity:** 1020 + * If two sources have >90% text similarity → Same source 1021 + * If one is subset of other → Same source 1022 + * Use fuzzy matching for minor differences 2049 2049 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 - 2054 2054 3. **Cross-Domain Syndication:** 1025 + * Detect wire service content (AP, Reuters) 1026 + * Mark as single source if syndicated 1027 + * Count original publication only 2055 2055 2056 -* Detect wire service content (AP, Reuters) 2057 -* Mark as single source if syndicated 2058 -* Count original publication only 2059 - 2060 2060 **Display:** 2061 2061 2062 2062 {{code}} ... ... @@ -2078,9 +2078,8 @@ 2078 2078 * ✅ Unique vs. total counts accurate 2079 2079 * ✅ Improves evidence quality metrics 2080 2080 2081 -== Additional Requirements (Lower Priority) == 2082 2082 2083 - FR7: Automated Verdicts (Enhanced with Quality Gates) === 1051 +== Additional Requirements (Lower Priority) ===== FR7: Automated Verdicts (Enhanced with Quality Gates) === 2084 2084 2085 2085 **POC1+ Enhancement:** 2086 2086 ... ... @@ -2102,7 +2102,6 @@ 2102 2102 {{/code}} 2103 2103 2104 2104 **Updated Verdict States:** 2105 - 2106 2106 * PUBLISHED 2107 2107 * INSUFFICIENT_EVIDENCE 2108 2108 * NON_FACTUAL_CLAIM ... ... @@ -2124,3 +2124,4 @@ 2124 2124 Avg Source Quality: 0.73 2125 2125 Quality Score: 8.5/10 2126 2126 {{/code}} 1094 +