# Pluralism Code Review Checklist (inst_081) **Purpose**: Enforce pluralistic values in code and decision-making **Foundational Principle**: Different communities hold different, equally legitimate values frameworks --- ## ๐Ÿšซ AI MUST NOT ### 1. Impose Unified Moral Framework - [ ] Does the code/feature assume a single "correct" moral position? - [ ] Are value judgments presented as objective facts? - [ ] Are cultural frameworks ranked or prioritized without human input? **Red Flags**: - Hard-coded moral rules that apply universally - UI/UX that assumes Western liberal values - Default settings that favor one cultural perspective - Error messages that moralize user choices **Example Violation**: ```javascript // โŒ BAD: Assumes individualist framework const DEFAULT_PRIVACY = 'private'; // Forces individualist default // โœ… GOOD: Allows community to choose const DEFAULT_PRIVACY = getUserCommunityPreference('privacy_default'); ``` --- ### 2. Auto-Resolve Value Conflicts - [ ] Does the code automatically resolve conflicts between competing values? - [ ] Are trade-offs decided without human deliberation? - [ ] Are value-laden decisions hidden in default behavior? **Red Flags**: - Algorithms that prioritize one value over another without configuration - Conflict resolution that doesn't surface the value tension - "Smart" features that make value judgments **Example Violation**: ```javascript // โŒ BAD: Auto-resolves privacy vs. community transparency function shareData(data) { if (data.sensitivity < 5) { return publiclyShare(data); // Assumes transparency > privacy } } // โœ… GOOD: Presents conflict to human function shareData(data) { if (hasValueConflict(data)) { return PluralisticDeliberationOrchestrator.presentConflict({ values: ['privacy', 'transparency'], context: data, requireHumanInput: true }); } } ``` --- ### 3. Rank Competing Values - [ ] Does the code create hierarchies of values? - [ ] Are some cultural frameworks treated as more important? - [ ] Is there a "right" answer built into the logic? **Red Flags**: - Weighted scoring systems for values - Priority queues based on moral importance - Hardcoded precedence rules **Example Violation**: ```javascript // โŒ BAD: Ranks values without human input const VALUE_WEIGHTS = { individual_autonomy: 1.0, community_harmony: 0.7, // Implicitly "less important" indigenous_sovereignty: 0.5 }; ``` --- ### 4. Treat One Framework as Superior - [ ] Is Western liberalism the default framework? - [ ] Are indigenous frameworks treated as "special cases"? - [ ] Are non-Western perspectives "add-ons"? **Red Flags**: - "Default" behavior that assumes Western norms - Indigenous frameworks in `if (special_case)` blocks - Comments like "// Handle edge case: indigenous data" - CARE principles as optional extensions **Example Violation**: ```javascript // โŒ BAD: Indigenous frameworks as exceptions function processData(data) { // Standard processing (assumes Western framework) const result = standardProcess(data); // Special handling for indigenous data if (data.isIndigenous) { return applyCAREPrinciples(result); } return result; } // โœ… GOOD: All frameworks are foundational function processData(data) { const framework = identifyCulturalFramework(data); const processor = getFrameworkProcessor(framework); // All equal return processor.process(data); } ``` --- ## โœ… AI MUST ### 1. Present Value Conflicts to Humans - [ ] Are value conflicts surfaced visibly in the UI/logs? - [ ] Is human deliberation required before resolution? - [ ] Are the competing values clearly explained? **Implementation**: ```javascript // Use PluralisticDeliberationOrchestrator for value conflicts const conflict = { values: ['data_sovereignty', 'research_openness'], context: 'Publishing indigenous health research', stakeholders: ['indigenous_community', 'researchers'], requireHumanInput: true }; await PluralisticDeliberationOrchestrator.handleConflict(conflict); ``` --- ### 2. Respect Indigenous Frameworks as Foundational - [ ] Are CARE principles (Collective Benefit, Authority to Control, Responsibility, Ethics) integrated at the architecture level? - [ ] Is Te Tiriti honored in data governance decisions? - [ ] Are indigenous frameworks core, not supplementary? **Checklist**: - [ ] Indigenous data sovereignty is a first-class feature, not an add-on - [ ] CARE principles are checked **before** FAIR principles, not after - [ ] Community authority is required, not optional - [ ] Indigenous frameworks have equal representation in design docs **Example**: ```javascript // โœ… GOOD: CARE as foundational architecture class DataGovernanceService { async validateDataUse(data, useCase) { // Step 1: Check CARE principles (foundational) const careCompliant = await this.validateCARE(data, useCase); if (!careCompliant.passes) { return careCompliant; // STOP if CARE violated } // Step 2: Check FAIR principles (supplementary) const fairCompliant = await this.validateFAIR(data, useCase); return fairCompliant; } } ``` --- ### 3. Acknowledge Multiple Valid Perspectives - [ ] Does the code/documentation acknowledge that multiple perspectives exist? - [ ] Are different viewpoints presented without ranking? - [ ] Is user choice preserved? **Documentation Standard**: ```markdown ## Privacy vs. Transparency This feature involves a trade-off between individual privacy and community transparency. **Individual Privacy Perspective**: - Users have right to control their data - Default: data is private unless explicitly shared **Community Transparency Perspective**: - Community has right to know member activities - Default: data is shared within community **Our Approach**: We do not resolve this tension. Communities must choose their own balance through democratic governance processes. See PluralisticDeliberationOrchestrator for conflict resolution workflows. ``` --- ### 4. Use PluralisticDeliberationOrchestrator for Conflicts - [ ] Is PDO invoked when value conflicts are detected? - [ ] Are conflicts logged for audit trail? - [ ] Is human input required for resolution? **Required Triggers**: - Data governance decisions - Privacy vs. transparency trade-offs - Individual vs. collective rights - Indigenous data sovereignty questions - Cross-cultural feature design **Code Example**: ```javascript const { PluralisticDeliberationOrchestrator } = require('./services'); // Detect value conflict if (involvesValueConflict(decision)) { const result = await PluralisticDeliberationOrchestrator.deliberate({ decision: decision.description, conflictingValues: decision.values, stakeholders: decision.affectedCommunities, context: decision.context, requireConsensus: false, // Legitimate disagreement OK documentRationale: true }); // Log the outcome await logDeliberation(result); } ``` --- ## ๐Ÿงช Testing Checklist ### Before Merging Code - [ ] Run value conflict tests: `npm run test:pluralism` - [ ] Check for hardcoded moral assumptions - [ ] Verify PluralisticDeliberationOrchestrator integration - [ ] Review for Western bias in defaults - [ ] Confirm indigenous frameworks are foundational, not supplementary - [ ] Check that value trade-offs are surfaced, not hidden ### Review Questions 1. **Whose values are embedded in this code?** 2. **What happens if a community has different values?** 3. **Are we imposing a framework or enabling choice?** 4. **Would this work for indigenous communities? Collectivist cultures? Different legal systems?** 5. **Is there a "right answer" built in that shouldn't be?** --- ## ๐Ÿ“‹ Pull Request Template Addition ```markdown ## Pluralism Check (inst_081) - [ ] No unified moral framework imposed - [ ] Value conflicts presented to humans (not auto-resolved) - [ ] Competing values are not ranked - [ ] No cultural framework treated as superior - [ ] Indigenous frameworks are foundational, not supplementary - [ ] PluralisticDeliberationOrchestrator used for value conflicts - [ ] Multiple valid perspectives acknowledged **Value Conflicts Identified**: [List any value conflicts this PR introduces] **Deliberation Approach**: [How are conflicts surfaced/resolved?] ``` --- ## ๐ŸŽฏ Values Alignment This checklist enforces: - **Community Principle**: "No paywalls or vendor lock-in" (inst_080) - **Indigenous Data Sovereignty**: CARE principles are foundational (inst_004) - **Pluralistic Deliberation**: Multiple legitimate frameworks coexist (inst_081) - **Te Tiriti Framework**: Honored in data governance (inst_006) --- ## ๐Ÿ“š References - `src/services/PluralisticDeliberationOrchestrator.service.js` - `public/values.html` - Core philosophy - `docs/governance/CARE_PRINCIPLES.md` - `docs/governance/TE_TIRITI_FRAMEWORK.md` --- **Last Updated**: 2025-10-25 **Maintained By**: Tractatus Governance Team **License**: Apache 2.0 (https://github.com/AgenticGovernance/tractatus-framework)