Add a local, offline eval harness for Michael's routing and memory recall
Maintainers usually reply within 1 day
@agentvivekkumar is already working on this.
Since Oct 10, 2026.
Assessment
This issue has not been assessed yet.
Description
Problem / motivation
Don't Be Michael asks a small-business owner to trust one decision above all others: Michael routes every job to the right team member.
That routing is prompt-driven. Michael (the GOD agent) owns the roster in registry.json, adjudicates traffic, is the single scribe for board.md, and owns the task ledger in tasks.json. HIVE.md positions his escalation policy as a prompt-level control surface.
That makes the prompt powerful, but today there's no regression check for it:
- Change Michael's system prompt, a role definition, an Office Pack in resources/packs/, or the hire-check logic, and there's no repeatable way to know if routing got better or worse.
- A task that should have gone to Finance can silently go to Support, with the wrong mailbox and wrong private folder as a consequence (folder access follows the assignee).
- Memory recall has the same gap. memory.ts wraps MemPalace with a clean degrade-to-noop path when it isn't installed, but there's no measured comparison of markdown-only memory vs MemPalace-backed recall on the same queries.
- The existing tests in test/ protect code paths. They don't protect judgement — and judgement is the product.
For a non-technical owner, that's invisible until a real customer email lands with the wrong person.
Proposed solution
Add a small, local, offline eval harness for judgement — no network, no telemetry, no new runtime dependency.
- Tiny curated fixture set in test/eval/fixtures/ (~30 tasks from the Office Packs) each with task, expectedAssigneeRole, expectedEscalation (autonomous/needs-owner), mustNotAccess, and optional memoryQuery.
- Deterministic runner: npm run eval:routing (node:test style like test:focused) spinning a temp harnessHome, stubbed judge for offline CI, scoring Routing accuracy with per-role confusion list and Escalation calibration (over/under-escalation rates). When MemPalace is present, also report recall@k markdown-only vs MemPalace-backed; when absent, skip and say so.
- Local JSON report + 5-line plain-language summary. Possible v2: readout in Michael's Advanced/Monitor tab next to telemetry.ts/usage.ts.
Suggested scope: src/shared/evalFixtures.ts schema, runner under test/eval/ reusing hive.ts temp-home, npm script, local eval-report.json. No new DB, no new dependency.
Why it matters: Michael is the only one who assigns work. If routing drifts, folder privacy, mailbox permissions and Send-on-approval are applied faithfully to the wrong person. An eval harness turns prompt tuning into a number for PRs and a sentence an owner can understand. It also safety-nets #48 provider work.
Acceptance criteria:
- npm run eval:routing runs fully offline and deterministically
- Fixtures cover 3+ Office Packs with autonomous + needs-owner + must-not-access cases
- Report separates routing accuracy from escalation calibration
- MemPalace absent -> memory leg skips cleanly with note
- No owner data read, no network, no telemetry during run
- Swapping two roles in fixtures visibly drops the score
Alternatives considered
Manual QA checklist — doesn't scale with weekly prompt/pack changes, not reviewable in PR diff. Live A/B on real owners — conflicts with local-first/no-telemetry trust model. Full LLM-as-judge with paid API per run — non-deterministic, costly, breaks offline promise (stubbed judge + optional live flag is better). Rely only on #51/#47 — those verify a single task finished well; this measures whether assignment itself got better or worse after a change.
Area
The hive (memory, routing, GOD agent)
Pre-flight
- I searched existing issues and discussions, and this isn't a duplicate.
- Dominant language
- TypeScript
- Stars
- 273
- Forks
- 211
- Avg merge
- 9h 17m
- Merged PRs (30d)
- 162
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from agentvivekkumar/dontbemichael
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
agentvivekkumar/dontbemichael#357 ·
Maintainers usually reply within 1 day
-
Memory tidy: surface dropped ops and dedupe duplicate adds in the indexPossibly taken @abhishek09827 claimed this today. Openbug os:linux
Difficulty 3/5 1-2 days Newbie friendliness 25/100
agentvivekkumar/dontbemichael#351 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
agentvivekkumar/dontbemichael#349 ·
Maintainers usually reply within 1 day
-
Docs: surface the Outlook/Microsoft 365 mailbox limitation in the "Connect once" stepPossibly taken @SuriyaPrakash1928 claimed this today. Open
Difficulty 1/5 Under an hour Newbie friendliness 20/100
agentvivekkumar/dontbemichael#343 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 15/100
agentvivekkumar/dontbemichael#326 ·
Maintainers usually reply within 1 day
All issues in agentvivekkumar/dontbemichael
Similar issues
-
Add: VIVE TVOpenapproved check:passed streams:add
Difficulty 1/5 Under an hour Newbie friendliness 72/100
iptv-org/iptv#55293 · 1 comment ·
Maintainers usually reply within 1 day
-
bug needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Fission-AI/OpenSpec#2084 ·
Maintainers usually reply within 2 days
-
Contrib indemnité de départ à la retraite : faire le pont avec le simulateur sur la page génériqueOpenP1
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
SocialGouv/code-du-travail-numerique#7561 ·
Maintainers usually reply within 1 day
-
beginner bug
Difficulty 1/5 Under an hour Newbie friendliness 88/100
hiero-ledger/hiero-sdk-js#4517 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
kubernetes-sigs/headlamp#7950 ·
Maintainers usually reply within 3 days