Morele Helper

Handleiding

Dagelijks gebruik

Morele Helper begeleidt u 21 werkdagen lang bij de reflectie op één beleidsdilemma. Elke dag vijf tot tien minuten. Het instrument stelt twee vragen terug. Geen dialoog, geen vervolgstap — u draagt de vragen de dag in.

1
Druk op de knop

De opname start. Spreek uw reflectie in — op uw dilemma, op wat u bezighoudt. U kunt aarzelen, zwijgen, opnieuw beginnen. De opname stopt na de ingestelde tijd.

2
Twee vragen verschijnen

Vraag A — spiegelvraag. Reageert op wat u zojuist zei. Een woord dat opviel, een aanname, een spanning, een partij die ontbrak.

Vraag B — dagvraag. Staat vast voor deze dag in de rondgang, ongeacht wat u heeft gezegd.

3
De sessie is klaar

Geen bevestiging, geen vervolg. U sluit het scherm. De vragen gaan met u mee.

Dag 11 — diagnose

Na tien dagen reflectie is dag 11 het scharnierpunt. De vraag B biedt vier karakteriseringen van uw dilemma. Kies daarna de uitkomst die het beste past en voer die in via de terminal — zie Uitkomsten.

Dag 21 — afsluiting

Dag 21 rondt de rondgang af. U spreekt een eindsessie in. Het instrument genereert een narratieve rapportage op basis van alle twintig voorafgaande sessies. De rapportage verschijnt op het dashboard en kan van daaruit worden gedeeld — alleen via expliciete actie, niet automatisch.

Op elk moment stoppen

U kunt de rondgang op elk moment beëindigen. Er wordt geen rapportage gegenereerd, niets verstuurd.

python src/session.py --stop

Daarna is de staat gereset naar dag 1 en is het stil.

Vier uitkomsten

Na dag 11 stelt u de uitkomst in. Dit bepaalt de dagvragen voor dag 15 tot en met 20.

Pseudo-dilemma

De richting is duidelijk, maar uitspreken kost iets. Of het is een technische vraag verkleed als ethisch vraagstuk. Of de verantwoordelijkheid ligt elders.

Convergent dilemma

De lenzen wijzen overwegend dezelfde kant op. Wat ontbreekt is moed of helderheid, niet meer analyse.

Divergent dilemma

De waarden lopen werkelijk uiteen. Elke optie brengt een echte schade of een echt onrecht mee. Er is geen uitkomst zonder verlies.

Reflectie zonder besluit

Er is geen besluit te nemen — of niet door u, of niet nu. Wat er wél is: het denken verschuift. Aannames worden zichtbaar, een rolopvatting verandert.

Uitkomst instellen na dag 11:

python src/session.py --set-uitkomst [pseudo|convergent|divergent|reflectie]

Terugzetten

Maximaal één keer per rondgang. Eerdere sessies blijven bewaard; sessies vanaf de doeldag worden gewist.

python src/session.py --terugzetten 8

Als u terugzet naar dag 11 of eerder, wordt de uitkomst gewist en moet u die na dag 11 opnieuw instellen.

Technische opzet

Morele Helper draait op een Jetson Orin met een reTerminal als microfoon en scherm. Transcriptie en vraag-A-inferentie gebeuren lokaal. Alleen de gegenereerde vraagtekst en de dag-21 rapportage gaan via de relay.

Component Rol
Jetson Orin STT (faster-whisper), LLM-inferentie (llama.cpp), opslag transcripten
reTerminal Microfoon, knop, tekstdisplay
morele-helper-relay (Vercel) Relay van vragen naar display, dag-21 dashboard

Configuratie (.env)

MORELE_RELAY_URL=https://morele-helper-relay.vercel.app
MORELE_TOKEN=<token>
ANTHROPIC_API_KEY=<key>

MORELE_WHISPER_MODEL=small
MORELE_WHISPER_DEVICE=cpu
MORELE_RECORD_SECONDS=90
MORELE_SAMPLERATE=16000

MORELE_LLM_BASE_URL=http://127.0.0.1:8080
MORELE_LLM_MODEL=<modelbestand>
MORELE_LLM_MAX_TOKENS=80

Tests draaien

source /home/bob/Derwisch_local/.venv/bin/activate
python -m pytest tests/ -v

Sessie handmatig testen

# Met bestaand WAV-bestand, geen state-update
python src/session.py --file opname.wav --dag 11 --dry-run

# Week 3 routing controleren
python src/session.py --set-uitkomst divergent
python -c "
import sys; sys.path.insert(0,'.')
from src.session import get_vraag_b, load_dagvragen
for dag in range(15, 21):
    v, t = get_vraag_b(dag, load_dagvragen(), 'divergent')
    print(f'dag {dag}: {t}')
"

CLI-referentie

Commando Wat het doet
python src/session.py Normale dagelijkse sessie starten
--file WAV Bestaand WAV-bestand gebruiken i.p.v. opname
--dag N Dag overschrijven (1–21)
--dry-run Geen state-update, geen relay-post
--set-uitkomst TYPE Uitkomst instellen na dag 11 (pseudo / convergent / divergent / reflectie)
--terugzetten N Rondgang terugzetten naar dag N (max 1× per rondgang)
--stop Rondgang beëindigen — reset state, geen rapportage
--rapport Dag-21 rapportage genereren van opgeslagen sessies