Ongoing relational consent lifecycle for the Medicine Wheel Developer Suite.
Consent as a living relational obligation, not a boolean checkbox.
Transforms consent from a boolean checkbox into a living relational obligation with lifecycle tracking, renewal, renegotiation, and community-level consent protocols.
Wilson’s relational accountability means consent is not an event — it’s a relationship. “Once you are in relationship, you are responsible for that relationship’s wellbeing.” Consent must be maintained, renewed, and can be withdrawn — with cascading effects on all dependent relations.
npm install medicine-wheel-consent-lifecycle
Consent moves through a lifecycle of states:
pending — consent requested but not yet grantedgranted — consent given but not yet ceremonializedactive — consent is active and honored through ceremonyrenewal-needed — consent approaching expirationexpired — consent has lapsedrenegotiating — scope is being renegotiatedwithdrawn — consent has been withdrawn (terminal)When consent is withdrawn or scope changes, all dependent relations are affected. The cascade module computes these effects and ensures nothing falls through the cracks.
Community-level consent transcends individual consent. It requires collective decision-making through consensus mechanisms and may require Elder endorsement.
grantConsent(record) — initial grantrenewConsent(record) — renew existing consentrenegotiateConsent(record, newScope) — change scopewithdrawConsent(record, reason) — withdraw with cascading effectscheckConsentHealth(record) — health assessmentdefineScope(description, dataTypes, purposes) — create scopenarrowScope(scope, restrictions) — add restrictionswidenScope(scope, additions) — expand scope (requires re-consent)scopeIncludes(scope, query) — check if action is within scopeconsentCeremony(record, participants) — record consent ceremonyconsentRenewalCeremony(record, participants) — renewal ceremonycommunityConsent(community, scope) — community-level consentcollectiveDecision(voices) — consensus mechanismelderApproval(elderId, record) — Elder endorsementonWithdrawal(record) — compute cascading effectspropagateScopeChange(record, newScope) — update dependent relationsfindDependentRelations(record, allRecords) — find dependenciesconsentStaleAlert(record) — warn when consent needs renewalrenewalDue(records) — find all records needing renewalscopeMismatch(record, action) — detect action outside scopehealthCheck(records) — batch health checkMIT — IAIP Collaborative, Shawinigan, QC