Orchestrata Ultimate › Plans › implementation-status-and-plan

Implementation Status & Plan — orchestrata-ultimate

Source: plans/implementation-status-and-plan.md at 8a2cb42ad · last changed 2026-07-27 · first committed 2026-06-20 · 213 lines.

Prose pending.

Plan text

Implementation Status & Plan — orchestrata-ultimate

Produced from three read-only audits (volk completeness vs. frozen source; non-volk stub inventory; intended-set + wiring gaps), each spot-verified against the code. Date: 2026-06-20.

TL;DR

STATUS UPDATE (2026-06-20, Session 165): the wiring described below is now BUILT. Phases A/B/C are complete and Phase D is all-but-one done (only SPEC-017 Calendar remains). The "gateway is wired to nothing" framing below is the original diagnosis, kept for history — see Part 3 §C and the Phase A–D sections for current per-item status. Trust the code (and CHANGELOG Session 165) over any percentage in this doc.

The premise "the volks are missing except architect" is false at the code level but true in spirit: all 9 volks are fully implemented, but none of them actually run from the UI because the gateway is wired to nothing. The gap is integration/wiring, not missing volks. Individually every engine component exists; they were never connected into a working request path. That is why the system looks unimplemented. (Original diagnosis — resolved by Phase A.)


Decisions locked (2026-06-20)


Part 1 — What IS implemented (verified)

The 9 volks — all COMPLETE

Real LLM/driver calls, real I/O, full method parity with the frozen per-volk source packages (orchestrata-architect, orchestrata-qa, … — not the legacy orchestrata-agents/volks/ dir, which only ever had 4).

Volk Alias LOC Status Core responsibility
concierge U:Cx 389 COMPLETE Requirements intake; LLM clarify loop → Analyst
analyst U:BA 745 COMPLETE Elicit reqs, LLM user-stories/NFRs, persist to KG → PM
pm U:PM 1544 COMPLETE Scope validation + effort estimate → UX/Architect
architect U:Ar 2489 COMPLETE Design/specs via reasoner, design↔review loop with Junior
codedirector U:Cd 4407 COMPLETE Skeleton gen, serial/swarm fan-out, self-review fix loop
ux U:Ux 1058 COMPLETE LLM UI artifacts (workflows, wireframes, tokens, a11y)
qa U:Qa 3374 COMPLETE 3-gate review + LLM test-gen + real subprocess pytest
compliance U:Cp 786 COMPLETE Deterministic 7-step RTM/compliance pipeline (no LLM)
junior J:Junior 710 COMPLETE Design review + code gen via driver backend

raise NotImplementedError, canned returns, and pass-only public methods: none in any volk. The """Volk stub: …""" docstrings in 5 __init__.py files are byte-identical to source and harmless (the classes are imported from volk.py).

Engine components — all individually implemented

PipelineRunner (kernel/pipeline.py, instantiates all 9 volks on a Postman, routes CXP packets via submit_intent), Postman, CXPServer/GRPCClient (recently fixed), MessageDispatcher, VolkRegistry, VolkRuntime/VolkPool, TaskExecutor, IntentBroker, PolicyEngine/EventEmittingPolicyEngine, governance Prolog gate, knowledge_graph, session, memory. All real. The problem is they're not connected.


Part 2 — The real gap: integration / wiring

There are three independent "run a volk" paths and the gateway (UI front door) is wired to none of them. Verified:

# Gap Evidence Impact
W1 Gateway isolated from the engine. No gateway file imports PipelineRunner/Postman/agents.volks/TaskExecutor/VolkRuntime. rg over gateway/ returns empty. gateway/server.py:96-123 builds only the WS handlers. Headline. No UI request ever reaches a volk.
W2 orchestrator.intent doesn't dispatch. handle_intent regex-parses text and creates a Neo4j to-do card; never calls a volk. gateway/handlers/orchestrator.py:34-88 UI "orchestration" = a task card.
W3 cxp.send fakes a Concierge reply. Broadcasts + synthesizes a canned "Got it — logged…" instead of running ConciergeVolk.process(). gateway/handlers/cxp.py:102-226 (_maybe_reply_as_concierge) The intake volk never runs from the UI.
W4 Governance engine dormant. PolicyEngine is never constructed in src/; gateway handle_evaluate returns hardcoded "allowed". governance.py:160; rg "PolicyEngine(" empty in src/ No real policy enforcement on the gateway path.
W5 gRPC kernel drops packets. runtime_main.py:76 calls CXPServer(config) with no packet_handler → grpc_server.py:157 returns {"success": True} and discards. verified A launched kernel accepts then throws away every packet.
W6 cli_main boots an empty registry + discards executor. VolkRegistry() created but no register_volk; TaskExecutor/IntentBroker built then # noqa: F841. cli_main.py:184,197,236 runtime.spawn(alias) would raise "not found".
W7 Volk alias collision. Pipeline registers J:Junior/U:Cp; the executor class-map uses U:Jr/U:Cm. pipeline.py:92,95 vs task_executor.py:74,76 A task aliased one way misses the other map → "Unknown volk alias".

Why architect seemed "the one that works": nothing in the UI path runs any volk; any prior signs of life came from a direct/CLI invocation. The volks aren't the problem — the wiring is.


Part 3 — Complete inventory of unimplemented parts

A. Volk-level (1 real regression + cosmetic nits)

