@medicine-wheel/ceremonial-diary
v0.5.8
Published
Ceremonial Diary — a participant's voice across the Five-Phase ceremonial methodology. Intention, observation, and reflection entries with pattern detection, statistics, markdown export, and optional projection into the chronicle wheel. Persists through @
Readme
@medicine-wheel/ceremonial-diary
The ceremonial diary — a participant's voice across the Five-Phase Ceremonial Technology Methodology. Intention, observation, and reflection entries, with pattern detection, statistics, Markdown export, and optional projection into the chronicle wheel.
[!WARNING] Experimental alpha. Part of the Medicine Wheel Developer Suite, which is under active development. APIs change between patch versions and all packages move in lockstep — pin exact versions. See ALPHA.md.
This domain came home from Miadi (jgwill/Miadi#506) as a reusable package. It
persists through @medicine-wheel/storage-provider, where
jsonl and neon are first-class equals — the same code path serves both.
Ceremonial Phases
| Phase | Name | Direction bridge |
| :-- | :-- | :-- |
| miigwechiwendam | Sacred Space Creation | east |
| nindokendaan | Two-Eyed Research Gathering | south |
| ningwaab | Knowledge Integration | west |
| nindoodam | Creative Expression | west |
| migwech | Ceremonial Closing | north |
Usage
import { createProvider } from '@medicine-wheel/storage-provider';
import {
createIntentionEntry,
createReflectionEntry,
queryDiaryEntries,
getDiaryStatistics,
exportToMarkdown,
projectEntryToWheel,
} from '@medicine-wheel/ceremonial-diary';
const store = await createProvider(); // jsonl by default; MW_STORAGE_PROVIDER=neon for Postgres
const intention = await createIntentionEntry(store, {
intention: 'Hold space for the film-production ceremony',
participant: 'mia',
chronicle: 'chronicle:2026-07-20-episode-074-medicine-wheel',
});
// A diary entry can write itself into the chronicle wheel (fail-open):
await projectEntryToWheel(store, intention, { ensureChronicleNode: true });
const entries = await queryDiaryEntries(store, { participant: 'mia' });
const stats = await getDiaryStatistics(store, 'mia');
const markdown = exportToMarkdown(entries);Relation to the chronicle
A diary entry optionally carries a chronicle reference — the medicine-wheel
node id chronicle:<episode-folder-name> (a chronicle_episode node under parent
chronicle:miadi-chronicle, normally registered by @miadi/inquiry-weave).
projectEntryToWheel draws the relation participant --authored--> entry
--recorded_in--> chronicle episode. Entries without a chronicle reference remain
fully valid — the diary can speak whether or not it writes into an episode.
License
MIT — IAIP Collaborative, Shawinigan, QC.
