Download docs/governance.md from PYTHAI/mindXtrain: direct link, hf CLI and curl.
- Browser
- Download file 4.54 kB
-
https://huggingface.co/PYTHAI/mindXtrain/resolve/main/docs/governance.md
- Command line
-
hf download hf://PYTHAI/mindXtrain/docs/governance.md
-
curl -L -o governance.md https://huggingface.co/PYTHAI/mindXtrain/resolve/main/docs/governance.md
Governance β classroom / boardroom / dojo
A clean-room reimplementation (from the behaviour of
github.com/openmindx/openmind β Boardroom
multi-model consensus + Dojo head-to-head evaluation) of the decision layer that governs
training. Lives in mindxtrain/governance/; pure stdlib + pydantic, base-install importable.
The model
- Classroom (
governance/classroom.py) β where an actor (model) trains. An actor graduates when its persona imprint took:graduate(imprint_report, min_delta=β¦)returns aGraduation(the motion the boardroom convenes on). Ties the governance layer tomindxtrain.eval.imprint. - Boardroom (
governance/boardroom.py) β a panel of any number of role-based members (advocate, critic, analyst, devil's advocate, expert, generalist).convene(motion, ballot)tallies votes βapproved/rejected/disputed. The boardroom governs the classroom: it decides about training given a graduation. Preset boards:classic_triad,devils_court,full_board,peer_review. - Dojo (
governance/dojo.py) β the boardroom's dispute-settlement extension. When a boardroom isdisputed(a tie or no quorum), a dojo settles it. A dojo panel is always an odd prime (β₯ 3) β an odd number of decisive judges cannot tie, so the dispute always resolves.Dojo.sized(n)rounds a requested size to the nearest valid prime;settle(motion, ballot)returns a finalDojoVerdict. 2 is prime but even (can tie), so it is excluded.
Flow
classroom: train actor β measure imprint β graduate(report) ββΊ Graduation.motion
β
boardroom: convene(motion, ballot) ββΊ approved / rejected / disputed β
β disputed β
dojo (prime panel): settle_dispute(decision, dojo, ballot) ββΊ DojoVerdict (no tie)
Members vote via an explicit {id: vote} map or a callable (member, motion) -> vote, so
the whole layer is testable with no LLM and can later be backed by real models
(boardroom-of-LLMs, dojo head-to-head) β clean-room, never vendoring openmind's TypeScript.
Why prime
A boardroom can be any size because deliberation tolerates abstention and "no decision"
(escalate). A dojo must settle β so its panel is an odd prime: approvals + rejections
is odd, the majority is strict, and the verdict is final. See governance/primes.py
(is_prime, next_prime, nearest_prime) and dojo.prime_dojo_size.
Model-backed deliberation
governance/panel.py backs members + judges with real models (any OpenAI-compatible
backend β the same ollama / vLLM the operator serves). deliberate(member, motion) prompts a
member from its role stance and parses a VERDICT: APPROVE|REJECT|ABSTAIN; model_ballot() /
model_judge_ballot() return ballots you pass straight to Boardroom.convene /
Dojo.settle. Lazy + best-effort: a model that errors or returns no parseable verdict abstains
(boardroom) or is recorded as reject (dojo). The base URL resolves from
MINDXTRAIN_OPENAI_BASE_URL / MINDXTRAIN_VLLM_BASE_URL / MINDXTRAIN_OLLAMA_BASE_URL.
Coach surface
The Boardroom card (after the receipt card) convenes a board on a promotion motion and, if disputed, settles it in a prime dojo:
GET /coach/api/boardroom/presetsβ named boards β roles.POST /coach/api/boardroom/conveneβ{motion, members:[{id,role,model}], quorum, votes?, use_models?, base_url?}. Tally suppliedvotes, oruse_models: trueto have each member's model deliberate. Model calls run in a worker thread (asyncio.to_thread) so the operator event loop never blocks on inference. Returns the decision + per-member deliberations.POST /coach/api/dojo/settleβ{motion, size, model?, votes?, use_models?, base_url?}. Sizes the panel to the nearest odd prime and settles.
Tests
tests/test_governance.pyβ primes, any-N boardroom (majority / tie / no-quorum), prime-only dojo (rejects non-prime panels, settles without tie), end-to-end classroom β disputed β dojo.tests/test_governance_panel.pyβ verdict parsing, role stances, model-backed ballots driving a boardroom + dojo over a mocked chat backend, graceful backend-error handling.tests/test_coach_governance_api.pyβ convene (votes + model mode), dojo settle (prime sizing), 422 paths, and the Coach card/JS presence.