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.Specification.WebHome 1 +Test.FactHarbor V0\.9\.76.Specification.WebHome - Content
-
... ... @@ -32,6 +32,7 @@ 32 32 **Who**: Anyone (no login required) 33 33 34 34 **Can**: 35 + 35 35 * Browse and search claims 36 36 * View scenarios, evidence, verdicts, and confidence scores 37 37 * Flag issues or errors ... ... @@ -39,6 +39,7 @@ 39 39 * Submit claims automatically (new claims added if not duplicates) 40 40 41 41 **Cannot**: 43 + 42 42 * Modify content 43 43 * Access edit history details 44 44 ... ... @@ -49,6 +49,7 @@ 49 49 **Who**: Registered users (earns reputation through contributions) 50 50 51 51 **Can**: 54 + 52 52 * Everything a Reader can do 53 53 * Edit claims, evidence, and scenarios 54 54 * Add sources and citations ... ... @@ -57,6 +57,7 @@ 57 57 * Earn reputation points for quality contributions 58 58 59 59 **Reputation System**: 63 + 60 60 * New contributors: Limited edit privileges 61 61 * Established contributors (established reputation): Full edit access 62 62 * Trusted contributors (substantial reputation): Can approve certain changes ... ... @@ -64,6 +64,7 @@ 64 64 * Reputation lost through: Reverted edits, invalid flags, abuse 65 65 66 66 **Cannot**: 71 + 67 67 * Delete or hide content (only moderators) 68 68 * Override moderation decisions 69 69 ... ... @@ -74,6 +74,7 @@ 74 74 **Who**: Trusted community members with proven track record, appointed by governance board 75 75 76 76 **Can**: 82 + 77 77 * Review flagged content 78 78 * Hide harmful or abusive content 79 79 * Resolve disputes between contributors ... ... @@ -82,6 +82,7 @@ 82 82 * Access full audit logs 83 83 84 84 **Cannot**: 91 + 85 85 * Change governance rules 86 86 * Permanently ban users without board approval 87 87 * Override technical quality gates ... ... @@ -95,6 +95,7 @@ 95 95 **Not a permanent role**: Contacted externally when needed for contested claims in their domain 96 96 97 97 **When used**: 105 + 98 98 * Medical claims with life/safety implications 99 99 * Legal interpretations with significant impact 100 100 * Scientific claims with high controversy ... ... @@ -101,6 +101,7 @@ 101 101 * Technical claims requiring specialized knowledge 102 102 103 103 **Process**: 112 + 104 104 * Moderator identifies need for expert input 105 105 * Contact expert externally (don't require them to be users) 106 106 * Trusted Contributor provides written opinion with sources ... ... @@ -120,11 +120,13 @@ 120 120 **Status**: Visible to all users 121 121 122 122 **Includes**: 132 + 123 123 * AI-generated analyses (default state) 124 124 * User-contributed content 125 125 * Edited/improved content 126 126 127 127 **Quality Indicators** (displayed with content): 138 + 128 128 * **Confidence Score**: 0-100% (AI's confidence in analysis) 129 129 * **Source Quality Score**: 0-100% (based on source track record) 130 130 * **Controversy Flag**: If high dispute/edit activity ... ... @@ -134,6 +134,7 @@ 134 134 * **Review Status**: AI-generated / Human-reviewed / Expert-validated 135 135 136 136 **Automatic Warnings**: 148 + 137 137 * Confidence < 60%: "Low confidence - use caution" 138 138 * Source quality < 40%: "Sources may be unreliable" 139 139 * High controversy: "Disputed - multiple interpretations exist" ... ... @@ -146,6 +146,7 @@ 146 146 **Status**: Not visible to regular users (only to moderators) 147 147 148 148 **Reasons**: 161 + 149 149 * Spam or advertising 150 150 * Personal attacks or harassment 151 151 * Illegal content ... ... @@ -154,6 +154,7 @@ 154 154 * Abuse or harmful content 155 155 156 156 **Process**: 170 + 157 157 * Automated detection flags for moderator review 158 158 * Moderator confirms and hides 159 159 * Original author notified with reason ... ... @@ -176,6 +176,7 @@ 176 176 **AKEL is the primary system**. Human contributions supplement and train AKEL. 177 177 178 178 **AKEL Must**: 193 + 179 179 * Mark all outputs as AI-generated 180 180 * Display confidence scores prominently 181 181 * Provide source citations ... ... @@ -184,6 +184,7 @@ 184 184 * Learn from human corrections 185 185 186 186 **When AKEL Makes Errors**: 202 + 187 187 1. Capture the error pattern (what, why, how common) 188 188 2. Improve the system (better prompt, model, validation) 189 189 3. Re-process affected claims automatically ... ... @@ -214,6 +214,7 @@ 214 214 === 4.1 Source Requirements === 215 215 216 216 **Track Record Over Credentials**: 233 + 217 217 * Sources evaluated by historical accuracy 218 218 * Correction policy matters 219 219 * Independence from conflicts of interest ... ... @@ -220,6 +220,7 @@ 220 220 * Methodology transparency 221 221 222 222 **Source Quality Database**: 240 + 223 223 * Automated tracking of source accuracy 224 224 * Correction frequency 225 225 * Reliability score (updated continuously) ... ... @@ -251,6 +251,7 @@ 251 251 === 4.4 Confidence Scoring === 252 252 253 253 **Automated confidence calculation based on**: 272 + 254 254 * Source quality scores 255 255 * Evidence consistency 256 256 * Contradiction detection ... ... @@ -258,6 +258,7 @@ 258 258 * Historical accuracy of similar claims 259 259 260 260 **Thresholds**: 280 + 261 261 * < 40%: Too low to publish (needs improvement) 262 262 * 40-60%: Published with "Low confidence" warning 263 263 * 60-80%: Published as standard ... ... @@ -274,6 +274,7 @@ 274 274 === 5.1 Risk Score Calculation === 275 275 276 276 **Factors** (weighted algorithm): 297 + 277 277 * **Domain sensitivity**: Medical, legal, safety auto-flagged higher 278 278 * **Potential impact**: Views, citations, spread 279 279 * **Controversy level**: Flags, disputes, edit wars ... ... @@ -300,6 +300,7 @@ 300 300 === 6.1 Error Capture === 301 301 302 302 **When users flag errors or make corrections**: 324 + 303 303 1. What was wrong? (categorize) 304 304 2. What should it have been? 305 305 3. Why did the system fail? (root cause) ... ... @@ -318,6 +318,7 @@ 318 318 === 6.3 Quality Metrics Dashboard === 319 319 320 320 **Track continuously**: 343 + 321 321 * Error rate by category 322 322 * Source quality distribution 323 323 * Confidence score trends ... ... @@ -343,6 +343,7 @@ 343 343 === 7.2 Anomaly Detection === 344 344 345 345 **Automated alerts for**: 369 + 346 346 * Sudden quality drops 347 347 * Unusual patterns 348 348 * Contradiction clusters ... ... @@ -395,6 +395,7 @@ 395 395 **Fulfills**: UN-2 (Context-dependent verification), UN-3 (Article summary with FactHarbor analysis summary), UN-8 (Understanding disagreement) 396 396 397 397 **Automated scenario creation**: 422 + 398 398 * AKEL analyzes claim and generates likely scenarios (use-cases and contexts) 399 399 * Each scenario includes: assumptions, definitions, boundaries, evidence context 400 400 * Users can flag incorrect scenarios ... ... @@ -455,6 +455,7 @@ 455 455 **Purpose**: Provide side-by-side comparison of what a document claims vs. FactHarbor's complete analysis of its credibility 456 456 457 457 **Left Panel: Article Summary**: 483 + 458 458 * Document title, source, and claimed credibility 459 459 * "The Big Picture" - main thesis or position change 460 460 * "Key Findings" - structured summary of document's main claims ... ... @@ -462,6 +462,7 @@ 462 462 * "Conclusion" - document's bottom line 463 463 464 464 **Right Panel: FactHarbor Analysis Summary**: 491 + 465 465 * FactHarbor's independent source credibility assessment 466 466 * Claim-by-claim verdicts with confidence scores 467 467 * Methodology assessment (strengths, limitations) ... ... @@ -469,6 +469,7 @@ 469 469 * Analysis ID for reference 470 470 471 471 **Design Principles**: 499 + 472 472 * No scrolling required - both panels visible simultaneously 473 473 * Visual distinction between "what they say" and "FactHarbor's analysis" 474 474 * Color coding for verdicts (supported, uncertain, refuted) ... ... @@ -476,6 +476,7 @@ 476 476 * Mobile responsive (panels stack vertically on small screens) 477 477 478 478 **Implementation Notes**: 507 + 479 479 * Generated automatically by AKEL for every analyzed document 480 480 * Updates when verdict evolves (maintains version history) 481 481 * Exportable as standalone summary report ... ... @@ -502,7 +502,8 @@ 502 502 (% style="font-size:0.9em; color:#666;" %) 503 503 ↑ WELL SUPPORTED • 87% confidence 504 504 [[Click for evidence details →]] 505 -(%%) 534 + 535 + 506 506 ))) 507 507 508 508 The study, which followed 10,000 participants over five years, showed significant improvements in cardiovascular health markers. ... ... @@ -515,7 +515,8 @@ 515 515 ↑ UNCERTAIN • 45% confidence 516 516 Overstated - evidence shows risk reduction, not prevention 517 517 [[Click for details →]] 518 -(%%) 548 + 549 + 519 519 ))) 520 520 521 521 Dr. Maria Rodriguez, lead researcher, recommends incorporating more olive oil, fish, and vegetables into daily meals. ... ... @@ -528,7 +528,8 @@ 528 528 ↑ REFUTED • 15% confidence 529 529 Claim not supported by study design; correlation ≠ causation 530 530 [[Click for counter-evidence →]] 531 -(%%) 562 + 563 + 532 532 ))) 533 533 534 534 Participants also reported feeling more energetic and experiencing better sleep quality, though these were secondary measures. ... ... @@ -535,6 +535,7 @@ 535 535 ))) 536 536 537 537 **Legend:** 570 + 538 538 * 🟢 = Well-supported claim (confidence ≥75%) 539 539 * 🟡 = Uncertain claim (confidence 40-74%) 540 540 * 🔴 = Refuted/unsupported claim (confidence <40%) ... ... @@ -553,11 +553,13 @@ 553 553 **Confidence:** 87% 554 554 555 555 **Evidence Summary:** 589 + 556 556 * Meta-analysis of 12 RCTs confirms 23-28% risk reduction 557 557 * Consistent findings across multiple populations 558 558 * Published in peer-reviewed journal (high credibility) 559 559 560 560 **Uncertainty Factors:** 595 + 561 561 * Exact percentage varies by study (20-30% range) 562 562 563 563 [[View Full Analysis →]] ... ... @@ -564,6 +564,7 @@ 564 564 ))) 565 565 566 566 **Color-Coding System**: 602 + 567 567 * **Green**: Well-supported claims (confidence ≥75%, strong evidence) 568 568 * **Yellow/Orange**: Uncertain claims (confidence 40-74%, conflicting or limited evidence) 569 569 * **Red**: Refuted or unsupported claims (confidence <40%, contradicted by evidence) ... ... @@ -573,8 +573,12 @@ 573 573 574 574 (% style="width:100%; border-collapse:collapse;" %) 575 575 |=**Article Text**|=**Status**|=**Analysis** 576 -|(((A recent study published in the Journal of Nutrition has revealed new findings about the Mediterranean diet.)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Context - no highlighting 577 -|(((//Researchers found that Mediterranean diet followers had a 25% lower risk of heart disease compared to control groups//)))|(% style="background-color:#D4EDDA; text-align:center; padding:8px;" %)🟢 **WELL SUPPORTED**|((( 612 +|((( 613 +A recent study published in the Journal of Nutrition has revealed new findings about the Mediterranean diet. 614 +)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Context - no highlighting 615 +|((( 616 +//Researchers found that Mediterranean diet followers had a 25% lower risk of heart disease compared to control groups// 617 +)))|(% style="background-color:#D4EDDA; text-align:center; padding:8px;" %)🟢 **WELL SUPPORTED**|((( 578 578 **87% confidence** 579 579 580 580 Meta-analysis of 12 RCTs confirms 23-28% risk reduction ... ... @@ -581,8 +581,12 @@ 581 581 582 582 [[View Full Analysis]] 583 583 ))) 584 -|(((The study, which followed 10,000 participants over five years, showed significant improvements in cardiovascular health markers.)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Methodology - no highlighting 585 -|(((//Some experts believe this diet can completely prevent heart attacks//)))|(% style="background-color:#FFF3CD; text-align:center; padding:8px;" %)🟡 **UNCERTAIN**|((( 624 +|((( 625 +The study, which followed 10,000 participants over five years, showed significant improvements in cardiovascular health markers. 626 +)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Methodology - no highlighting 627 +|((( 628 +//Some experts believe this diet can completely prevent heart attacks// 629 +)))|(% style="background-color:#FFF3CD; text-align:center; padding:8px;" %)🟡 **UNCERTAIN**|((( 586 586 **45% confidence** 587 587 588 588 Overstated - evidence shows risk reduction, not prevention ... ... @@ -589,8 +589,12 @@ 589 589 590 590 [[View Details]] 591 591 ))) 592 -|(((Dr. Rodriguez recommends incorporating more olive oil, fish, and vegetables into daily meals.)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Recommendation - no highlighting 593 -|(((//The study proves that saturated fats cause heart disease//)))|(% style="background-color:#F8D7DA; text-align:center; padding:8px;" %)🔴 **REFUTED**|((( 636 +|((( 637 +Dr. Rodriguez recommends incorporating more olive oil, fish, and vegetables into daily meals. 638 +)))|(% style="text-align:center;" %)Plain text|(% style="font-style:italic; color:#888;" %)Recommendation - no highlighting 639 +|((( 640 +//The study proves that saturated fats cause heart disease// 641 +)))|(% style="background-color:#F8D7DA; text-align:center; padding:8px;" %)🔴 **REFUTED**|((( 594 594 **15% confidence** 595 595 596 596 Claim not supported by study; correlation ≠ causation ... ... @@ -599,6 +599,7 @@ 599 599 ))) 600 600 601 601 **Design Notes:** 650 + 602 602 * Highlighted claims use italics to distinguish from plain text 603 603 * Color backgrounds match XWiki message box colors (success/warning/error) 604 604 * Status column shows verdict prominently ... ... @@ -605,6 +605,7 @@ 605 605 * Analysis column provides quick summary with link to details 606 606 607 607 **User Actions**: 657 + 608 608 * **Hover** over highlighted claim → Tooltip appears 609 609 * **Click** highlighted claim → Detailed analysis modal/panel 610 610 * **Toggle** button to turn highlighting on/off ... ... @@ -611,16 +611,18 @@ 611 611 * **Keyboard**: Tab through highlighted claims 612 612 613 613 **Interaction Design**: 664 + 614 614 * Hover/click on highlighted claim → Show tooltip with: 615 - * Claim text616 - * Verdict (e.g., "WELL SUPPORTED")617 - * Confidence score (e.g., "85%")618 - * Brief evidence summary619 - * Link to detailed analysis666 +* Claim text 667 +* Verdict (e.g., "WELL SUPPORTED") 668 +* Confidence score (e.g., "85%") 669 +* Brief evidence summary 670 +* Link to detailed analysis 620 620 * Toggle highlighting on/off (user preference) 621 621 * Adjustable color intensity for accessibility 622 622 623 623 **Technical Requirements**: 675 + 624 624 * Real-time highlighting as page loads (non-blocking) 625 625 * Claim boundary detection (start/end of assertion) 626 626 * Handle nested or overlapping claims ... ... @@ -628,16 +628,19 @@ 628 628 * Work with various content formats (HTML, plain text, PDFs) 629 629 630 630 **Performance Requirements**: 683 + 631 631 * Highlighting renders within 500ms of page load 632 632 * No perceptible delay in reading experience 633 633 * Efficient DOM manipulation (avoid reflows) 634 634 635 635 **Accessibility**: 689 + 636 636 * Color-blind friendly palette (use patterns/icons in addition to color) 637 637 * Screen reader compatible (ARIA labels for claim credibility) 638 638 * Keyboard navigation to highlighted claims 639 639 640 640 **Implementation Notes**: 695 + 641 641 * Claims extracted and analyzed by AKEL during initial processing 642 642 * Highlighting data stored as annotations with byte offsets 643 643 * Client-side rendering of highlights based on verdict data ... ... @@ -650,6 +650,7 @@ 650 650 **Fulfills**: UN-1 (Fast access to verified content), UN-16 (Clear review status) 651 651 652 652 **Simple flow**: 708 + 653 653 1. Claim submitted 654 654 2. AKEL processes (automated) 655 655 3. If confidence > threshold: Publish (labeled as AI-generated) ... ... @@ -661,6 +661,7 @@ 661 661 ==== FR10 — Moderation ==== 662 662 663 663 **Focus on abuse, not routine quality**: 720 + 664 664 * Automated abuse detection 665 665 * Moderators handle flags 666 666 * Quick response to harmful content ... ... @@ -731,6 +731,7 @@ 731 731 **Purpose:** Ensure extracted claims are factual assertions (not opinions/predictions) 732 732 733 733 **Checks:** 791 + 734 734 1. **Factual Statement Test:** Is this verifiable? (Yes/No) 735 735 2. **Opinion Detection:** Contains hedging language? ("I think", "probably", "best") 736 736 3. **Future Prediction Test:** Makes claims about future events? ... ... @@ -737,6 +737,7 @@ 737 737 4. **Specificity Score:** Contains specific entities, numbers, dates? 738 738 739 739 **Thresholds:** 798 + 740 740 * Factual: Must be "Yes" 741 741 * Opinion markers: <2 hedging phrases 742 742 * Specificity: ≥3 specific elements ... ... @@ -748,11 +748,13 @@ 748 748 **Purpose:** Ensure AI-linked evidence actually relates to claim 749 749 750 750 **Checks:** 810 + 751 751 1. **Semantic Similarity Score:** Evidence vs. claim (embeddings) 752 752 2. **Entity Overlap:** Shared people/places/things? 753 753 3. **Topic Relevance:** Discusses claim subject? 754 754 755 755 **Thresholds:** 816 + 756 756 * Similarity: ≥0.6 (cosine similarity) 757 757 * Entity overlap: ≥1 shared entity 758 758 * Topic relevance: ≥0.5 ... ... @@ -764,11 +764,13 @@ 764 764 **Purpose:** Validate scenario assumptions are logical and complete 765 765 766 766 **Checks:** 828 + 767 767 1. **Completeness:** All required fields populated 768 768 2. **Internal Consistency:** Assumptions don't contradict 769 769 3. **Distinguishability:** Scenarios meaningfully different 770 770 771 771 **Thresholds:** 834 + 772 772 * Required fields: 100% 773 773 * Contradiction score: <0.3 774 774 * Scenario similarity: <0.8 ... ... @@ -780,6 +780,7 @@ 780 780 **Purpose:** Only publish high-confidence verdicts 781 781 782 782 **Checks:** 846 + 783 783 1. **Evidence Count:** Minimum 2 sources 784 784 2. **Source Quality:** Average reliability ≥0.6 785 785 3. **Evidence Agreement:** Supporting vs. contradicting ≥0.6 ... ... @@ -786,6 +786,7 @@ 786 786 4. **Uncertainty Factors:** Hedging in reasoning 787 787 788 788 **Confidence Tiers:** 853 + 789 789 * **HIGH (80-100%):** ≥3 sources, ≥0.7 quality, ≥80% agreement 790 790 * **MEDIUM (50-79%):** ≥2 sources, ≥0.6 quality, ≥60% agreement 791 791 * **LOW (0-49%):** <2 sources OR low quality/agreement ... ... @@ -792,11 +792,13 @@ 792 792 * **INSUFFICIENT:** <2 sources → DO NOT PUBLISH 793 793 794 794 **Implementation Phases:** 860 + 795 795 * **POC1:** Gates 1 & 4 only (basic validation) 796 796 * **POC2:** All 4 gates (complete framework) 797 797 * **V1.0:** Hardened with <5% hallucination rate 798 798 799 799 **Acceptance Criteria:** 866 + 800 800 * ✅ All gates operational 801 801 * ✅ Hallucination rate <5% 802 802 * ✅ Quality metrics public ... ... @@ -803,31 +803,429 @@ 803 803 804 804 === NFR12: Security Controls === 805 805 806 -**Fulfills:** Productionreadiness,legalcompliance873 +**Fulfills:** Data protection, system integrity, user privacy, production readiness 807 807 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 875 +**Phase:** Beta 0 (essential), V1.0 (complete) **BLOCKER** 814 814 815 -** Milestone:**Beta0 (essential),V1.0(complete)**BLOCKER**877 +**Purpose:** Protect FactHarbor systems, user data, and operations from security threats, ensuring production-grade security posture. 816 816 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 + 817 817 === NFR13: Quality Metrics Transparency === 818 818 819 -**Fulfills:** IFCNtransparency, user trust1060 +**Fulfills:** User trust, transparency, continuous improvement, IFCN methodology transparency 820 820 821 -**Public Metrics:** 822 -* Quality gates performance 823 -* Evidence quality stats 824 -* Hallucination rate 825 -* User feedback 1062 +**Phase:** POC2 (internal), Beta 0 (public), V1.0 (real-time) 826 826 827 -** Milestone:** POC2 (internal),Beta0 (public),V1.0(real-time)1064 +**Purpose:** Provide transparent, measurable quality metrics that demonstrate AKEL's performance and build user trust in automated fact-checking. 828 828 1066 +**Specification:** 829 829 1068 +==== Component: Public Quality Dashboard ==== 830 830 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 + 831 831 == 13. Requirements Traceability == 832 832 833 833 For full traceability matrix showing which requirements fulfill which user needs, see: ... ... @@ -837,11 +837,13 @@ 837 837 == 14. Related Pages == 838 838 839 839 **Non-Functional Requirements (see Section 9):** 1305 + 840 840 * [[NFR11 — AKEL Quality Assurance Framework>>#NFR11]] 841 841 * [[NFR12 — Security Controls>>#NFR12]] 842 842 * [[NFR13 — Quality Metrics Transparency>>#NFR13]] 843 843 844 844 **Other Requirements:** 1311 + 845 845 * [[User Needs>>FactHarbor.Specification.Requirements.User Needs.WebHome]] 846 846 * [[V1.0 Requirements>>FactHarbor.Specification.Requirements.V10.]] 847 847 * [[Gap Analysis>>FactHarbor.Specification.Requirements.GapAnalysis]] ... ... @@ -851,7 +851,7 @@ 851 851 * [[Data Model>>FactHarbor.Specification.Data Model.WebHome]] - Data structures supporting requirements 852 852 * [[Workflows>>FactHarbor.Specification.Workflows.WebHome]] - User interaction workflows 853 853 * [[AKEL>>FactHarbor.Specification.AI Knowledge Extraction Layer (AKEL).WebHome]] - AI system fulfilling automation requirements 854 -* [[Global Rules>>FactHarbor.Organisation.How-We-Work-Together.GlobalRules.WebHome]] 1321 +* [[Global Rules>>Archive.FactHarbor.Organisation.How-We-Work-Together.GlobalRules.WebHome]] 855 855 * [[Privacy Policy>>FactHarbor.Organisation.How-We-Work-Together.Privacy-Policy]] 856 856 857 857 = V0.9.70 Additional Requirements = ... ... @@ -860,61 +860,620 @@ 860 860 861 861 === FR44: ClaimReview Schema Implementation === 862 862 863 - Generate validClaimReviewstructureddataforGoogle/Bingvisibility.1330 +**Fulfills:** UN-13 (Cite FactHarbor Verdicts), UN-14 (API Access for Integration), UN-26 (Search Engine Visibility) 864 864 865 -**Schema.org Mapping:** 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 + 866 866 * 80-100% likelihood → 5 (Highly Supported) 867 -* 60-79% → 4 (Supported) 868 -* 40-59% → 3 (Mixed) 869 -* 20-39% → 2 (Questionable) 870 -* 0-19% → 1 (Refuted) 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) 871 871 872 -**Mile stone:**V1.01388 +**Multiple Scenarios Handling:** 873 873 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 + 874 874 === FR45: User Corrections Notification System === 875 875 876 - Notifyuserswhenanalysesare corrected.1424 +**Fulfills:** IFCN Principle 5 (Open & Honest Corrections), EFCSN compliance 877 877 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 1426 +**Phase:** Beta 0 (basic), V1.0 (complete) **BLOCKER** 883 883 884 -** Milestone:**Beta0(basic),V1.0(complete)**BLOCKER**1428 +**Purpose:** When any claim analysis is corrected, notify users who previously viewed the claim to maintain transparency and build trust. 885 885 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 + 886 886 === FR46: Image Verification System === 887 887 888 -**Methods:** 889 -1. Reverse image search 890 -2. EXIF metadata analysis 891 -3. Manipulation detection (basic) 892 -4. Context verification 1514 +**Fulfills:** UN-27 (Visual Claim Verification) 893 893 894 -** Milestone:** Beta 0 (basic), V1.0 (extended)1516 +**Phase:** Beta 0 (basic), V1.0 (extended) 895 895 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 + 896 896 === FR47: Archive.org Integration === 897 897 898 -Auto-save evidence sources to Wayback Machine. 1723 +**Priority:** CRITICAL 1724 +**Fulfills:** Evidence persistence, FR5 (Evidence linking) 1725 +**Phase:** V1.0 899 899 900 -** Milestone:**Beta01727 +**Purpose:** Ensure evidence remains accessible even if original sources are deleted. 901 901 902 - === FR48:Safety Frameworkfor Contributors ===1729 +**Specification:** 903 903 904 - Protect contributorsfromharassment and legal threats.1731 +**Automatic Archiving:** 905 905 906 - **Milestone:** V1.11733 +When AKEL links evidence: 907 907 908 -=== FR49: A/B Testing Framework === 1735 +1. Check if URL already archived (Wayback Machine API) 1736 +2. If not, submit for archiving (Save Page Now API) 1737 +3. Store both original URL and archive URL 1738 +4. Display both to users 909 909 910 - TestAKEL approachesand UI designssystematically.1740 +**Archive Display:** 911 911 912 -**Milestone:** V1.0 1742 +{{code}} 1743 +Evidence Source: [Original URL] 1744 +Archived: [Archive.org URL] (Captured: [date]) 913 913 914 -=== FR50: OSINT Toolkit Integration === 1746 +[View Original] [View Archive] 1747 +{{/code}} 915 915 1749 +**Fallback Logic:** 916 916 1751 +* If original URL unavailable → Auto-redirect to archive 1752 +* If archive unavailable → Display warning 1753 +* If both unavailable → Flag for manual review 917 917 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 + 918 918 **Fulfills:** Advanced media verification 919 919 **Phase:** V1.1 920 920 ... ... @@ -921,6 +921,7 @@ 921 921 **Purpose:** Integrate open-source intelligence tools for advanced verification. 922 922 923 923 **Tools to Integrate:** 1950 + 924 924 * InVID/WeVerify (video verification) 925 925 * Bellingcat toolkit 926 926 * Additional TBD based on V1.0 learnings ... ... @@ -935,6 +935,7 @@ 935 935 **Purpose:** Verify video-based claims. 936 936 937 937 **Specification:** 1965 + 938 938 * Keyframe extraction 939 939 * Reverse video search 940 940 * Deepfake detection (AI-powered) ... ... @@ -951,6 +951,7 @@ 951 951 **Purpose:** Teach users to identify misinformation. 952 952 953 953 **Specification:** 1982 + 954 954 * Interactive tutorials 955 955 * Practice exercises 956 956 * Detection quizzes ... ... @@ -966,12 +966,12 @@ 966 966 **Purpose:** Share findings with IFCN/EFCSN members. 967 967 968 968 **Specification:** 1998 + 969 969 * API for fact-checking organizations 970 970 * Structured data exchange 971 971 * Privacy controls 972 972 * Attribution requirements 973 973 974 - 975 975 == Summary == 976 976 977 977 **V1.0 Critical Requirements (Must Have):** ... ... @@ -994,7 +994,6 @@ 994 994 * FR52: Detection Training 995 995 * FR53: Cross-Org Sharing 996 996 997 - 998 998 **Total:** 11 critical requirements for V1.0 999 999 1000 1000 === FR54: Evidence Deduplication === ... ... @@ -1011,21 +1011,24 @@ 1011 1011 **Deduplication Logic:** 1012 1012 1013 1013 1. **URL Normalization:** 1014 - * Remove tracking parameters (?utm_source=...) 1015 - * Normalize http/https 1016 - * Normalize www/non-www 1017 - * Handle redirects 1018 1018 2043 +* Remove tracking parameters (?utm_source=...) 2044 +* Normalize http/https 2045 +* Normalize www/non-www 2046 +* Handle redirects 2047 + 1019 1019 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 1023 1023 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 + 1024 1024 3. **Cross-Domain Syndication:** 1025 - * Detect wire service content (AP, Reuters) 1026 - * Mark as single source if syndicated 1027 - * Count original publication only 1028 1028 2056 +* Detect wire service content (AP, Reuters) 2057 +* Mark as single source if syndicated 2058 +* Count original publication only 2059 + 1029 1029 **Display:** 1030 1030 1031 1031 {{code}} ... ... @@ -1047,8 +1047,9 @@ 1047 1047 * ✅ Unique vs. total counts accurate 1048 1048 * ✅ Improves evidence quality metrics 1049 1049 2081 +== Additional Requirements (Lower Priority) == 1050 1050 1051 - ==Additional Requirements (Lower Priority) =====FR7: Automated Verdicts (Enhanced with Quality Gates) ===2083 + FR7: Automated Verdicts (Enhanced with Quality Gates) === 1052 1052 1053 1053 **POC1+ Enhancement:** 1054 1054 ... ... @@ -1070,6 +1070,7 @@ 1070 1070 {{/code}} 1071 1071 1072 1072 **Updated Verdict States:** 2105 + 1073 1073 * PUBLISHED 1074 1074 * INSUFFICIENT_EVIDENCE 1075 1075 * NON_FACTUAL_CLAIM ... ... @@ -1091,4 +1091,3 @@ 1091 1091 Avg Source Quality: 0.73 1092 1092 Quality Score: 8.5/10 1093 1093 {{/code}} 1094 -