medicine-wheel

transformation-tracker — RISE Specification

Research impact and growth tracking — built on the lesson Wilson quotes from his co-researchers, “If research doesn’t change you as a person, then you haven’t done it right” (2008, p. 135); the validity check is ours. Tracks transformative impact on researchers, communities, and relational networks.

Version: 0.1.0
Package: @medicine-wheel/transformation-tracker
Document ID: rispec-transformation-tracker-v1
Last Updated: 2026-03-15


Desired Outcome

Users create transformation-aware research systems where:


Creative Intent

What this enables: A research system that measures success not by publication count or citation index, but by transformation — of the researcher, the community, and the relational web. Our validity check, built on a lesson Wilson quotes (p. 135), becomes computable; the computing is ours, not his.

Structural Tension: Between Western research validity (replicability, generalizability, peer approval) and Indigenous research validity (transformation of researcher, community benefit, relational strengthening, reciprocity balance). The transformation-tracker resolves this by making transformation measurable alongside — not instead of — traditional metrics.


Type Definitions

Core Types

type CeremonyPhaseExtended = 'gathering' | 'kindling' | 'tending' | 'harvesting' | 'resting';

TransformationLog

interface TransformationLog {
  id: string;
  researchCycleId: string;
  snapshots: GrowthSnapshot[];
  reflections: Reflection[];
  communityImpacts: CommunityImpact[];
  relationalShifts: RelationalShift[];
  reciprocityLedger: ReciprocityEntry[];
  sevenGenerationScore: number;       // 0–1
  overallTransformation: number;      // 0–1 composite score
}

GrowthSnapshot

interface GrowthSnapshot {
  timestamp: string;
  direction: DirectionName;
  ceremonyPhase: CeremonyPhaseExtended;
  understanding: string;              // Free-text description
  relationsCount: number;
  wilsonAlignment: number;
  keyInsights: string[];
  openQuestions: string[];
}

Supporting Types

interface Reflection {
  id: string;
  timestamp: string;
  direction: DirectionName;
  prompt: string;                     // What prompted this reflection
  content: string;                    // The reflection itself
  catalysts: string[];                // What caused the reflection
}

interface CommunityImpact {
  id: string;
  description: string;
  community: string;
  direction: DirectionName;
  benefitType: 'knowledge' | 'healing' | 'capacity' | 'connection' | 'sovereignty';
  timestamp: string;
  voicedBy?: string;                  // Who reported this impact
}

interface RelationalShift {
  relationId: string;
  before: { strength: number; description: string };
  after: { strength: number; description: string };
  catalyst: string;
  direction: DirectionName;
  timestamp: string;
}

interface ReciprocityEntry {
  type: 'giving' | 'receiving';
  description: string;
  relatedTo: string;
  category: ObligationCategory;       // human, land, spirit, future
  timestamp: string;
}

interface WilsonValidity {
  researcherTransformed: boolean;
  communityBenefited: boolean;
  relationsStrengthened: boolean;
  reciprocityBalanced: boolean;
  sevenGenerationsConsidered: boolean;
  overallValid: boolean;
  score: number;                      // 0–1
  recommendations: string[];
}

Module: Researcher Growth (researcher.ts)

logReflection(log, reflection)
// Records a researcher self-reflection entry

snapshotUnderstanding(log, snapshot)
// Takes a periodic understanding snapshot

compareSnapshots(earlier, later)
// Compares two snapshots, identifies growth dimensions

detectGrowth(log)
// Analyzes snapshot sequence for genuine growth vs. stagnation

Module: Community Impact (community.ts)

logCommunityImpact(log, impact)
// Records a community impact

reciprocityBalance(log)
// Computes giving/receiving balance across all categories

communityVoice(log, voicedBy, description)
// Records community-voiced impact (not self-reported)

impactTimeline(log)
// Returns chronological timeline of all impacts

Module: Relational Shifts (relational-shift.ts)

trackRelationalChange(log, shift)
// Records a before/after relational shift

beforeAfter(log, relationId)
// Returns the full shift history for a relation

strengthDelta(log)
// Computes net relational strength change across all tracked relations

newRelationsFormed(log)
// Identifies relations that didn't exist at the start

Module: Seven Generations (seven-generations.ts)

sevenGenScore(log)
// Computes seven-generation impact score (0–1)

futureImpact(log)
// Assesses impact on future generations based on current trajectory

sustainabilityCheck(log)
// Returns whether the research creates sustainable benefit

Module: Reciprocity Ledger (reciprocity-ledger.ts)

logGiving(log, entry)
// Records a giving action

logReceiving(log, entry)
// Records a receiving action

balanceCheck(log)
// Returns: { giving, receiving, balanced, categories }

reciprocityDebt(log)
// Identifies categories where receiving exceeds giving

reciprocityGrowth(log)
// Tracks how reciprocity balance has changed over time

Module: Prompts (prompts.ts)

reflectionPrompts(phase)
// Returns ceremony-phase-appropriate reflection prompts

phaseTransitionPrompts(fromPhase, toPhase)
// Returns prompts for the transition between phases

milestonePrompts(milestone)
// Returns prompts for specific relational milestones

Module: Validity (validity.ts)

wilsonValidityCheck(log)
// Returns WilsonValidity — has the research transformed?
// Checks: researcher transformed, community benefited, relations strengthened,
//         reciprocity balanced, seven generations considered

Dependencies


Built on Wilson

This package reads the lesson Wilson quotes from “one friend” (p. 83) and reiterates on p. 135, a slogan whose author he cannot find, as a validity check across five dimensions of its own. The word is ours: in Wilson’s conversation, “rather than it being valid or reliable… it’s authentic or credible… it is relational” (Peter, p. 101), and the test is “Is it building relationships rather than breaking them down?” (p. 101). wilsonValidityCheck keeps its name for compatibility.


Test Scenarios

  1. Full transformation lifecycle: Create log → add snapshots → add reflections → add impacts → wilsonValidityCheck → verify score
  2. Growth detection: Add snapshots showing deepening understanding → detectGrowth → true
  3. Stagnation detection: Add identical snapshots → detectGrowth → false
  4. Reciprocity balance: Log 3 giving + 1 receiving → balanceCheck → imbalanced
  5. Relational shift: Track relation from 0.3 to 0.8 strength → strengthDelta → positive
  6. Seven-generation score: Log with future-oriented impacts → sevenGenScore → high
  7. Wilson validity: Complete log with all dimensions → wilsonValidityCheck → overallValid: true
  8. Community-voiced impact: Record impact voiced by community member → verify voicedBy field

Advancing Patterns


Quality Criteria