# 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)