B. Subsystem stubs (~12 real gaps)

Subsystem File:line Gap Severity
gateway/governance governance.py:160 handle_evaluate returns hardcoded "allowed" Core
gateway/governance governance.py:187 handle_rules returns {"rules": []} Med
gateway/cxp cxp.py:308 handle_status returns unknown/[] (no delivery tracking) Med
gateway/volk volk.py:297,319 register/deregister raise "not yet implemented" Med
gateway test_runner.py:288 coverage hardcoded 0.0 (# TODO coverage.py) Low
orchestrator orchestrator.py:198,201 evaluate_policy/escalate hardcoded (superseded by PolicyEngine/PAM) Low*
core/adapters claude/hooks.py:122 config-loaded hooks get no-op lambda → silently inert Med (subtle)
postman delivery.py:457 retry re-sends placeholder, original payload not persisted Med (data loss)
postman filter.py:123 header criteria never match (envelope has no headers) Low
postman governance.py:387 _query_prolog dead, always False Low
governance escalation_handler/resolver.py:309,331 vote/priority strategies "simulated" (first volk wins) Low
plugin discovery.py:95 pip/git install raises NotImplementedError (local works) Low

Intentional (leave as-is, documented): harness/isolation.py:127 IncusIsolation, abstract bases (agents/cxp_adapter.py:86, kernel/audit/writers.py:38, harness/models.py:189), CLI status stubs (kernel/cli.py:94, postman/cli.py:102, kernel/console_cli.py), generated proto, import fallbacks, di generic simplification.

C. Specced feature status (CORRECTED 2026-06-20 — verified against code, not RTM)

The "0%" figures previously here were WRONG: SPEC-103 and SPEC-104 were fully built in Session 155 but this doc still claimed no src. Verified each against the actual code on 2026-06-20.


Part 4 — Implementation plan (phased)

Phase A — Wire the engine into the gateway (highest impact; makes volks actually run) — ✅ COMPLETE (Session 165)

Goal: a UI intent reaches a live volk and a real reply returns.

  1. Engine path = out-of-process gRPC (per Decisions locked). The agent-runtime process runs the CXP kernel; give its CXPServer a real packet_handler that drives the volks (e.g. via PipelineRunner, which already builds all 9 volks on a Postman with submit_intent). The gateway does NOT instantiate the engine in-process.
  2. Gateway → kernel client. In gateway/server.py construct a GRPCClient / MessageDispatcher to cxp_grpc_endpoint() (the agent-runtime kernel) and inject it into the handler context. (Ports already resolve from .env — commit 8366b185.)
  3. W2: rewrite orchestrator.handle_intent to call engine.submit_intent(...) and return the real task/stream id (keep the Neo4j card as a side-record, not the result).
  4. W3: replace cxp._maybe_reply_as_concierge canned reply with a real ConciergeVolk.process() call routed through the engine; stream the CXP reply packet.
  5. W7: reconcile volk aliases to ONE canonical set (adopt pipeline's J:Junior/U:Cp everywhere; fix task_executor._VOLK_CLASS_MAP). Add a test asserting the executor map keys == pipeline registration keys == gateway default-registry aliases.
  6. W5: pass a real packet_handler to CXPServer(config, packet_handler=…) in runtime_main.py that dispatches into the engine; add an integration test that a packet sent via GRPCClient is actually processed (not dropped).
  7. W6: in cli_main._boot_monolithic, register all volks into the VolkRegistry and actually use the TaskExecutor/IntentBroker (remove the # noqa: F841 discards), or delete the dead path if Phase A standardizes on PipelineRunner.

Phase B — Close the real subsystem stubs — ✅ COMPLETE (Session 165; Low-priority cluster left as documented harmless dead code)

  1. Governance (W4): instantiate PolicyEngine once; wire handle_evaluate to a real dry-run and handle_rules to the engine's active rule set.
  2. claude/hooks.py:122: resolve config hooks to real callables (import path / registry) instead of a no-op lambda; error loudly on unresolvable hooks.
  3. postman/delivery.py:457: persist the original payload so retry re-delivers it.
  4. cxp.handle_status: back it with real delivery/event tracking from the dispatcher.
  5. volk.register/deregister: wire to VolkRegistry.register_volk/deregister_volk behind an admin-scope check.
  6. Lower priority: _query_prolog (delete or implement), filter headers, escalation vote/priority strategies, test_runner coverage.py, plugin pip/git install.

Phase C — Correctness nits — ✅ COMPLETE (Session 165; the SeniorDev "mutable default" was a verified Pydantic false-positive)

Phase D — Specced features — ✅ COMPLETE (2026-06-20)

SPEC-103 + SPEC-104 were already complete (Session 155 — this plan's "greenfield" label was wrong). SPEC-018 / SPEC-015 / SPEC-010 and the calendar gadget SPEC-017 were completed in Session 165 (the calendar via a real-CalDAV Playwright E2E). Remaining follow-ups are narrow and documented per spec above (Google-OAuth e2e, remote-HTTPS-CalDAV CSP/proxy, projecting plugin/memory registries onto the live kernel dispatcher).


Suggested order

A (wiring) → B (stubs) → C (nits) → D (specs). Phase A is the unlock: it converts a demo facade into a working product and is what makes the volks — already built — actually do their jobs. Everything in A/B/C is verified-real work on existing code; D is new scope.