Orchestrata Ultimate › Plans › spec-021-multiplatform-producers

SPEC-021 multi-platform conversation producers — kimi (IRC) + Claude Code

Source: plans/spec-021-multiplatform-producers.md at 8a2cb42ad · last changed 2026-07-27 · first committed 2026-07-13 · 89 lines.

Prose pending.

Plan text

SPEC-021 multi-platform conversation producers — kimi (IRC) + Claude Code

User directive 2026-07-13: "Apply the same plugin specs to 1. kimi 2. claude code." The W1a backend (knowledge_graph/conversation_consumer.py, landed a194d41b) is platform-agnostic by design — message v2 carries a platform field, the consumer never whitelists it, and conversation_entity_id/conversation_turn_entity_id take producer-bare natural ids. Applying SPEC-021 to a new platform therefore means ONE thing: a producer that emits message v2 onto orchestrata:conversation:queue, plus that platform's native integration surface. The ontology contract (plans/contracts/spec-021-ontology.contract.json) is unchanged.

Shared rules (both producers)

1. Claude Code producer (scripts/claude_turn_capture.py)

2. kimi/IRC producer (extends scripts/_irc_listen.py + _irc_send.py)

Verification (both)

End-to-end proof per producer: enqueue real turns → run the LANDED ConversationQueueConsumer.flush() against real Redis + Neo4j → assert the Conversation/ConversationTurn nodes and HAS_TURN edges exist with correct project-qualified ids. No doubles anywhere. IRC tests run against the real localhost:6667 miniircd with test-id-scoped channels/nicks.