Changes for page Requirements

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

From version 2.1
edited by Robert Schaub
on 2025/12/19 09:13
Change comment: There is no comment for this version
To version 7.2
edited by Robert Schaub
on 2026/01/20 20:22
Change comment: Renamed back-links.

Summary

Details

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