drippa
Back to drippa

Signal-First Planning Loop: Full MCP Surface

tl;dr: Five features ship the signal-first working loop — agents can now fire-and-forget signals, get rich intent reads, poll for reconciliation, record decisions, and the system won't hallucinate tool choices anymore.

Published Friday, July 3, 2026

The signal-first working loop is now live on MCP — your agents can ship signals and planning decisions without waiting for Drippa to process them. Signals get a fast ACK, then cluster onto intents in the background. Once clustered, agents poll for intent status, read the full reconciled state, and record their own decisions — triggering automatic plan updates derived from what they've decided.

This five-change roll closes the gap between write and read. capture_signal lets external agents drop a braindump, note, or scoped task into Drippa's world model and move on; the signal clusters asynchronously onto an intent within ~1 minute. Brief reconciliation on advance makes sure those new signals don't just stack on old ones — when the system advances an intent, it now re-reads the whole brief and reconciles it, dropping stale decisions, re-pointing todos whose justification changed, and resolving questions new evidence has answered.

On the read side, get_intent is enriched to pull questions and decisions alongside the plan and todos. A new intent_status tool keeps polling cheap — just { advancing, lifecycle_state, agent_confidence, open_question_count, updated_at } — so agents don't re-inject a massive intent blob on every status check. When reconciliation is done, they read the full result once. The write half lands record_decision and answer_question, two tools that let agents author intents by recording the calls they've made or the answers they've found; each write triggers an advance in the background, and the system re-derives the plan, todos, and framing from those decisions.

One more fix shipped this week: during live dogfooding, the scoping agent started confidently recommending Alembic migrations for a codebase that doesn't use Alembic. The agent's mandate is structural framing — not implementation mechanics — so it has no business naming a specific tool. The boundary is now explicit in the guidance, both in the agent's instructions and the skill docs: describe work at the capability level ("a migration that tightens a CHECK constraint"), not the tool level ("an Alembic migration"). The IDE agent with full repo access makes that call at execution time. This kills hallucinations for test runners, linters, ORM patterns, and every other tool category the scoper might guess at.

The signal-first loop unlocks turn-based planning over MCP — agent, Drippa, agent — where Drippa owns the intelligence and intent reconciliation, and your session owns the conversation.