[ROADMAP] Phase ordering for ACTIVE board (project 13) #221

Open
opened 2026-05-06 17:45:03 +00:00 by mik-tf · 0 comments
Owner

Vision

Hero OS becomes a sovereign AI-native desktop where the AI agent drives every domain (CRM, files, voice, library, calendar) through one client, one broker, one persistence layer, one theme — all reproducibly installable on any machine.

Deploy-anywhere = P1 + P2

The install code path (service_<svc> install --download --reset) is the same whether a developer or an end-user runs it. P1 produces the CI artifacts; P2 makes the install scripts honest on a fresh Ubuntu. After P2 closes, "deploy Hero OS to any VM" is a real capability, not a coping strategy. P3-P6 tighten the architecture (one persistence, one AI client, one theme, one agent) but don't change deployability.

home#121 (shared dev VM) stays useful as a convenience for new dev onboarding after P2, but it stops being the only path.

Six phases, in order

P1 — Binaries (in flight, gates everything)

Close home#212.

  • Bucket C (7 nutools-wired repos with no published release): hero_lib_rhai, hero_agent, hero_collab, hero_office, hero_planner, hero_logic, hero_mail
  • Bucket D (4 off-radar repos with old-shape naming): hero_compute, hero_ledger, hero_sync, hero_tfspores

Gate: every active lhumina_code repo publishes target-triple-named CI artifacts. service_<svc> install --download --reset works for every service.

Result: Foundation under everything else. Install becomes reproducible at the CI artifact level.


P2 — Devs unblocked (T1 blockers)

After P1 is at least 80% — engineering team can't ship while these are open.

Current state (workaround): home#121 — everyone works on the shared dev VM because individual machines aren't reproducible. P2 closes the gap so any machine works; #121 stays as the optional convenience, not the only path.

Gate: OSIS runs on a fresh dev box; service_install_all is green-on-clean-Ubuntu in CI.

Result: Any fresh Ubuntu — dev workstation, demo VM, or end-user deploy — runs the install and gets a working Hero OS. Same install code path serves both audiences. "Team out of sync" goes away; deploy-anywhere becomes real.


P3 — One foundation story (T2 + T4) — parallel to P4

Gate: zero direct redis usage in the workspace; light/dark toggle in hero_os propagates to every iframe + island + admin UI.

Result: One persistence story. One theme story.


P4 — AI client adoption (T3) — parallel to P3

home#219 META +

Gate: no app instantiates a non-hero_lib LLM client; aibroker downloads models for every provider; voice is one drop-in skill.

Result: Every Hero app talks to AI the same way. The "AI making up stuff" / "AI not responding" classes of bugs end. Voice works in 5 minutes for any new app.


P5 — CRM + Python flow shipping (T5 — the demo)

Starts when P2 + P4 are green.

Gate: agent drives CRM end-to-end on herodemo with real per-context data, multi-company contacts, and no hallucinations.

Result (the killer demo): ask the AI to add a contact in OWH context, link them to two companies with roles, and the right Person + PersonCompanyLink records appear in the right OSIS context.


P6 — Polish + growth (continuous, no hard gate)

Result: the v1 vision — ambient AI desktop with reusable surfaces.


Parallelism

  • P1 must complete first. Everything below depends on a known-good --download install.
  • P2 must complete before P5. No demo can stand on a broken OSIS or non-reproducible install.
  • P3 ⊥ P4 — fully parallel. Different repos, different owners, no shared files.
  • P5 starts when P2 + P4 are green.
  • P6 runs continuously — file under each phase as polish becomes practical.

