User Class Diagram
User Class Diagram
This diagram shows the user role hierarchy in FactHarbor v0.9.1, with corrected inheritance.
Critical: Corrected Inheritance
IMPORTANT CORRECTION:
- Moderator derives from Reviewer (NOT from Expert)
- Maintainer derives from Contributor (NOT from Reviewer or Moderator)
Two Independent Tracks from Contributor:
Content Track: Contributor → Reviewer → (Auditor | Expert | Moderator)
- Focus: Content quality, validation, community management
- Skills: Domain expertise, review, moderation
Technical Track: Contributor → Maintainer
- Focus: System operations, configuration, deployment
- Skills: DevOps, system administration, technical configuration
- Independent from content review - Maintainers don't need review skills
System Track: Reader → Technical User
- Not human users - automated processes
- Examples: AKEL instances, sync bots, monitors
- Managed by Maintainers
Role Hierarchy Explanation
Base: Reader
- Anyone, no login required
- Foundation for all other roles
- Can browse, search, compare, flag, and automatically submit claims
Technical User (system type, extends Reader)
- Not human users - automated system processes
- Examples: AKEL instances, federation sync bots, backup services, monitoring
- Can perform automated operations
- AKEL is primary implementation of Technical User pattern
Contributor (extends Reader)
- Registered human users
- Can submit evidence, propose scenarios, participate in discussions
- All Reader capabilities plus contribution rights
- Two-way branching: Can become Reviewer (content track) or Maintainer (technical track)
Reviewer (is-a Contributor - Content Track)
- Trusted community members on content track
- Can review and approve content
- Can validate AI-generated content (Mode 2 → Mode 3 for Tier B/C)
- Participates in audit sampling
- Three-way branching: Can specialize as Auditor, Expert, or Moderator
Maintainer (is-a Contributor - Technical Track)
- Core technical team members on technical track
- System configuration and deployment authority
- Does NOT require review skills
- Manages Technical Users (creates AKEL instances, sync bots, etc.)
- Independent from content review hierarchy
Specialized Reviewer Roles:
Auditor (specialized Reviewer - QA track)
- Dedicated quality assurance role
- Reviews sampled AI-generated content
- Validates quality gate enforcement
- Provides feedback for system improvement
Expert (specialized Reviewer - domain track)
- Subject matter specialists
- Final authority for Tier A content in their domain
- Can define domain-specific standards
- Required for Tier A "Human-Reviewed" status
Moderator (specialized Reviewer - process track)
- Community management focus
- Handles abuse and disputes
- Manages users and permissions
- Oversees audit system
- Independent from domain expertise and technical operations
AKEL (Technical User implementation)
- AI system implementing Technical User interface
- Creates drafts for Contributor review
- Subject to Auditor oversight
- Never bypasses human authority
Key Design Principles
Why Maintainer derives from Contributor (not Reviewer):
- Different skill set: Technical operations ≠ Content review
- Separation of concerns: Technical authority independent from editorial authority
- Flexibility: Can have technical experts without review experience
- Realistic: System admin skills and content review skills are distinct
- Cleaner: Maintainer manages Technical Users (including AKEL) - natural fit on technical track
Why Moderator derives from Reviewer (not Expert):
- Moderators handle process (community management, disputes) not domain expertise
- Experts focus on subject matter (medical, legal, scientific validation)
- Allows independent oversight of content quality (Experts) vs community behavior (Moderators)
- Moderators don't need domain expertise to handle community issues
Technical User Pattern:
- Purpose: Represents automated system processes
- Examples: AKEL (AI processing), Federation sync bots, Scheduled audit tasks, Backup services, Monitoring systems, API integrations
- Managed by: Maintainers create and configure Technical Users
- Authority: Limited to programmatic operations, no human-level decisions
Progressive Trust:
- Reader → Contributor (registration)
- Contributor → Reviewer (content track) OR Maintainer (technical track)
- Reviewer → Auditor/Expert/Moderator (specializations)
- All appointments based on demonstrated competence
Human Authority:
- Technical Users assist but don't make human-level decisions
- Human Reviewers validate AI outputs
- Experts have final say on Tier A content
- Moderators have final say on community matters
- Maintainers have final say on technical configuration
classDiagram
class Reader {
+String SessionID
+String LocalPreferences
+browse() View all published content
+search() Search claims and scenarios
+compare() Compare scenarios
+flag() Flag issues or errors
+submitClaim() Submit text for automatic claim extraction
}
class Contributor {
+String UserID
+String DisplayName
+String Email
+DateTime RegisteredAt
+submitEvidence() Attach sources
+proposeScenario() Draft scenarios
+comment() Participate in discussions
+requestReview() Request human review
}
class TechnicalUser {
+String SystemID
+String SystemName
+String Purpose
+automatedProcess() Execute automated tasks
+systemIntegration() Integrate with external systems
}
class Reviewer {
+String ReviewerID
+String[] Domains
+DateTime AppointedAt
+review() Review contributions and AI drafts
+validate() Validate AI-generated content Mode 2→3
+edit() Edit claims, scenarios, evidence
+approve() Approve Tier B/C for Human-Reviewed
+flagForExpert() Escalate to expert review
+audit() Participate in sampling audits
}
class Auditor {
+String AuditorID
+String[] AuditDomains
+Float AuditAccuracy
+reviewSample() Review sampled AI content
+validateQualityGates() Check gate enforcement
+identifyPatterns() Find AI error patterns
+provideFeedback() Improve system quality
}
class Expert {
+String ExpertID
+String ExpertiseArea
+String[] Certifications
+DateTime VerifiedAt
+authoritativeApproval() Final authority Tier A
+validateComplex() Complex domain validation
+defineStandards() Set domain quality standards
+overrideAKEL() Override AI suggestions with docs
}
class Moderator {
+String ModeratorID
+String[] Responsibilities
+handleAbuse() Manage abuse reports
+manageUsers() User permissions
+enforceGuidelines() Community guidelines
+adjustRiskTiers() Review tier assignments
+overseeAudits() Audit system oversight
}
class Maintainer {
+String MaintainerID
+String[] SystemAccess
+configureSystem() Technical configuration
+manageRoles() Grant and revoke roles
+configureAKEL() Quality gates and parameters
+deployUpdates() System deployment
+setPolicy() Risk tier policies
+manageTechnicalUsers() Create and manage system accounts
}
class AKEL {
+String InstanceID
+Enum AuthorType "AI"
+extractClaims() Claim extraction
+classifyRisk() Risk tier assignment
+generateScenarios() Draft scenarios
+searchContradictions() Mandatory counter-evidence search
+validateQualityGates() Run 4 quality gates
+proposeVerdicts() Draft verdicts
}
Reader <|-- Contributor : extends
Reader <|-- TechnicalUser : system-type
Contributor <|-- Reviewer : content-track
Contributor <|-- Maintainer : technical-track
Reviewer <|-- Auditor : specialized-QA
Reviewer <|-- Expert : specialized-domain
Reviewer <|-- Moderator : specialized-process
AKEL --|> TechnicalUser : implements
AKEL ..> Contributor : creates-drafts-for
AKEL ..> Reviewer : submits-to
AKEL ..> Auditor : audited-by
Maintainer ..> TechnicalUser : manages