Changes for page Requirements
Last modified by Robert Schaub on 2026/02/08 21:32
To version 4.1
edited by Robert Schaub
on 2025/12/19 10:02
on 2025/12/19 10:02
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,9 +1,5 @@ 1 1 = Requirements = 2 2 3 -{{info}} 4 -**Phase Assignments:** See [[Requirements Roadmap Matrix>>FactHarbor.Roadmap.Requirements-Roadmap-Matrix.WebHome]] for which requirements are implemented in which phases. 5 -{{/info}} 6 - 7 7 **This page defines Roles, Content States, Rules, and System Requirements for FactHarbor.** 8 8 9 9 **Core Philosophy:** Invest in system improvement, not manual data correction. When AI makes errors, improve the algorithm and re-process automatically. ... ... @@ -46,7 +46,7 @@ 46 46 * Modify content 47 47 * Access edit history details 48 48 49 -**User Needs served**: UN-1 (Trust assessment), UN-2 (Claim verification), UN-3 (Article summary with FactHarbor analysis summary), UN-4 (Social media fact-checking), UN-5 (Source tracing), UN-7 (Evidence transparency), UN-8 (Understanding disagreement), UN-12 (Submit claims) , UN-17 (In-article highlighting)45 +**User Needs served**: UN-1 (Trust assessment), UN-2 (Claim verification), UN-3 (Article summary with FactHarbor analysis summary), UN-4 (Social media fact-checking), UN-5 (Source tracing), UN-7 (Evidence transparency), UN-8 (Understanding disagreement), UN-12 (Submit claims) 50 50 51 51 === 1.2 Contributor === 52 52 ... ... @@ -143,7 +143,7 @@ 143 143 * High controversy: "Disputed - multiple interpretations exist" 144 144 * Medical/Legal/Safety domain: "Seek professional advice" 145 145 146 -**User Needs served**: UN-1 (Trust score), UN-9 (Methodology transparency), ~~UN-15 (Evolution timeline- Deferred)~~, UN-16 (Review status)142 +**User Needs served**: UN-1 (Trust score), UN-9 (Methodology transparency), UN-15 (Evolution timeline), UN-16 (Review status) 147 147 148 148 === 2.2 Hidden === 149 149 ... ... @@ -310,7 +310,7 @@ 310 310 4. How common is this pattern? 311 311 5. Store in ErrorPattern table (improvement queue) 312 312 313 -=== 6.2 ContinuousImprovement Cycle ===309 +=== 6.2 Weekly Improvement Cycle === 314 314 315 315 1. **Review**: Analyze top error patterns 316 316 2. **Develop**: Create fix (prompt, model, validation) ... ... @@ -330,7 +330,7 @@ 330 330 * Re-work rate 331 331 * Claims processed per hour 332 332 333 -**Goal**: continuousimprovement in error rate329 +**Goal**: 10% monthly improvement in error rate 334 334 335 335 == 7. Automated Quality Monitoring == 336 336 ... ... @@ -442,12 +442,6 @@ 442 442 443 443 ==== FR8 — Time Evolution ==== 444 444 445 -{{warning}} 446 -**Status:** Deferred (Not in V1.0) 447 - 448 -This requirement has been **dropped from the current architecture and design**. Versioned entities have been replaced with simple edit history tracking only. Full evolution timeline functionality is deferred to future releases beyond V1.0. 449 -{{/warning}} 450 - 451 451 **Fulfills**: UN-15 (Verdict evolution timeline) 452 452 453 453 * Claims and verdicts update as new evidence emerges ... ... @@ -491,168 +491,6 @@ 491 491 * Exportable as standalone summary report 492 492 * Shareable via permanent URL 493 493 494 -==== FR13 — In-Article Claim Highlighting ==== 495 - 496 -**Fulfills**: UN-17 (In-article claim highlighting) 497 - 498 -**Purpose**: Enable readers to quickly assess claim credibility while reading by visually highlighting factual claims with color-coded indicators 499 - 500 -==== Visual Example: Article with Highlighted Claims ==== 501 - 502 -(% class="box" %) 503 -((( 504 -**Article: "New Study Shows Benefits of Mediterranean Diet"** 505 - 506 -A recent study published in the Journal of Nutrition has revealed new findings about the Mediterranean diet. 507 - 508 -(% class="box successmessage" style="margin:10px 0;" %) 509 -((( 510 -🟢 **Researchers found that Mediterranean diet followers had a 25% lower risk of heart disease compared to control groups** 511 - 512 -(% style="font-size:0.9em; color:#666;" %) 513 -↑ WELL SUPPORTED • 87% confidence 514 -[[Click for evidence details →]] 515 -(%%) 516 -))) 517 - 518 -The study, which followed 10,000 participants over five years, showed significant improvements in cardiovascular health markers. 519 - 520 -(% class="box warningmessage" style="margin:10px 0;" %) 521 -((( 522 -🟡 **Some experts believe this diet can completely prevent heart attacks** 523 - 524 -(% style="font-size:0.9em; color:#666;" %) 525 -↑ UNCERTAIN • 45% confidence 526 -Overstated - evidence shows risk reduction, not prevention 527 -[[Click for details →]] 528 -(%%) 529 -))) 530 - 531 -Dr. Maria Rodriguez, lead researcher, recommends incorporating more olive oil, fish, and vegetables into daily meals. 532 - 533 -(% class="box errormessage" style="margin:10px 0;" %) 534 -((( 535 -🔴 **The study proves that saturated fats cause heart disease** 536 - 537 -(% style="font-size:0.9em; color:#666;" %) 538 -↑ REFUTED • 15% confidence 539 -Claim not supported by study design; correlation ≠ causation 540 -[[Click for counter-evidence →]] 541 -(%%) 542 -))) 543 - 544 -Participants also reported feeling more energetic and experiencing better sleep quality, though these were secondary measures. 545 -))) 546 - 547 -**Legend:** 548 -* 🟢 = Well-supported claim (confidence ≥75%) 549 -* 🟡 = Uncertain claim (confidence 40-74%) 550 -* 🔴 = Refuted/unsupported claim (confidence <40%) 551 -* Plain text = Non-factual content (context, opinions, recommendations) 552 - 553 -==== Tooltip on Hover/Click ==== 554 - 555 -(% class="box infomessage" %) 556 -((( 557 -**FactHarbor Analysis** 558 - 559 -**Claim:** 560 -"Researchers found that Mediterranean diet followers had a 25% lower risk of heart disease" 561 - 562 -**Verdict:** WELL SUPPORTED 563 -**Confidence:** 87% 564 - 565 -**Evidence Summary:** 566 -* Meta-analysis of 12 RCTs confirms 23-28% risk reduction 567 -* Consistent findings across multiple populations 568 -* Published in peer-reviewed journal (high credibility) 569 - 570 -**Uncertainty Factors:** 571 -* Exact percentage varies by study (20-30% range) 572 - 573 -[[View Full Analysis →]] 574 -))) 575 - 576 -**Color-Coding System**: 577 -* **Green**: Well-supported claims (confidence ≥75%, strong evidence) 578 -* **Yellow/Orange**: Uncertain claims (confidence 40-74%, conflicting or limited evidence) 579 -* **Red**: Refuted or unsupported claims (confidence <40%, contradicted by evidence) 580 -* **Gray/Neutral**: Non-factual content (opinions, questions, procedural text) 581 - 582 -==== Interactive Highlighting Example (Detailed View) ==== 583 - 584 -(% style="width:100%; border-collapse:collapse;" %) 585 -|=**Article Text**|=**Status**|=**Analysis** 586 -|(((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 587 -|(((//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**|((( 588 -**87% confidence** 589 - 590 -Meta-analysis of 12 RCTs confirms 23-28% risk reduction 591 - 592 -[[View Full Analysis]] 593 -))) 594 -|(((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 595 -|(((//Some experts believe this diet can completely prevent heart attacks//)))|(% style="background-color:#FFF3CD; text-align:center; padding:8px;" %)🟡 **UNCERTAIN**|((( 596 -**45% confidence** 597 - 598 -Overstated - evidence shows risk reduction, not prevention 599 - 600 -[[View Details]] 601 -))) 602 -|(((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 603 -|(((//The study proves that saturated fats cause heart disease//)))|(% style="background-color:#F8D7DA; text-align:center; padding:8px;" %)🔴 **REFUTED**|((( 604 -**15% confidence** 605 - 606 -Claim not supported by study; correlation ≠ causation 607 - 608 -[[View Counter-Evidence]] 609 -))) 610 - 611 -**Design Notes:** 612 -* Highlighted claims use italics to distinguish from plain text 613 -* Color backgrounds match XWiki message box colors (success/warning/error) 614 -* Status column shows verdict prominently 615 -* Analysis column provides quick summary with link to details 616 - 617 -**User Actions**: 618 -* **Hover** over highlighted claim → Tooltip appears 619 -* **Click** highlighted claim → Detailed analysis modal/panel 620 -* **Toggle** button to turn highlighting on/off 621 -* **Keyboard**: Tab through highlighted claims 622 - 623 -**Interaction Design**: 624 -* Hover/click on highlighted claim → Show tooltip with: 625 - * Claim text 626 - * Verdict (e.g., "WELL SUPPORTED") 627 - * Confidence score (e.g., "85%") 628 - * Brief evidence summary 629 - * Link to detailed analysis 630 -* Toggle highlighting on/off (user preference) 631 -* Adjustable color intensity for accessibility 632 - 633 -**Technical Requirements**: 634 -* Real-time highlighting as page loads (non-blocking) 635 -* Claim boundary detection (start/end of assertion) 636 -* Handle nested or overlapping claims 637 -* Preserve original article formatting 638 -* Work with various content formats (HTML, plain text, PDFs) 639 - 640 -**Performance Requirements**: 641 -* Highlighting renders within 500ms of page load 642 -* No perceptible delay in reading experience 643 -* Efficient DOM manipulation (avoid reflows) 644 - 645 -**Accessibility**: 646 -* Color-blind friendly palette (use patterns/icons in addition to color) 647 -* Screen reader compatible (ARIA labels for claim credibility) 648 -* Keyboard navigation to highlighted claims 649 - 650 -**Implementation Notes**: 651 -* Claims extracted and analyzed by AKEL during initial processing 652 -* Highlighting data stored as annotations with byte offsets 653 -* Client-side rendering of highlights based on verdict data 654 -* Mobile responsive (tap instead of hover) 655 - 656 656 === 8.5 Workflow & Moderation === 657 657 658 658 ==== FR9 — Publication Workflow ==== ... ... @@ -728,500 +728,78 @@ 728 728 * Continuous integration 729 729 * Comprehensive documentation 730 730 731 -== =NFR11:AKELQuality AssuranceFramework===559 +== 10. MVP Scope == 732 732 733 -** Fulfills:**AIsafety,IFCNmethodologytransparency561 +**Phase 1 (Months 1-3): Read-Only MVP** 734 734 735 -**Specification:** 563 +Build: 564 +* Automated claim analysis 565 +* Confidence scoring 566 +* Source evaluation 567 +* Browse/search interface 568 +* User flagging system 736 736 737 - Multi-layer AI qualitygates todetecthallucinations,low-confidence results,andlogical inconsistencies.570 +**Goal**: Prove AI quality before adding user editing 738 738 739 - ====QualityGate 1:ClaimExtractionValidation====572 +**User Needs fulfilled in Phase 1**: UN-1, UN-2, UN-3, UN-4, UN-5, UN-6, UN-7, UN-8, UN-9, UN-12 740 740 741 -**P urpose:**Ensureextracted claimsarefactual assertions(not opinions/predictions)574 +**Phase 2 (Months 4-6): User Contributions** 742 742 743 -**Checks:** 744 -1. **Factual Statement Test:** Is this verifiable? (Yes/No) 745 -2. **Opinion Detection:** Contains hedging language? ("I think", "probably", "best") 746 -3. **Future Prediction Test:** Makes claims about future events? 747 -4. **Specificity Score:** Contains specific entities, numbers, dates? 576 +Add only if needed: 577 +* Simple editing (Wikipedia-style) 578 +* Reputation system 579 +* Basic moderation 748 748 749 -**Thresholds:** 750 -* Factual: Must be "Yes" 751 -* Opinion markers: <2 hedging phrases 752 -* Specificity: ≥3 specific elements 581 +**Additional User Needs fulfilled**: UN-13 753 753 754 -** Action if Failed:**Flagas "Non-verifiable", do NOT generate verdict583 +**Phase 3 (Months 7-12): Refinement** 755 755 756 -==== Quality Gate 2: Evidence Relevance Validation ==== 585 +* Continuous quality improvement 586 +* Feature additions based on real usage 587 +* Scale infrastructure 757 757 758 -** Purpose:** EnsureAI-linkedevidenceactuallyrelates toclaim589 +**Additional User Needs fulfilled**: UN-14 (API access), UN-15 (Full evolution tracking) 759 759 760 -** Checks:**761 - 1.**SemanticSimilarityScore:**Evidencevs.claim (embeddings)762 - 2.**EntityOverlap:**Shared people/places/things?763 - 3.**TopicRelevance:**Discussesclaimsubject?591 +**Deferred**: 592 +* Federation (until multiple successful instances exist) 593 +* Complex contribution workflows (focus on automation) 594 +* Extensive role hierarchy (keep simple) 764 764 765 -**Thresholds:** 766 -* Similarity: ≥0.6 (cosine similarity) 767 -* Entity overlap: ≥1 shared entity 768 -* Topic relevance: ≥0.5 596 +== 11. Success Metrics == 769 769 770 -**Action if Failed:** Discard irrelevant evidence 598 +**System Quality** (track weekly): 599 +* Error rate by category (target: -10%/month) 600 +* Average confidence score (target: increase) 601 +* Source quality distribution (target: more high-quality) 602 +* Contradiction detection rate (target: increase) 771 771 772 -==== Quality Gate 3: Scenario Coherence Check ==== 604 +**Efficiency** (track monthly): 605 +* Claims processed per hour (target: increase) 606 +* Human hours per claim (target: decrease) 607 +* Automation coverage (target: >90%) 608 +* Re-work rate (target: <5%) 773 773 774 -**Purpose:** Validate scenario assumptions are logical and complete 610 +**User Satisfaction** (track quarterly): 611 +* User flag rate (issues found) 612 +* Correction acceptance rate (flags valid) 613 +* Return user rate 614 +* Trust indicators (surveys) 775 775 776 -**Checks:** 777 -1. **Completeness:** All required fields populated 778 -2. **Internal Consistency:** Assumptions don't contradict 779 -3. **Distinguishability:** Scenarios meaningfully different 616 +**User Needs Metrics** (track quarterly): 617 +* UN-1: % users who understand trust scores 618 +* UN-4: Time to verify social media claim (target: <30s) 619 +* UN-7: % users who access evidence details 620 +* UN-8: % users who view multiple scenarios 621 +* UN-15: % users who check evolution timeline 780 780 781 -**Thresholds:** 782 -* Required fields: 100% 783 -* Contradiction score: <0.3 784 -* Scenario similarity: <0.8 623 +== 12. Requirements Traceability == 785 785 786 -**Action if Failed:** Merge duplicates, reduce confidence -20% 787 - 788 -==== Quality Gate 4: Verdict Confidence Assessment ==== 789 - 790 -**Purpose:** Only publish high-confidence verdicts 791 - 792 -**Checks:** 793 -1. **Evidence Count:** Minimum 2 sources 794 -2. **Source Quality:** Average reliability ≥0.6 795 -3. **Evidence Agreement:** Supporting vs. contradicting ≥0.6 796 -4. **Uncertainty Factors:** Hedging in reasoning 797 - 798 -**Confidence Tiers:** 799 -* **HIGH (80-100%):** ≥3 sources, ≥0.7 quality, ≥80% agreement 800 -* **MEDIUM (50-79%):** ≥2 sources, ≥0.6 quality, ≥60% agreement 801 -* **LOW (0-49%):** <2 sources OR low quality/agreement 802 -* **INSUFFICIENT:** <2 sources → DO NOT PUBLISH 803 - 804 -**Implementation Phases:** 805 -* **POC1:** Gates 1 & 4 only (basic validation) 806 -* **POC2:** All 4 gates (complete framework) 807 -* **V1.0:** Hardened with <5% hallucination rate 808 - 809 -**Acceptance Criteria:** 810 -* ✅ All gates operational 811 -* ✅ Hallucination rate <5% 812 -* ✅ Quality metrics public 813 - 814 -=== NFR12: Security Controls === 815 - 816 -**Fulfills:** Data protection, system integrity, user privacy, production readiness 817 - 818 -**Purpose:** Protect FactHarbor systems, user data, and operations from security threats, ensuring production-grade security posture. 819 - 820 -**Specification:** 821 - 822 -==== API Security ==== 823 - 824 -**Rate Limiting:** 825 -* **Analysis endpoints:** 100 requests/hour per IP 826 -* **Read endpoints:** 1,000 requests/hour per IP 827 -* **Search:** 500 requests/hour per IP 828 -* **Authenticated users:** 5x higher limits 829 -* **Burst protection:** Max 10 requests/second 830 - 831 -**Authentication & Authorization:** 832 -* **API Keys:** Required for programmatic access 833 -* **JWT tokens:** For user sessions (1-hour expiry) 834 -* **OAuth2:** For third-party integrations 835 -* **Role-Based Access Control (RBAC):** 836 - * Public: Read-only access to published claims 837 - * Contributor: Submit claims, provide evidence 838 - * Moderator: Review contributions, manage quality 839 - * Admin: System configuration, user management 840 - 841 -**CORS Policies:** 842 -* Whitelist approved domains only 843 -* No wildcard origins in production 844 -* Credentials required for sensitive endpoints 845 - 846 -**Input Sanitization:** 847 -* Validate all user input against schemas 848 -* Sanitize HTML/JavaScript in text submissions 849 -* Prevent SQL injection (use parameterized queries) 850 -* Prevent command injection (no shell execution of user input) 851 -* Max request size: 10MB 852 -* File upload restrictions: Whitelist file types, scan for malware 853 - 854 ---- 855 - 856 -==== Data Security ==== 857 - 858 -**Encryption at Rest:** 859 -* Database encryption using AES-256 860 -* Encrypted backups 861 -* Key management via cloud provider KMS (AWS KMS, Google Cloud KMS) 862 -* Regular key rotation (90-day cycle) 863 - 864 -**Encryption in Transit:** 865 -* HTTPS/TLS 1.3 only (no TLS 1.0/1.1) 866 -* Strong cipher suites only 867 -* HSTS (HTTP Strict Transport Security) enabled 868 -* Certificate pinning for mobile apps 869 - 870 -**Secure Credential Storage:** 871 -* Passwords hashed with bcrypt (cost factor 12+) 872 -* API keys encrypted in database 873 -* Secrets stored in environment variables (never in code) 874 -* Use secrets manager (AWS Secrets Manager, HashiCorp Vault) 875 - 876 -**Data Privacy:** 877 -* Minimal data collection (privacy by design) 878 -* User data deletion on request (GDPR compliance) 879 -* PII encryption in database 880 -* Anonymize logs (no PII in log files) 881 - 882 ---- 883 - 884 -==== Application Security ==== 885 - 886 -**OWASP Top 10 Compliance:** 887 - 888 -1. **Broken Access Control:** RBAC implementation, path traversal prevention 889 -2. **Cryptographic Failures:** Strong encryption, secure key management 890 -3. **Injection:** Parameterized queries, input validation 891 -4. **Insecure Design:** Security review of all features 892 -5. **Security Misconfiguration:** Hardened defaults, security headers 893 -6. **Vulnerable Components:** Dependency scanning (see below) 894 -7. **Authentication Failures:** Strong password policy, MFA support 895 -8. **Data Integrity Failures:** Signature verification, checksums 896 -9. **Security Logging Failures:** Comprehensive audit logs 897 -10. **Server-Side Request Forgery:** URL validation, whitelist domains 898 - 899 -**Security Headers:** 900 -* `Content-Security-Policy`: Strict CSP to prevent XSS 901 -* `X-Frame-Options`: DENY (prevent clickjacking) 902 -* `X-Content-Type-Options`: nosniff 903 -* `Referrer-Policy`: strict-origin-when-cross-origin 904 -* `Permissions-Policy`: Restrict browser features 905 - 906 -**Dependency Vulnerability Scanning:** 907 -* **Tools:** Snyk, Dependabot, npm audit, pip-audit 908 -* **Frequency:** Daily automated scans 909 -* **Action:** Patch critical vulnerabilities within 24 hours 910 -* **Policy:** No known high/critical CVEs in production 911 - 912 -**Security Audits:** 913 -* **Internal:** Quarterly security reviews 914 -* **External:** Annual penetration testing by certified firm 915 -* **Bug Bounty:** Public bug bounty program (V1.1+) 916 -* **Compliance:** SOC 2 Type II certification target (V1.5) 917 - 918 ---- 919 - 920 -==== Operational Security ==== 921 - 922 -**DDoS Protection:** 923 -* CloudFlare or AWS Shield 924 -* Rate limiting at CDN layer 925 -* Automatic IP blocking for abuse patterns 926 - 927 -**Monitoring & Alerting:** 928 -* Real-time security event monitoring 929 -* Alerts for: 930 - * Failed login attempts (>5 in 10 minutes) 931 - * API abuse patterns 932 - * Unusual data access patterns 933 - * Security scan detections 934 -* Integration with SIEM (Security Information and Event Management) 935 - 936 -**Incident Response:** 937 -* Documented incident response plan 938 -* Security incident classification (P1-P4) 939 -* On-call rotation for security issues 940 -* Post-mortem for all security incidents 941 -* Public disclosure policy (coordinated disclosure) 942 - 943 -**Backup & Recovery:** 944 -* Daily encrypted backups 945 -* 30-day retention period 946 -* Tested recovery procedures (quarterly) 947 -* Disaster recovery plan (RTO: 4 hours, RPO: 1 hour) 948 - 949 ---- 950 - 951 -==== Compliance & Standards ==== 952 - 953 -**GDPR Compliance:** 954 -* User consent management 955 -* Right to access data 956 -* Right to deletion 957 -* Data portability 958 -* Privacy policy published 959 - 960 -**Accessibility:** 961 -* WCAG 2.1 AA compliance 962 -* Screen reader compatibility 963 -* Keyboard navigation 964 -* Alt text for images 965 - 966 -**Browser Support:** 967 -* Modern browsers only (Chrome/Edge/Firefox/Safari latest 2 versions) 968 -* No IE11 support 969 - 970 -**Acceptance Criteria:** 971 - 972 -* ✅ Passes OWASP ZAP security scan (no high/critical findings) 973 -* ✅ All dependencies with known vulnerabilities patched 974 -* ✅ Penetration test completed with no critical findings 975 -* ✅ Rate limiting blocks abuse attempts 976 -* ✅ Encryption at rest and in transit verified 977 -* ✅ Security headers scored A+ on securityheaders.com 978 -* ✅ Incident response plan documented and tested 979 -* ✅ 95% uptime over 30-day period 980 - 981 -=== NFR13: Quality Metrics Transparency === 982 - 983 -**Fulfills:** User trust, transparency, continuous improvement, IFCN methodology transparency 984 - 985 -**Purpose:** Provide transparent, measurable quality metrics that demonstrate AKEL's performance and build user trust in automated fact-checking. 986 - 987 -**Specification:** 988 - 989 -==== Component: Public Quality Dashboard ==== 990 - 991 -**Core Metrics to Display:** 992 - 993 -**1. Verdict Quality Metrics** 994 - 995 -**TIGERScore (Fact-Checking Quality):** 996 -* **Definition:** Measures how well generated verdicts match expert fact-checker judgments 997 -* **Scale:** 0-100 (higher is better) 998 -* **Calculation:** Using TIGERScore framework (Truth-conditional accuracy, Informativeness, Generality, Evaluativeness, Relevance) 999 -* **Target:** Average ≥80 for production release 1000 -* **Display:** 1001 -{{code}} 1002 -Verdict Quality (TIGERScore): 1003 -Overall: 84.2 ▲ (+2.1 from last month) 1004 - 1005 -Distribution: 1006 - Excellent (>80): 67% 1007 - Good (60-80): 28% 1008 - Needs Improvement (<60): 5% 1009 - 1010 -Trend: [Graph showing improvement over time] 1011 -{{/code}} 1012 - 1013 -**2. Hallucination & Faithfulness Metrics** 1014 - 1015 -**AlignScore (Faithfulness to Evidence):** 1016 -* **Definition:** Measures how well verdicts align with actual evidence content 1017 -* **Scale:** 0-1 (higher is better) 1018 -* **Purpose:** Detect AI hallucinations (making claims not supported by evidence) 1019 -* **Target:** Average ≥0.85, hallucination rate <5% 1020 -* **Display:** 1021 -{{code}} 1022 -Evidence Faithfulness (AlignScore): 1023 -Average: 0.87 ▼ (-0.02 from last month) 1024 - 1025 -Hallucination Rate: 4.2% 1026 - - Claims without evidence support: 3.1% 1027 - - Misrepresented evidence: 1.1% 1028 - 1029 -Action: Prompt engineering review scheduled 1030 -{{/code}} 1031 - 1032 -**3. Evidence Quality Metrics** 1033 - 1034 -**Source Reliability:** 1035 -* Average source quality score (0-1 scale) 1036 -* Distribution of high/medium/low quality sources 1037 -* Publisher track record trends 1038 - 1039 -**Evidence Coverage:** 1040 -* Average number of sources per claim 1041 -* Percentage of claims with ≥2 sources (EFCSN minimum) 1042 -* Geographic diversity of sources 1043 - 1044 -**Display:** 1045 -{{code}} 1046 -Evidence Quality: 1047 - 1048 -Average Sources per Claim: 4.2 1049 -Claims with ≥2 sources: 94% (EFCSN compliant) 1050 - 1051 -Source Quality Distribution: 1052 - High quality (>0.8): 48% 1053 - Medium quality (0.5-0.8): 43% 1054 - Low quality (<0.5): 9% 1055 - 1056 -Geographic Diversity: 23 countries represented 1057 -{{/code}} 1058 - 1059 -**4. Contributor Consensus Metrics** (when human reviewers involved) 1060 - 1061 -**Inter-Rater Reliability (IRR):** 1062 -* **Calculation:** Cohen's Kappa or Fleiss' Kappa for multiple raters 1063 -* **Scale:** 0-1 (higher is better) 1064 -* **Interpretation:** 1065 - * >0.8: Almost perfect agreement 1066 - * 0.6-0.8: Substantial agreement 1067 - * 0.4-0.6: Moderate agreement 1068 - * <0.4: Poor agreement 1069 -* **Target:** Maintain ≥0.7 (substantial agreement) 1070 - 1071 -**Display:** 1072 -{{code}} 1073 -Contributor Consensus: 1074 - 1075 -Inter-Rater Reliability (IRR): 0.73 (Substantial agreement) 1076 - - Verdict agreement: 78% 1077 - - Evidence quality agreement: 71% 1078 - - Scenario structure agreement: 69% 1079 - 1080 -Cases requiring moderator review: 12 1081 -Moderator override rate: 8% 1082 -{{/code}} 1083 - 1084 ---- 1085 - 1086 -==== Quality Dashboard Implementation ==== 1087 - 1088 -**Dashboard Location:** `/quality-metrics` 1089 - 1090 -**Update Frequency:** 1091 -* **POC2:** Weekly manual updates 1092 -* **Beta 0:** Daily automated updates 1093 -* **V1.0:** Real-time metrics (updated hourly) 1094 - 1095 -**Dashboard Sections:** 1096 - 1097 -1. **Overview:** Key metrics at a glance 1098 -2. **Verdict Quality:** TIGERScore trends and distributions 1099 -3. **Evidence Analysis:** Source quality and coverage 1100 -4. **AI Performance:** Hallucination rates, AlignScore 1101 -5. **Human Oversight:** Contributor consensus, review rates 1102 -6. **System Health:** Processing times, error rates, uptime 1103 - 1104 -**Example Dashboard Layout:** 1105 - 1106 -{{code}} 1107 -┌─────────────────────────────────────────────────────────────┐ 1108 -│ FactHarbor Quality Metrics Last updated: │ 1109 -│ Public Dashboard 2 hours ago │ 1110 -└─────────────────────────────────────────────────────────────┘ 1111 - 1112 -📊 KEY METRICS 1113 -───────────────────────────────────────────────────────────── 1114 -TIGERScore (Verdict Quality): 84.2 ▲ (+2.1) 1115 -AlignScore (Faithfulness): 0.87 ▼ (-0.02) 1116 -Hallucination Rate: 4.2% ✓ (Target: <5%) 1117 -Average Sources per Claim: 4.2 ▲ (+0.3) 1118 - 1119 -📈 TRENDS (30 days) 1120 -───────────────────────────────────────────────────────────── 1121 -[Graph: TIGERScore trending upward] 1122 -[Graph: Hallucination rate declining] 1123 -[Graph: Evidence quality stable] 1124 - 1125 -⚠️ IMPROVEMENT TARGETS 1126 -───────────────────────────────────────────────────────────── 1127 -1. Reduce hallucination rate to <3% (Current: 4.2%) 1128 -2. Increase TIGERScore average to >85 (Current: 84.2) 1129 -3. Maintain IRR >0.75 (Current: 0.73) 1130 - 1131 -📄 DETAILED REPORTS 1132 -───────────────────────────────────────────────────────────── 1133 -• Monthly Quality Report (PDF) 1134 -• Methodology Documentation 1135 -• AKEL Performance Analysis 1136 -• Contributor Agreement Analysis 1137 - 1138 -{{/code}} 1139 - 1140 ---- 1141 - 1142 -==== Continuous Improvement Feedback Loop ==== 1143 - 1144 -**How Metrics Inform AKEL Improvements:** 1145 - 1146 -1. **Identify Weak Areas:** 1147 - * Low TIGERScore → Review prompt engineering 1148 - * High hallucination → Strengthen evidence grounding 1149 - * Low IRR → Clarify evaluation criteria 1150 - 1151 -2. **A/B Testing Integration:** 1152 - * Test prompt variations 1153 - * Measure impact on quality metrics 1154 - * Deploy winners automatically 1155 - 1156 -3. **Alert Thresholds:** 1157 - * TIGERScore drops below 75 → Alert team 1158 - * Hallucination rate exceeds 7% → Pause auto-publishing 1159 - * IRR below 0.6 → Moderator training needed 1160 - 1161 -4. **Monthly Quality Reviews:** 1162 - * Analyze trends 1163 - * Identify systematic issues 1164 - * Plan prompt improvements 1165 - * Update AKEL models 1166 - 1167 ---- 1168 - 1169 -==== Metric Calculation Details ==== 1170 - 1171 -**TIGERScore Implementation:** 1172 -* Reference: https://github.com/TIGER-AI-Lab/TIGERScore 1173 -* Input: Generated verdict + reference verdict (from expert) 1174 -* Output: 0-100 score across 5 dimensions 1175 -* Requires: Test set of expert-reviewed claims (minimum 100) 1176 - 1177 -**AlignScore Implementation:** 1178 -* Reference: https://github.com/yuh-zha/AlignScore 1179 -* Input: Generated verdict + source evidence text 1180 -* Output: 0-1 faithfulness score 1181 -* Calculation: Semantic alignment between claim and evidence 1182 - 1183 -**Source Quality Scoring:** 1184 -* Use existing source reliability database (e.g., NewsGuard, MBFC) 1185 -* Factor in: Publication history, corrections record, transparency 1186 -* Scale: 0-1 (weighted average across sources) 1187 - 1188 ---- 1189 - 1190 -==== Integration Points ==== 1191 - 1192 -* **NFR11: AKEL Quality Assurance** - Metrics validate quality gate effectiveness 1193 -* **FR49: A/B Testing** - Metrics measure test success 1194 -* **FR11: Audit Trail** - Source of quality data 1195 -* **NFR3: Transparency** - Public metrics build trust 1196 - 1197 -**Acceptance Criteria:** 1198 - 1199 -* ✅ All core metrics implemented and calculating correctly 1200 -* ✅ Dashboard updates daily (Beta 0) or hourly (V1.0) 1201 -* ✅ Alerts trigger when metrics degrade beyond thresholds 1202 -* ✅ Monthly quality report auto-generates 1203 -* ✅ Dashboard is publicly accessible (no login required) 1204 -* ✅ Mobile-responsive dashboard design 1205 -* ✅ Metrics inform quarterly AKEL improvement planning 1206 - 1207 -== 13. Requirements Traceability == 1208 - 1209 1209 For full traceability matrix showing which requirements fulfill which user needs, see: 1210 1210 1211 1211 * [[User Needs>>FactHarbor.Specification.Requirements.User Needs.WebHome]] - Section 8 includes comprehensive mapping tables 1212 1212 1213 -== 1 4. Related Pages ==629 +== 13. Related Pages == 1214 1214 1215 -**Non-Functional Requirements (see Section 9):** 1216 -* [[NFR11 — AKEL Quality Assurance Framework>>#NFR11]] 1217 -* [[NFR12 — Security Controls>>#NFR12]] 1218 -* [[NFR13 — Quality Metrics Transparency>>#NFR13]] 1219 - 1220 -**Other Requirements:** 1221 -* [[User Needs>>FactHarbor.Specification.Requirements.User Needs.WebHome]] 1222 -* [[V1.0 Requirements>>FactHarbor.Specification.Requirements.V10.]] 1223 -* [[Gap Analysis>>FactHarbor.Specification.Requirements.GapAnalysis]] 1224 - 1225 1225 * **[[User Needs>>FactHarbor.Specification.Requirements.User Needs.WebHome]]** - What users need (drives these requirements) 1226 1226 * [[Architecture>>FactHarbor.Specification.Architecture.WebHome]] - How requirements are implemented 1227 1227 * [[Data Model>>FactHarbor.Specification.Data Model.WebHome]] - Data structures supporting requirements ... ... @@ -1229,745 +1229,3 @@ 1229 1229 * [[AKEL>>FactHarbor.Specification.AI Knowledge Extraction Layer (AKEL).WebHome]] - AI system fulfilling automation requirements 1230 1230 * [[Global Rules>>FactHarbor.Organisation.How-We-Work-Together.GlobalRules.WebHome]] 1231 1231 * [[Privacy Policy>>FactHarbor.Organisation.How-We-Work-Together.Privacy-Policy]] 1232 - 1233 -= V0.9.70 Additional Requirements = 1234 - 1235 -== Functional Requirements (Additional) == 1236 - 1237 -=== FR44: ClaimReview Schema Implementation === 1238 - 1239 -**Fulfills:** UN-13 (Cite FactHarbor Verdicts), UN-14 (API Access for Integration), UN-26 (Search Engine Visibility) 1240 - 1241 -**Purpose:** Generate valid ClaimReview structured data for every published analysis to enable Google/Bing search visibility and fact-check discovery. 1242 - 1243 -**Specification:** 1244 - 1245 -==== Component: Schema.org Markup Generator ==== 1246 - 1247 -FactHarbor must generate valid ClaimReview structured data following Schema.org specifications for every published claim analysis. 1248 - 1249 -**Required JSON-LD Schema:** 1250 - 1251 -{{code language="json"}} 1252 -{ 1253 - "@context": "https://schema.org", 1254 - "@type": "ClaimReview", 1255 - "datePublished": "YYYY-MM-DD", 1256 - "url": "https://factharbor.org/claims/{claim_id}", 1257 - "claimReviewed": "The exact claim text", 1258 - "author": { 1259 - "@type": "Organization", 1260 - "name": "FactHarbor", 1261 - "url": "https://factharbor.org" 1262 - }, 1263 - "reviewRating": { 1264 - "@type": "Rating", 1265 - "ratingValue": "1-5", 1266 - "bestRating": "5", 1267 - "worstRating": "1", 1268 - "alternateName": "FactHarbor likelihood score" 1269 - }, 1270 - "itemReviewed": { 1271 - "@type": "Claim", 1272 - "author": { 1273 - "@type": "Person", 1274 - "name": "Claim author if known" 1275 - }, 1276 - "datePublished": "YYYY-MM-DD if known", 1277 - "appearance": { 1278 - "@type": "CreativeWork", 1279 - "url": "Original claim URL if from article" 1280 - } 1281 - } 1282 -} 1283 -{{/code}} 1284 - 1285 -**FactHarbor-Specific Mapping:** 1286 - 1287 -**Likelihood Score to Rating Scale:** 1288 -* 80-100% likelihood → 5 (Highly Supported) 1289 -* 60-79% likelihood → 4 (Supported) 1290 -* 40-59% likelihood → 3 (Mixed/Uncertain) 1291 -* 20-39% likelihood → 2 (Questionable) 1292 -* 0-19% likelihood → 1 (Refuted) 1293 - 1294 -**Multiple Scenarios Handling:** 1295 -* If claim has multiple scenarios with different verdicts, generate **separate ClaimReview** for each scenario 1296 -* Add `disambiguatingDescription` field explaining scenario context 1297 -* Example: "Scenario: If interpreted as referring to 2023 data..." 1298 - 1299 -==== Implementation Requirements ==== 1300 - 1301 -1. **Auto-generate** on claim publication 1302 -2. **Embed** in HTML `<head>` section as JSON-LD script 1303 -3. **Validate** against Schema.org validator before publishing 1304 -4. **Submit** to Google Search Console for indexing 1305 -5. **Update** automatically when verdict changes (integrate with FR8: Time Evolution) 1306 - 1307 -==== Integration Points ==== 1308 - 1309 -* **FR7: Automated Verdicts** - Source of rating data and claim text 1310 -* **FR8: Time Evolution** - Triggers schema updates when verdicts change 1311 -* **FR11: Audit Trail** - Logs all schema generation and update events 1312 - 1313 -==== Resources ==== 1314 - 1315 -* ClaimReview Project: https://www.claimreviewproject.com 1316 -* Schema.org ClaimReview: https://schema.org/ClaimReview 1317 -* Google Fact Check Guidelines: https://developers.google.com/search/docs/appearance/fact-check 1318 - 1319 -**Acceptance Criteria:** 1320 - 1321 -* ✅ Passes Google Structured Data Testing Tool 1322 -* ✅ Appears in Google Fact Check Explorer within 48 hours of publication 1323 -* ✅ Valid JSON-LD syntax (no errors) 1324 -* ✅ All required fields populated with correct data types 1325 -* ✅ Handles multi-scenario claims correctly (separate ClaimReview per scenario) 1326 - 1327 -=== FR45: User Corrections Notification System === 1328 - 1329 -**Fulfills:** IFCN Principle 5 (Open & Honest Corrections), EFCSN compliance 1330 - 1331 -**Purpose:** When any claim analysis is corrected, notify users who previously viewed the claim to maintain transparency and build trust. 1332 - 1333 -**Specification:** 1334 - 1335 -==== Component: Corrections Visibility Framework ==== 1336 - 1337 -**Correction Types:** 1338 - 1339 -1. **Major Correction:** Verdict changes category (e.g., "Supported" → "Refuted") 1340 -2. **Significant Correction:** Likelihood score changes >20% 1341 -3. **Minor Correction:** Evidence additions, source quality updates 1342 -4. **Scenario Addition:** New scenario added to existing claim 1343 - 1344 -==== Notification Mechanisms ==== 1345 - 1346 -**1. In-Page Banner:** 1347 - 1348 -Display prominent banner on claim page: 1349 - 1350 -{{code}} 1351 -[!] CORRECTION NOTICE 1352 -This analysis was updated on [DATE]. [View what changed] [Dismiss] 1353 - 1354 -Major changes: 1355 -• Verdict changed from "Likely True (75%)" to "Uncertain (45%)" 1356 -• New contradicting evidence added from [Source] 1357 -• Scenario 2 updated with additional context 1358 - 1359 -[See full correction log] 1360 -{{/code}} 1361 - 1362 -**2. Correction Log Page:** 1363 - 1364 -* Public changelog at `/claims/{id}/corrections` 1365 -* Displays for each correction: 1366 - * Date/time of correction 1367 - * What changed (before/after comparison) 1368 - * Why changed (reason if provided) 1369 - * Who made change (AKEL auto-update vs. contributor override) 1370 - 1371 -**3. Email Notifications (opt-in):** 1372 - 1373 -* Send to users who bookmarked or shared the claim 1374 -* Subject: "FactHarbor Correction: [Claim title]" 1375 -* Include summary of changes 1376 -* Link to updated analysis 1377 - 1378 -**4. RSS/API Feed:** 1379 - 1380 -* Corrections feed at `/corrections.rss` 1381 -* API endpoint: `GET /api/corrections?since={timestamp}` 1382 -* Enables external monitoring by journalists and researchers 1383 - 1384 -==== Display Rules ==== 1385 - 1386 -* Show banner on **ALL pages** displaying the claim (search results, related claims, embeddings) 1387 -* Banner persists for **30 days** after correction 1388 -* **"Corrections" count badge** on claim card 1389 -* **Timestamp** on every verdict: "Last updated: [datetime]" 1390 - 1391 -==== IFCN Compliance Requirements ==== 1392 - 1393 -* Corrections policy published at `/corrections-policy` 1394 -* User can report suspected errors via `/report-error/{claim_id}` 1395 -* Link to IFCN complaint process (if FactHarbor becomes signatory) 1396 -* **Scrupulous transparency:** Never silently edit analyses 1397 - 1398 -==== Integration Points ==== 1399 - 1400 -* **FR8: Time Evolution** - Triggers corrections when verdicts change 1401 -* **FR11: Audit Trail** - Source of correction data and change history 1402 -* **NFR3: Transparency** - Public correction log demonstrates commitment 1403 - 1404 -**Acceptance Criteria:** 1405 - 1406 -* ✅ Banner appears within 60 seconds of correction 1407 -* ✅ Correction log is permanent and publicly accessible 1408 -* ✅ Email notifications deliver within 5 minutes 1409 -* ✅ RSS feed updates in real-time 1410 -* ✅ Mobile-responsive banner design 1411 -* ✅ Accessible (screen reader compatible) 1412 - 1413 -=== FR46: Image Verification System === 1414 - 1415 -**Fulfills:** UN-27 (Visual Claim Verification) 1416 - 1417 -**Purpose:** Verify authenticity and context of images shared with claims to detect manipulation, misattribution, and out-of-context usage. 1418 - 1419 -**Specification:** 1420 - 1421 -==== Component: Multi-Method Image Verification ==== 1422 - 1423 -**Method 1: Reverse Image Search** 1424 - 1425 -**Purpose:** Find earlier uses of the image to verify context 1426 - 1427 -**Implementation:** 1428 -* Integrate APIs: 1429 - * **Google Vision AI** (reverse search) 1430 - * **TinEye** (oldest known uses) 1431 - * **Bing Visual Search** (broad coverage) 1432 - 1433 -**Process:** 1434 -1. Extract image from claim or user upload 1435 -2. Query multiple reverse search services 1436 -3. Analyze results for: 1437 - * Earliest known publication 1438 - * Original context (what was it really showing?) 1439 - * Publication timeline 1440 - * Geographic spread 1441 - 1442 -**Output:** 1443 -{{code}} 1444 -Reverse Image Search Results: 1445 - 1446 -Earliest known use: 2019-03-15 (5 years before claim) 1447 -Original context: "Photo from 2019 flooding in Mumbai" 1448 -This claim uses it for: "2024 hurricane damage in Florida" 1449 - 1450 -⚠️ Image is OUT OF CONTEXT 1451 - 1452 -Found in 47 other articles: 1453 -• 2019-03-15: Mumbai floods (original) 1454 -• 2020-07-22: Bangladesh monsoon 1455 -• 2024-10-15: Current claim (misattributed) 1456 - 1457 -[View full timeline] 1458 -{{/code}} 1459 - 1460 ---- 1461 - 1462 -**Method 2: AI Manipulation Detection** 1463 - 1464 -**Purpose:** Detect deepfakes, face swaps, and digital alterations 1465 - 1466 -**Implementation:** 1467 -* Integrate detection services: 1468 - * **Sensity AI** (deepfake detection) 1469 - * **Reality Defender** (multimodal analysis) 1470 - * **AWS Rekognition** (face detection inconsistencies) 1471 - 1472 -**Detection Categories:** 1473 -1. **Face Manipulation:** 1474 - * Deepfake face swaps 1475 - * Expression manipulation 1476 - * Identity replacement 1477 - 1478 -2. **Image Manipulation:** 1479 - * Copy-paste artifacts 1480 - * Clone stamp detection 1481 - * Content-aware fill detection 1482 - * JPEG compression inconsistencies 1483 - 1484 -3. **AI Generation:** 1485 - * Detect fully AI-generated images 1486 - * Identify generation artifacts 1487 - * Check for model signatures 1488 - 1489 -**Confidence Scoring:** 1490 -* **HIGH (80-100%):** Strong evidence of manipulation 1491 -* **MEDIUM (50-79%):** Suspicious artifacts detected 1492 -* **LOW (0-49%):** Minor inconsistencies or inconclusive 1493 - 1494 -**Output:** 1495 -{{code}} 1496 -Manipulation Analysis: 1497 - 1498 -Face Manipulation: LOW RISK (12%) 1499 -Image Editing: MEDIUM RISK (64%) 1500 - • Clone stamp artifacts detected in sky region 1501 - • JPEG compression inconsistent between objects 1502 - 1503 -AI Generation: LOW RISK (8%) 1504 - 1505 -⚠️ Possible manipulation detected. Manual review recommended. 1506 -{{/code}} 1507 - 1508 ---- 1509 - 1510 -**Method 3: Metadata Analysis (EXIF)** 1511 - 1512 -**Purpose:** Extract technical details that may reveal manipulation or misattribution 1513 - 1514 -**Extracted Data:** 1515 -* **Camera/Device:** Make, model, software 1516 -* **Timestamps:** Original date, modification dates 1517 -* **Location:** GPS coordinates (if present) 1518 -* **Editing History:** Software used, edit count 1519 -* **File Properties:** Resolution, compression, format conversions 1520 - 1521 -**Red Flags:** 1522 -* Metadata completely stripped (suspicious) 1523 -* Timestamp conflicts with claimed date 1524 -* GPS location conflicts with claimed location 1525 -* Multiple edit rounds (hiding something?) 1526 -* Creation date after modification date (impossible) 1527 - 1528 -**Output:** 1529 -{{code}} 1530 -Image Metadata: 1531 - 1532 -Camera: iPhone 14 Pro 1533 -Original date: 2023-08-12 14:32:15 1534 -Location: 40.7128°N, 74.0060°W (New York City) 1535 -Modified: 2024-10-15 08:45:22 1536 -Software: Adobe Photoshop 2024 1537 - 1538 -⚠️ Location conflicts with claim 1539 -Claim says: "Taken in Los Angeles" 1540 -EXIF says: New York City 1541 - 1542 -⚠️ Edited 14 months after capture 1543 -{{/code}} 1544 - 1545 ---- 1546 - 1547 -==== Verification Workflow ==== 1548 - 1549 -**Automatic Triggers:** 1550 -1. User submits claim with image 1551 -2. Article being analyzed contains images 1552 -3. Social media post includes photos 1553 - 1554 -**Process:** 1555 -1. Extract images from content 1556 -2. Run all 3 verification methods in parallel 1557 -3. Aggregate results into confidence score 1558 -4. Generate human-readable summary 1559 -5. Display prominently in analysis 1560 - 1561 -**Display Integration:** 1562 - 1563 -Show image verification panel in claim analysis: 1564 - 1565 -{{code}} 1566 -📷 IMAGE VERIFICATION 1567 - 1568 -[Image thumbnail] 1569 - 1570 -✅ Reverse Search: Original context verified 1571 -⚠️ Manipulation: Possible editing detected (64% confidence) 1572 -✅ Metadata: Consistent with claim details 1573 - 1574 -Overall Assessment: CAUTION ADVISED 1575 -This image may have been edited. Original context appears accurate. 1576 - 1577 -[View detailed analysis] 1578 -{{/code}} 1579 - 1580 -==== Integration Points ==== 1581 - 1582 -* **FR7: Automated Verdicts** - Image verification affects claim credibility 1583 -* **FR4: Analysis Summary** - Image findings included in summary 1584 -* **UN-27: Visual Claim Verification** - Direct fulfillment 1585 - 1586 -==== Cost Considerations ==== 1587 - 1588 -**API Costs (estimated per image):** 1589 -* Google Vision AI: $0.001-0.003 1590 -* TinEye: $0.02 (commercial API) 1591 -* Sensity AI: $0.05-0.10 1592 -* AWS Rekognition: $0.001-0.002 1593 - 1594 -**Total per image:** ~$0.07-0.15 1595 - 1596 -**Mitigation Strategies:** 1597 -* Cache results for duplicate images 1598 -* Use free tier quotas where available 1599 -* Prioritize higher-value claims for deep analysis 1600 -* Offer premium verification as paid tier 1601 - 1602 -**Acceptance Criteria:** 1603 - 1604 -* ✅ Reverse image search finds original sources 1605 -* ✅ Manipulation detection accuracy >80% on test dataset 1606 -* ✅ EXIF extraction works for major image formats (JPEG, PNG, HEIC) 1607 -* ✅ Results display within 10 seconds 1608 -* ✅ Mobile-friendly image comparison interface 1609 -* ✅ False positive rate <15% 1610 - 1611 -=== FR47: Archive.org Integration === 1612 - 1613 -**Importance:** CRITICAL 1614 -**Fulfills:** Evidence persistence, FR5 (Evidence linking) 1615 - 1616 -**Purpose:** Ensure evidence remains accessible even if original sources are deleted. 1617 - 1618 -**Specification:** 1619 - 1620 -**Automatic Archiving:** 1621 - 1622 -When AKEL links evidence: 1623 -1. Check if URL already archived (Wayback Machine API) 1624 -2. If not, submit for archiving (Save Page Now API) 1625 -3. Store both original URL and archive URL 1626 -4. Display both to users 1627 - 1628 -**Archive Display:** 1629 - 1630 -{{code}} 1631 -Evidence Source: [Original URL] 1632 -Archived: [Archive.org URL] (Captured: [date]) 1633 - 1634 -[View Original] [View Archive] 1635 -{{/code}} 1636 - 1637 -**Fallback Logic:** 1638 - 1639 -* If original URL unavailable → Auto-redirect to archive 1640 -* If archive unavailable → Display warning 1641 -* If both unavailable → Flag for manual review 1642 - 1643 -**API Integration:** 1644 - 1645 -* Use Wayback Machine Availability API 1646 -* Use Save Page Now API (SPNv2) 1647 -* Rate limiting: 15 requests/minute (Wayback limit) 1648 - 1649 -**Acceptance Criteria:** 1650 - 1651 -* ✅ All evidence URLs auto-archived 1652 -* ✅ Archive links displayed to users 1653 -* ✅ Fallback to archive if original unavailable 1654 -* ✅ API rate limits respected 1655 -* ✅ Archive status visible in evidence display 1656 - 1657 -== Category 4: Community Safety ===== FR48: Contributor Safety Framework === 1658 - 1659 -**Importance:** CRITICAL 1660 -**Fulfills:** UN-28 (Safe contribution environment) 1661 - 1662 -**Purpose:** Protect contributors from harassment, doxxing, and coordinated attacks. 1663 - 1664 -**Specification:** 1665 - 1666 -**1. Privacy Protection:** 1667 - 1668 -* **Optional Pseudonymity:** Contributors can use pseudonyms 1669 -* **Email Privacy:** Emails never displayed publicly 1670 -* **Profile Privacy:** Contributors control what's public 1671 -* **IP Logging:** Only for abuse prevention, not public 1672 - 1673 -**2. Harassment Prevention:** 1674 - 1675 -* **Automated Toxicity Detection:** Flag abusive comments 1676 -* **Personal Information Detection:** Auto-block doxxing attempts 1677 -* **Coordinated Attack Detection:** Identify brigading patterns 1678 -* **Rapid Response:** Moderator alerts for harassment 1679 - 1680 -**3. Safety Features:** 1681 - 1682 -* **Block Users:** Contributors can block harassers 1683 -* **Private Contributions:** Option to contribute anonymously 1684 -* **Report Harassment:** One-click harassment reporting 1685 -* **Safety Resources:** Links to support resources 1686 - 1687 -**4. Moderator Tools:** 1688 - 1689 -* **Quick Ban:** Immediately block abusers 1690 -* **Pattern Detection:** Identify coordinated attacks 1691 -* **Appeal Process:** Fair review of moderation actions 1692 -* **Escalation:** Serious threats escalated to authorities 1693 - 1694 -**5. Trusted Contributor Protection:** 1695 - 1696 -* **Enhanced Privacy:** Additional protection for high-profile contributors 1697 -* **Verification:** Optional identity verification (not public) 1698 -* **Legal Support:** Resources for contributors facing legal threats 1699 - 1700 -**Acceptance Criteria:** 1701 - 1702 -* ✅ Pseudonyms supported 1703 -* ✅ Toxicity detection active 1704 -* ✅ Doxxing auto-blocked 1705 -* ✅ Harassment reporting functional 1706 -* ✅ Moderator tools implemented 1707 -* ✅ Safety policy published 1708 - 1709 -== Category 5: Continuous Improvement ===== FR49: A/B Testing Framework === 1710 - 1711 -**Importance:** CRITICAL 1712 -**Fulfills:** Continuous system improvement 1713 - 1714 -**Purpose:** Test and measure improvements to AKEL prompts, algorithms, and workflows. 1715 - 1716 -**Specification:** 1717 - 1718 -**Test Capabilities:** 1719 - 1720 -1. **Prompt Variations:** 1721 - * Test different claim extraction prompts 1722 - * Test different verdict generation prompts 1723 - * Measure: Accuracy, clarity, completeness 1724 - 1725 -2. **Algorithm Variations:** 1726 - * Test different source scoring algorithms 1727 - * Test different confidence calculations 1728 - * Measure: Audit accuracy, user satisfaction 1729 - 1730 -3. **Workflow Variations:** 1731 - * Test different quality gate thresholds 1732 - * Test different risk tier assignments 1733 - * Measure: Publication rate, quality scores 1734 - 1735 -**Implementation:** 1736 - 1737 -* **Traffic Split:** 50/50 or 90/10 splits 1738 -* **Randomization:** Consistent per claim (not per user) 1739 -* **Metrics Collection:** Automatic for all variants 1740 -* **Statistical Significance:** Minimum sample size calculation 1741 -* **Rollout:** Winner promoted to 100% traffic 1742 - 1743 -**A/B Test Workflow:** 1744 - 1745 -{{code}} 1746 -1. Hypothesis: "New prompt improves claim extraction" 1747 -2. Design test: Control vs. Variant 1748 -3. Define metrics: Extraction accuracy, completeness 1749 -4. Run test: 7-14 days, minimum 100 claims each 1750 -5. Analyze results: Statistical significance? 1751 -6. Decision: Deploy winner or iterate 1752 -{{/code}} 1753 - 1754 -**Acceptance Criteria:** 1755 - 1756 -* ✅ A/B testing framework implemented 1757 -* ✅ Can test prompt variations 1758 -* ✅ Can test algorithm variations 1759 -* ✅ Metrics automatically collected 1760 -* ✅ Statistical significance calculated 1761 -* ✅ Results inform system improvements 1762 - 1763 -=== FR54: Evidence Deduplication === 1764 - 1765 -**Importance:** CRITICAL (POC2/Beta) 1766 -**Fulfills:** Accurate evidence counting, quality metrics 1767 - 1768 -**Purpose:** Avoid counting the same source multiple times when it appears in different forms. 1769 - 1770 -**Specification:** 1771 - 1772 -**Deduplication Logic:** 1773 - 1774 -1. **URL Normalization:** 1775 - * Remove tracking parameters (?utm_source=...) 1776 - * Normalize http/https 1777 - * Normalize www/non-www 1778 - * Handle redirects 1779 - 1780 -2. **Content Similarity:** 1781 - * If two sources have >90% text similarity → Same source 1782 - * If one is subset of other → Same source 1783 - * Use fuzzy matching for minor differences 1784 - 1785 -3. **Cross-Domain Syndication:** 1786 - * Detect wire service content (AP, Reuters) 1787 - * Mark as single source if syndicated 1788 - * Count original publication only 1789 - 1790 -**Display:** 1791 - 1792 -{{code}} 1793 -Evidence Sources (3 unique, 5 total): 1794 - 1795 -1. Original Article (NYTimes) 1796 - - Also appeared in: WashPost, Guardian (syndicated) 1797 - 1798 -2. Research Paper (Nature) 1799 - 1800 -3. Official Statement (WHO) 1801 -{{/code}} 1802 - 1803 -**Acceptance Criteria:** 1804 - 1805 -* ✅ URL normalization works 1806 -* ✅ Content similarity detected 1807 -* ✅ Syndicated content identified 1808 -* ✅ Unique vs. total counts accurate 1809 -* ✅ Improves evidence quality metrics 1810 - 1811 -== Additional Requirements (Lower Importance) ===== FR50: OSINT Toolkit Integration === 1812 - 1813 -**Fulfills:** Advanced media verification 1814 - 1815 -**Purpose:** Integrate open-source intelligence tools for advanced verification. 1816 - 1817 -**Tools to Integrate:** 1818 -* InVID/WeVerify (video verification) 1819 -* Bellingcat toolkit 1820 -* Additional TBD based on V1.0 learnings 1821 - 1822 -=== FR51: Video Verification System === 1823 - 1824 -**Fulfills:** UN-27 (Visual claims), advanced media verification 1825 - 1826 -**Purpose:** Verify video-based claims. 1827 - 1828 -**Specification:** 1829 -* Keyframe extraction 1830 -* Reverse video search 1831 -* Deepfake detection (AI-powered) 1832 -* Metadata analysis 1833 -* Acoustic signature analysis 1834 - 1835 -=== FR52: Interactive Detection Training === 1836 - 1837 -**Fulfills:** Media literacy education 1838 - 1839 -**Purpose:** Teach users to identify misinformation. 1840 - 1841 -**Specification:** 1842 -* Interactive tutorials 1843 -* Practice exercises 1844 -* Detection quizzes 1845 -* Gamification elements 1846 - 1847 -=== FR53: Cross-Organizational Sharing === 1848 - 1849 -**Fulfills:** Collaboration with other fact-checkers 1850 - 1851 -**Purpose:** Share findings with IFCN/EFCSN members. 1852 - 1853 -**Specification:** 1854 -* API for fact-checking organizations 1855 -* Structured data exchange 1856 -* Privacy controls 1857 -* Attribution requirements 1858 - 1859 -== Summary == 1860 - 1861 -**V1.0 Critical Requirements (Must Have):** 1862 - 1863 -* FR44: ClaimReview Schema ✅ 1864 -* FR45: Corrections Notification ✅ 1865 -* FR46: Image Verification ✅ 1866 -* FR47: Archive.org Integration ✅ 1867 -* FR48: Contributor Safety ✅ 1868 -* FR49: A/B Testing ✅ 1869 -* FR54: Evidence Deduplication ✅ 1870 -* NFR11: Quality Assurance Framework ✅ 1871 -* NFR12: Security Controls ✅ 1872 -* NFR13: Quality Metrics Dashboard ✅ 1873 - 1874 -**V1.1+ (Future):** 1875 - 1876 -* FR50: OSINT Integration 1877 -* FR51: Video Verification 1878 -* FR52: Detection Training 1879 -* FR53: Cross-Org Sharing 1880 - 1881 -**Total:** 11 critical requirements for V1.0 1882 - 1883 -=== FR54: Evidence Deduplication === 1884 - 1885 -**Fulfills:** Accurate evidence counting, quality metrics 1886 - 1887 -**Purpose:** Avoid counting the same source multiple times when it appears in different forms. 1888 - 1889 -**Specification:** 1890 - 1891 -**Deduplication Logic:** 1892 - 1893 -1. **URL Normalization:** 1894 - * Remove tracking parameters (?utm_source=...) 1895 - * Normalize http/https 1896 - * Normalize www/non-www 1897 - * Handle redirects 1898 - 1899 -2. **Content Similarity:** 1900 - * If two sources have >90% text similarity → Same source 1901 - * If one is subset of other → Same source 1902 - * Use fuzzy matching for minor differences 1903 - 1904 -3. **Cross-Domain Syndication:** 1905 - * Detect wire service content (AP, Reuters) 1906 - * Mark as single source if syndicated 1907 - * Count original publication only 1908 - 1909 -**Display:** 1910 - 1911 -{{code}} 1912 -Evidence Sources (3 unique, 5 total): 1913 - 1914 -1. Original Article (NYTimes) 1915 - - Also appeared in: WashPost, Guardian (syndicated) 1916 - 1917 -2. Research Paper (Nature) 1918 - 1919 -3. Official Statement (WHO) 1920 -{{/code}} 1921 - 1922 -**Acceptance Criteria:** 1923 - 1924 -* ✅ URL normalization works 1925 -* ✅ Content similarity detected 1926 -* ✅ Syndicated content identified 1927 -* ✅ Unique vs. total counts accurate 1928 -* ✅ Improves evidence quality metrics 1929 - 1930 -== Additional Requirements (Lower Importance) ===== FR7: Automated Verdicts (Enhanced with Quality Gates) === 1931 - 1932 -**POC1+ Enhancement:** 1933 - 1934 -After AKEL generates verdict, it passes through quality gates: 1935 - 1936 -{{code}} 1937 -Workflow: 1938 -1. Extract claims 1939 - ↓ 1940 -2. [GATE 1] Validate fact-checkable 1941 - ↓ 1942 -3. Generate scenarios 1943 - ↓ 1944 -4. Generate verdicts 1945 - ↓ 1946 -5. [GATE 4] Validate confidence 1947 - ↓ 1948 -6. Display to user 1949 -{{/code}} 1950 - 1951 -**Updated Verdict States:** 1952 -* PUBLISHED 1953 -* INSUFFICIENT_EVIDENCE 1954 -* NON_FACTUAL_CLAIM 1955 -* PROCESSING 1956 -* ERROR 1957 - 1958 -=== FR4: Analysis Summary (Enhanced with Quality Metadata) === 1959 - 1960 -**POC1+ Enhancement:** 1961 - 1962 -Display quality indicators: 1963 - 1964 -{{code}} 1965 -Analysis Summary: 1966 - Verifiable Claims: 3/5 1967 - High Confidence Verdicts: 1 1968 - Medium Confidence: 2 1969 - Evidence Sources: 12 1970 - Avg Source Quality: 0.73 1971 - Quality Score: 8.5/10 1972 -{{/code}} 1973 -