Final state — six things true at once

  1. One install path. service_<svc> install --download --reset works on a fresh Ubuntu for every service.
  2. One AI path. app → hero_lib → hero_aibroker → provider. No app rolls its own LLM client. Voice is one skill anyone drops in.
  3. One persistence path. hero_db is the only persistent store. Encrypted at rest by default.
  4. One theme path. Toggle light/dark in hero_os, every surface follows. Theme lives in hero_proc secrets, not env.sh.
  5. One agent path. service_agent_v3 drives every Hero domain through OpenRPC + Python flows. CRM data is real per-context. The agent grounds on docs_hero and live OSIS state, not hallucinations.
  6. One demo. herodemo.gent01.grid.tf reflects all of the above. The 24-hour killer demo plan (hero_demo#53) becomes credible.

Out of scope for this roadmap

Tracked separately, not gated by these phases:

  • TFTC customer onboarding — needs separate discovery.
  • "Demo fronts" alignment — meeting agenda, not engineering work.
  • L-05 (start --reset --download cargo purge) — parallel to P1, tracked at hero_demo#64.
  • D-05 UX gates (voice WS e2e, embedder semantic-search e2e) — fall under P4.
  • Phase 1 docs_hero content — own track at docs_hero#1.

How to use this issue

  • New work goes into the right phase here AND on project 13.
  • "Are we ready for P3?" → check the gate of P2; close any unmet items first.
  • When a phase closes, update this issue with ~~Phase X — closed YYYY-MM-DD~~ and start the next.
  • This issue stays pinned in project 13's description for visibility.

Source: meeting notes 2026-05-06 + recap session.

Signed-off-by: mik-tf

## Vision Hero OS becomes a sovereign AI-native desktop where the AI agent drives every domain (CRM, files, voice, library, calendar) through one client, one broker, one persistence layer, one theme — all reproducibly installable on any machine. ## Deploy-anywhere = P1 + P2 The install code path (`service_<svc> install --download --reset`) is the same whether a developer or an end-user runs it. P1 produces the CI artifacts; P2 makes the install scripts honest on a fresh Ubuntu. After P2 closes, "deploy Hero OS to any VM" is a real capability, not a coping strategy. P3-P6 tighten the architecture (one persistence, one AI client, one theme, one agent) but don't change deployability. [home#121](https://forge.ourworld.tf/lhumina_code/home/issues/121) (shared dev VM) stays useful as a *convenience* for new dev onboarding after P2, but it stops being the *only* path. ## Six phases, in order ### P1 — Binaries (in flight, gates everything) Close [home#212](https://forge.ourworld.tf/lhumina_code/home/issues/212). - **Bucket C** (7 nutools-wired repos with no published release): `hero_lib_rhai`, `hero_agent`, `hero_collab`, `hero_office`, `hero_planner`, `hero_logic`, `hero_mail` - **Bucket D** (4 off-radar repos with old-shape naming): `hero_compute`, `hero_ledger`, `hero_sync`, `hero_tfspores` **Gate:** every active `lhumina_code` repo publishes target-triple-named CI artifacts. `service_<svc> install --download --reset` works for every service. **Result:** Foundation under everything else. Install becomes reproducible at the CI artifact level. --- ### P2 — Devs unblocked (T1 blockers) After P1 is at least 80% — engineering team can't ship while these are open. **Current state (workaround):** [home#121](https://forge.ourworld.tf/lhumina_code/home/issues/121) — everyone works on the shared dev VM because individual machines aren't reproducible. P2 closes the gap so any machine works; #121 stays as the optional convenience, not the only path. - [hero_osis#38](https://forge.ourworld.tf/lhumina_code/hero_osis/issues/38) — fresh OSIS install has no Context records - [home#216](https://forge.ourworld.tf/lhumina_code/home/issues/216) — service install reproducibility - [home#217](https://forge.ourworld.tf/lhumina_code/home/issues/217) — branch cleanup ritual - [hero_skills#218](https://forge.ourworld.tf/lhumina_code/hero_skills/issues/218) — install scripts surface errors loudly **Gate:** OSIS runs on a fresh dev box; `service_install_all` is green-on-clean-Ubuntu in CI. **Result:** Any fresh Ubuntu — dev workstation, demo VM, or end-user deploy — runs the install and gets a working Hero OS. Same install code path serves both audiences. "Team out of sync" goes away; deploy-anywhere becomes real. --- ### P3 — One foundation story (T2 + T4) — parallel to P4 - **T2 hero_db migration:** [home#218](https://forge.ourworld.tf/lhumina_code/home/issues/218) META + per-service children - **T4 theme system:** [hero_os#128](https://forge.ourworld.tf/lhumina_code/hero_os/issues/128), [hero_proc#94](https://forge.ourworld.tf/lhumina_code/hero_proc/issues/94), [hero_proc#96](https://forge.ourworld.tf/lhumina_code/hero_proc/issues/96) **Gate:** zero direct redis usage in the workspace; light/dark toggle in hero_os propagates to every iframe + island + admin UI. **Result:** One persistence story. One theme story. --- ### P4 — AI client adoption (T3) — parallel to P3 [home#219 META](https://forge.ourworld.tf/lhumina_code/home/issues/219) + - [hero_aibroker#62](https://forge.ourworld.tf/lhumina_code/hero_aibroker/issues/62) — downloads models everywhere - [hero_aibroker#55](https://forge.ourworld.tf/lhumina_code/hero_aibroker/issues/55) — fail-fast / fallback chain - [hero_skills#219](https://forge.ourworld.tf/lhumina_code/hero_skills/issues/219) — voice integration skill canonical - [hero_voice#28](https://forge.ourworld.tf/lhumina_code/hero_voice/issues/28) — switch to parakeet - [hero_lib#134](https://forge.ourworld.tf/lhumina_code/hero_lib/issues/134) — fix CI in the process - [hero_agent#18](https://forge.ourworld.tf/lhumina_code/hero_agent/issues/18) — audit Timur MCP/Python work - [home#215](https://forge.ourworld.tf/lhumina_code/home/issues/215) — assistant non-functional (resolves at broker layer via #55) **Gate:** no app instantiates a non-`hero_lib` LLM client; aibroker downloads models for every provider; voice is one drop-in skill. **Result:** Every Hero app talks to AI the same way. The "AI making up stuff" / "AI not responding" classes of bugs end. Voice works in 5 minutes for any new app. --- ### P5 — CRM + Python flow shipping (T5 — the demo) Starts when P2 + P4 are green. - [hero_logic#23](https://forge.ourworld.tf/lhumina_code/hero_logic/issues/23) — e2e validate Phase 11 on demo VM (D + E merged 2026-05-06; e2e remains) - [hero_biz#37](https://forge.ourworld.tf/lhumina_code/hero_biz/issues/37) + [hero_rpc#42](https://forge.ourworld.tf/lhumina_code/hero_rpc/issues/42) — per-context routing (same root cause) - [hero_biz#38](https://forge.ourworld.tf/lhumina_code/hero_biz/issues/38) — many-to-many contact-company - [hero_biz#15](https://forge.ourworld.tf/lhumina_code/hero_biz/issues/15) — CRM AiClient through broker (child of P4) - [hero_biz#39](https://forge.ourworld.tf/lhumina_code/hero_biz/issues/39) — AI hallucinating CRM data — root cause - [hero_skills#220](https://forge.ourworld.tf/lhumina_code/hero_skills/issues/220) — `service_biz --demo` flag **Gate:** agent drives CRM end-to-end on herodemo with real per-context data, multi-company contacts, and no hallucinations. **Result (the killer demo):** ask the AI to add a contact in OWH context, link them to two companies with roles, and the right `Person` + `PersonCompanyLink` records appear in the right OSIS context. --- ### P6 — Polish + growth (continuous, no hard gate) - **T6:** [home#220](https://forge.ourworld.tf/lhumina_code/home/issues/220) (ONNX consolidation), [hero_office#25](https://forge.ourworld.tf/lhumina_code/hero_office/issues/25) (Scott) - **T7:** [hero_os#129](https://forge.ourworld.tf/lhumina_code/hero_os/issues/129) (multi-tab), [hero_proc#95](https://forge.ourworld.tf/lhumina_code/hero_proc/issues/95) (auto-start db), [hero_skills PR#215](https://forge.ourworld.tf/lhumina_code/hero_skills/pulls/215) (skill audit), [hero_memory#1](https://forge.ourworld.tf/lhumina_code/hero_memory/issues/1) **Result:** the v1 vision — ambient AI desktop with reusable surfaces. --- ## Parallelism - **P1 must complete first.** Everything below depends on a known-good `--download` install. - **P2 must complete before P5.** No demo can stand on a broken OSIS or non-reproducible install. - **P3 ⊥ P4** — fully parallel. Different repos, different owners, no shared files. - **P5 starts when P2 + P4 are green.** - **P6 runs continuously** — file under each phase as polish becomes practical. ## Final state — six things true at once 1. **One install path.** `service_<svc> install --download --reset` works on a fresh Ubuntu for every service. 2. **One AI path.** `app → hero_lib → hero_aibroker → provider`. No app rolls its own LLM client. Voice is one skill anyone drops in. 3. **One persistence path.** `hero_db` is the only persistent store. Encrypted at rest by default. 4. **One theme path.** Toggle light/dark in hero_os, every surface follows. Theme lives in `hero_proc` secrets, not `env.sh`. 5. **One agent path.** `service_agent_v3` drives every Hero domain through OpenRPC + Python flows. CRM data is real per-context. The agent grounds on `docs_hero` and live OSIS state, not hallucinations. 6. **One demo.** [herodemo.gent01.grid.tf](https://herodemo.gent01.grid.tf/) reflects all of the above. The 24-hour killer demo plan ([hero_demo#53](https://forge.ourworld.tf/lhumina_code/hero_demo/issues/53)) becomes credible. ## Out of scope for this roadmap Tracked separately, not gated by these phases: - TFTC customer onboarding — needs separate discovery. - "Demo fronts" alignment — meeting agenda, not engineering work. - L-05 (`start --reset --download` cargo purge) — parallel to P1, tracked at [hero_demo#64](https://forge.ourworld.tf/lhumina_code/hero_demo/issues/64). - D-05 UX gates (voice WS e2e, embedder semantic-search e2e) — fall under P4. - Phase 1 docs_hero content — own track at [docs_hero#1](https://forge.ourworld.tf/lhumina_code/docs_hero/issues/1). ## How to use this issue - New work goes into the right phase here AND on project 13. - "Are we ready for P3?" → check the gate of P2; close any unmet items first. - When a phase closes, update this issue with `~~Phase X — closed YYYY-MM-DD~~` and start the next. - This issue stays pinned in project 13's description for visibility. Source: meeting notes 2026-05-06 + recap session. Signed-off-by: mik-tf
mik-tf added this to the ACTIVE project 2026-05-06 17:45:05 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/home#221
No description provided.