npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

medicine-wheel-consent-lifecycle

v0.1.0

Published

Ongoing relational consent lifecycle for the Medicine Wheel Developer Suite — consent as a living relational obligation, not a boolean checkbox

Readme

medicine-wheel-consent-lifecycle

Ongoing relational consent lifecycle for the Medicine Wheel Developer Suite.

Consent as a living relational obligation, not a boolean checkbox.

Purpose

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.

Installation

npm install medicine-wheel-consent-lifecycle

Key Concepts

ConsentState

Consent moves through a lifecycle of states:

  • pending — consent requested but not yet granted
  • granted — consent given but not yet ceremonialized
  • active — consent is active and honored through ceremony
  • renewal-needed — consent approaching expiration
  • expired — consent has lapsed
  • renegotiating — scope is being renegotiated
  • withdrawn — consent has been withdrawn (terminal)

Cascading Effects

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 Consent

Community-level consent transcends individual consent. It requires collective decision-making through consensus mechanisms and may require Elder endorsement.

API

Lifecycle Module

  • grantConsent(record) — initial grant
  • renewConsent(record) — renew existing consent
  • renegotiateConsent(record, newScope) — change scope
  • withdrawConsent(record, reason) — withdraw with cascading effects
  • checkConsentHealth(record) — health assessment

Scope Module

  • defineScope(description, dataTypes, purposes) — create scope
  • narrowScope(scope, restrictions) — add restrictions
  • widenScope(scope, additions) — expand scope (requires re-consent)
  • scopeIncludes(scope, query) — check if action is within scope

Ceremony Module

  • consentCeremony(record, participants) — record consent ceremony
  • consentRenewalCeremony(record, participants) — renewal ceremony

Community Module

  • communityConsent(community, scope) — community-level consent
  • collectiveDecision(voices) — consensus mechanism
  • elderApproval(elderId, record) — Elder endorsement

Cascade Module

  • onWithdrawal(record) — compute cascading effects
  • propagateScopeChange(record, newScope) — update dependent relations
  • findDependentRelations(record, allRecords) — find dependencies

Alerts Module

  • consentStaleAlert(record) — warn when consent needs renewal
  • renewalDue(records) — find all records needing renewal
  • scopeMismatch(record, action) — detect action outside scope
  • healthCheck(records) — batch health check

License

MIT — IAIP Collaborative, Shawinigan, QC