UserPromptSubmit
Before the agent acts: retrieve candidates, judge relevance, inject only the decisions this task would touch — usually one, a few when it spans several. Silent by default. Always exits 0.
The lifecycle, the store, and the judge — the whole loop that puts your project’s decisions in front of the agent before it edits the code.
OneCue
open source · onecueai/onecue-cli
The decision layer for coding agents. Your agent reads your project’s decisions before it edits.
Your agent forgets your decisions between sessions. Hooks capture them on the way out and surface the one that matters on the way in, with no LLM and no network on the recall path.
onecue17 decisions0 violated78% context saved
Illustrative onecue doctor line.Before the agent acts: retrieve candidates, judge relevance, inject only the decisions this task would touch — usually one, a few when it spans several. Silent by default. Always exits 0.
Records a cheap receipt: which files the turn touched. Never stores raw tool output.
Turn complete: extract any durable decision from the exchange and write it to .onecue/decisions/.
Marks the session closed. Kept minimal. The shared end-of-session budget is tight.
Plain Markdown, readable by you and the agent. The frontmatter carries the reason and provenance; the body is the decision itself.
---
kind: "decision"
outcome: "rejected"
reason: "Redelivered webhooks double-charged a customer."
files: ["src/webhooks/stripe.ts"]
---
Claim the Stripe event id in processed_events before
applying a payment. Retries redeliver the same event.Precision over recall. The unsolved half of the problem is not storing context. It is refusing to inject the wrong one.
Decisions are not a flat pile. They point at each other, and recall reads the links — so you get the current decision, and a warning when two disagree instead of one side picked in silence.
Install it and watch the first decision get captured.
Install OneCue