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)
- Topology = out-of-process gRPC. Honor the
docker-composeservice split: the gateway (orchestrata-api) connects over gRPC to a separateagent-runtimeCXP kernel and a separateknowledge-graphservice. Phase A wires the gateway with aGRPCClientand gives the kernel'sCXPServera realpacket_handlerthat runs the volks — not an in-processPipelineRunner. - Containers = Incus, not Docker.
docker-compose.ymlis the topology reference only; deployment + harness isolation target Incus. Implementingharness/isolation.pyIncusIsolation(todayNotImplementedError) is in-scope. - Ports = single source in
.env, no hardcoded defaults — DONE (commit8366b185).CXP_GRPC_PORT/KG_GRPC_PORTlive in.env; code reads them at call time viacxp/endpoint_config.pyand raisesCXPConfigErrorif unset. This supersedes the earlier "pin everything to 50051" fix and the W5/W7 port notes below.
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)
- Concierge answer-replay dedup dropped — source
_seen_answers/prior_answers(volk.py:136,228) not ported (port volk.py:128,227). Real, small. - Nits: architect
architect_context.py:295hardcodes/opt/orchestrata/packages;SeniorDevAgent.constraints = []class-level mutable default (senior_dev.py:51); orphaned test-only mixins (analyst_parsing/storage); dead-but-faithful JS checks in qa/ux.
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.
- SPEC-103 Tool-Calling Refactor — ✅ DONE (Session 155).
src/orchestrata_ultimate/refactor/(agent.pyOBSERVE→MUTATE→VERIFY loop,tools.py7 sandboxed tools + dispatch), DeepSeek tool-calling in the provider layer, REFACTOR intent wired inintent_broker.py+ classifier precedence;scripts/refactor.pyCLI;tests/refactor/test_tools.py(21 pass). - SPEC-104 OpenSpec Format — ✅ DONE (Session 155, commit 3cce7854).
src/orchestrata_ultimate/openspec/(detect/parse/render/repo); detect, parse, render, validate, delta-edit with sandboxed I/O;tests/openspec/test_openspec.py(16 pass). (The earlier "openspec/ dir is unrelated" note was false.) - SPEC-018 Fireflies — ✅ DONE (Session 165). Read-side handler + write-side KG sync
(
integrations/fireflies_sync.py, idempotent:DocumentMERGE); real-Neo4j tests. - SPEC-015 Plugin SDK — ✅ DONE (Session 165). Runtime load/registration now wires into
real registries (
PluginManageraccepts them;plugin/registries.py::VolkRegistry); tested end-to-end. (pip/git install still NotImplementedError — local works; tracked in Part B Low.) - SPEC-010 Memory Engine — ✅ DONE (Session 165). Engine was complete; now reachable via
memory.*gateway RPC (gateway/handlers/memory.py); real-Redis tests. (Kernel/volk-pipeline use of the engine is a follow-up.) - SPEC-017 Calendar Integration — ✅ DONE (Session 165). Browser-side gadget
vizint-ui/gadgets/calendar/(ical parse/build, day-view timeline, realCalDAVProvider+GoogleCalendarProvider,SessionCalendarSync); registered inapp.js;index.htmlCSP extended for calendar origins. Real-infra tested: 21 vitest units + 3 Playwright e2e against a real local CalDAV server (tests/e2e/caldav_server.py), no fetch mocking. Follow-ups: Google OAuth e2e (needs real Google), remote-HTTPS-CalDAV CSP/proxy.
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.
- Engine path = out-of-process gRPC (per Decisions locked). The
agent-runtimeprocess runs the CXP kernel; give itsCXPServera realpacket_handlerthat drives the volks (e.g. viaPipelineRunner, which already builds all 9 volks on aPostmanwithsubmit_intent). The gateway does NOT instantiate the engine in-process. - Gateway → kernel client. In
gateway/server.pyconstruct aGRPCClient/MessageDispatchertocxp_grpc_endpoint()(theagent-runtimekernel) and inject it into the handler context. (Ports already resolve from.env— commit8366b185.) - W2: rewrite
orchestrator.handle_intentto callengine.submit_intent(...)and return the real task/stream id (keep the Neo4j card as a side-record, not the result). - W3: replace
cxp._maybe_reply_as_conciergecanned reply with a realConciergeVolk.process()call routed through the engine; stream the CXP reply packet. - W7: reconcile volk aliases to ONE canonical set (adopt pipeline's
J:Junior/U:Cpeverywhere; fixtask_executor._VOLK_CLASS_MAP). Add a test asserting the executor map keys == pipeline registration keys == gateway default-registry aliases. - W5: pass a real
packet_handlertoCXPServer(config, packet_handler=…)inruntime_main.pythat dispatches into the engine; add an integration test that a packet sent viaGRPCClientis actually processed (not dropped). - W6: in
cli_main._boot_monolithic, register all volks into theVolkRegistryand actually use theTaskExecutor/IntentBroker(remove the# noqa: F841discards), or delete the dead path if Phase A standardizes onPipelineRunner.
- Acceptance: end-to-end test — UI
orchestrator.intent(orcxp.send) → Concierge runs → reply returns; plus the alias-consistency test. (Reuse the/rundebug-stack demo from this session to validate against live Redis/Neo4j.)
Phase B — Close the real subsystem stubs — ✅ COMPLETE (Session 165; Low-priority cluster left as documented harmless dead code)
- Governance (W4): instantiate
PolicyEngineonce; wirehandle_evaluateto a real dry-run andhandle_rulesto the engine's active rule set. - claude/hooks.py:122: resolve config hooks to real callables (import path / registry) instead of a no-op lambda; error loudly on unresolvable hooks.
- postman/delivery.py:457: persist the original payload so retry re-delivers it.
- cxp.handle_status: back it with real delivery/event tracking from the dispatcher.
- volk.register/deregister: wire to
VolkRegistry.register_volk/deregister_volkbehind an admin-scope check. - Lower priority:
_query_prolog(delete or implement), filter headers, escalation vote/priority strategies, test_runner coverage.py, plugin pip/git install.
- Acceptance: a regression test per gap (pattern: the
test_grpc_kernel_endpoint.pyguard added this session — reintroduce-the-bug-and-watch-it-fail).
Phase C — Correctness nits — ✅ COMPLETE (Session 165; the SeniorDev "mutable default" was a verified Pydantic false-positive)
- Restore Concierge
_seen_answers/prior_answersdedup (+ test for replayed answers). - Fix
SeniorDevAgent.constraintsmutable default (→None+ per-instance init). - Resolve the architect
/opt/orchestrata/packageshardcoded path (env/config). - Remove orphaned test-only mixins or fold their tests onto the live classes.
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.