Event-driven session continuation engine for AI coding agents. Resumes agent sessions when runtime conditions are met via MCP tools.
RuntimePulse defines 5 tools with complete input schemas and descriptions. Naming follows verb_noun convention (create_watch, get_events, cancel_rule, create_rule, wait_for_event). Descriptions are substantive (100-250 chars) and explain WHEN to use each tool. However, output schemas are inferred from Go struct tags rather than explicitly documented in the tool registration, and error handling lacks recovery guidance. Parameters are well-described with format hints (e.g., 'Go duration, e.g. 2s'), but no enums constrain free-form strings like 'type' (http|tcp|file|process|docker|git). The create_rule tool is complex with 9 parameters and undocumented interdependencies (agent+repoPath must be paired for self-registration). Overall solid for a domain-specific tool, but lacks the polish of production-grade tools.
Cancel a pending rule by id.
Bind an event to a session resume: when eventType (optionally from source) fires, resume sessionId with the rendered prompt. Use YOUR OWN session id; pass agent+repoPath to register the session in the same call. Prefer oneShot:true for wake-me-once. After creating the rule, END YOUR TURN — you will be resumed with the prompt as a new turn; do not poll or wait.
Watch a runtime condition. Emits the current state immediately on creation, then events on state transitions — so create the matching rule BEFORE the watch to catch an already-met condition.
Query recent events, newest first, optionally filtered by type.
Block your current turn until a matching event is published (live only; events before the call are not seen), or until timeoutSeconds elapses. Use only for conditions expected within seconds. For 'is it already ready?' or longer waits, prefer create_rule + create_watch and end your turn.
Output schemas not explicitly documented. Go struct tags (WatchOutput, GetEventsOutput, etc.) define return types, but MCP tool registration does not include outputSchema. LLMs cannot plan downstream calls without knowing what fields to expect.
Free-form string parameters lack enum constraints. 'type' in create_watch accepts http|tcp|file|process|docker|git but is not declared as an enum. LLMs may hallucinate invalid values like 'ftp' or 'ssh'.
create_rule has 9 parameters with undocumented interdependencies. The description states 'with repoPath, self-registers the session' but does not explicitly say agent and repoPath must be paired, or what happens if only one is provided. This invites misuse.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Error handling lacks recovery guidance. Tool handlers return generic errors (e.g., from c.Call()) without categorizing them as retryable, user-fixable, or fatal. LLMs receive no guidance on next steps.
No pagination support in get_events. The 'limit' parameter defaults to 100 but there is no offset, cursor, or total_count. Large event streams will be truncated silently, and the LLM cannot iterate through results.