[plan] 24-hour killer demo — execution plan with hour-by-hour tasks #53
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
A 10-minute Hero OS demo on
herodemo.gent01.grid.tfthat lands every beat without the user-visible reasoning leaks, half-broken services, or env-var workarounds we've been firefighting today. Concrete, time-boxed, executable.This issue is the execution plan. The bigger picture is in hero_demo#52 (Hero OS vision) and the per-feature issues it cross-references.
What's already working (verified live 2026-04-30)
So most of the killer demo is already built. The 24-hour plan is polish + a few wiring fixes + reliability hooks, not feature build.
The 24-hour plan, hour by hour
Hour 0–4: highest leverage (docs_hero + curated MCP tools)
Goal: make the AI Assistant stop brute-forcing biz queries.
docs_hero/services/biz.md,docs_hero/services/calendar.md,docs_hero/services/photos.md,docs_hero/services/books.md,docs_hero/services/foundry.md,docs_hero/contexts.md)biz.list_contacts(context),biz.list_persons(context),biz.add_contact(context, name, ...). Tracked in hero_agent issue (filed alongside this).Hour 4–8: AI Assistant UX polish
Goal: hide the agent's reasoning scratchpad from the user-facing transcript.
<details>element collapsed by default, or a "Thinking..." indicator that shows only the final answer until clicked.Hour 8–12: snapshot + smoke loop foundation
Goal: stop the demo from regressing while we polish.
/hero_foundry/rpc/api/files/<ctx>/Photos/<file>.jpg→ 200 image/jpeg)/hero_biz/ui/c/<ctx>/persons→ 200 + non-empty)/hero_books/ui/search?q=hero→ 200 + result count > 0)/hero_agent/rpc/health→ 200)/var/log/herodemo-smoke.log. Failure threshold: any 200-expected returning non-200 → log warn line.Hour 12–18: STT path + AI write to biz
Goal: the demo can run a voice round-trip and the AI can mutate state, not just read.
biz.add_contactMCP tool, the agent can call it, demo prompt "add Alice Smith from Acme as a contact" creates the record + Biz dashboard reflects it.Hour 18–24: rehearse, fix, snapshot again
Goal: play through the demo end-to-end three times. Fix anything that breaks. Snapshot the final known-good state.
The demo (the 7-minute flow we rehearse)
Acceptance
biz.add_contactMCP tool works end-to-end.~/heronu-backups/with sha256.What this issue is NOT
This issue is what to ship in the next 24 hours so the demo actually impresses someone tomorrow.
Cross-references
Signed-off-by: mik-tf
Hour-by-Hour reconciliation against source (session 52)
Source-grounded re-read of hero_agent + hero_voice + hero_router suggests several Hour-N items need re-mapping vs current reality. None of this is conclusive — runtime verification on herodemo is the next step — but the design-level signal is strong.
Hour 4-8 — "fix scratchpad / chain-of-thought leakage in transcripts"
Likely already fixed at design level.
ExecutionContract::to_prompt_section()builds an objective + constraints + success-criteria block but is never called. The contract only emits aContractDerivedevent for the admin SSE dashboard — it's not injected into the LLM prompt or saved to OSIS conversation storage. If a leak is still observable on herodemo, the source is somewhere else (system prompt? streaming token formatting? raw provider response?), not the contract. Action: runtime verification before redoing the work.Hour items: "wire MCP tools" / "expose biz writes via curated tools"
The auto-MCP gateway already exists.
POST /mcp/{service_name}is live in hero_router and tools are auto-derived from OpenRPC.agent_runships per service for free. hero_agent already consumes via the~/hero/var/agent/mcp.jsonregistry. Remaining work is curation, ranking, and write-side gating — not building MCP. See hero_agent#15 comment for the four reshaped subtasks. Action: replace these Hour items with the curation/gating tasks.Hour 12-18 — STT verification
STT works in source: whisper.cpp local (
HERO_VOICE_STT_LOCAL=true) with Groqwhisper-large-v3-turbocloud fallback via herolib-ai. Verification is still valuable; expectation is it should pass without surprises. No change needed.Wake-word integration (if planned)
Rustpotter detector is hard-disabled (candle-core 0.2.2 conflict,
wakeword.rs). Only working wake path is WebSocket Listen + VAD + substring-match on Whisper output (ws.rs:389). See hero_agent#16 comment. Action: any Hour item depending on wake-word should depend on the Rustpotter unblock.TTS expectation
If any Hour item assumes "Kokoro + Groq fallback" for TTS — Groq fallback is STT-only. TTS is Kokoro-only.
Suggested next step: update Hour 4-8 to a runtime-verification task; replace "wire MCP" items with the curation work; flag any wake-word dependency as blocked on the Rustpotter dep upgrade.
Reconciliation memo:
memory/investigation_roadmap_reconciliation.md(private workspace, session 52).