Your coding agent stops guessing about your codebase.
becos keeps your team's decisions, conventions and history as one shared record, and holds every agent answer to it. When the record has the answer, the agent gives it — with the commit or message it came from. When it doesn't, the agent says so instead of inventing one.
Probably for ACID guarantees, and because the team already runs Postgres. It likely also cuts the operational overhead of maintaining a message broker.
plausible — not grounded in your historyInvoice and ledger rows are written in one transaction, so a partial write can't leave billing inconsistent. The event-bus design was prototyped on spike/event-bus-billing and dropped — it needed a reconciler for partial writes.
commit a7f3c9e billing: move ledger writes to Postgres "spike/event-bus-billing showed we'd need a reconciler for partial writes. one transaction over invoice+ledger is simpler and we already run Postgres. closing the spike." changed: services/billing/ledger.py (+142 -0), migrations/041 (+18 -0)
How becos shapes an answer
The record isn't a bigger prompt. It changes what the agent is allowed to say and how sure it gets to sound.
Grounds every claim
An answer is held to what the record supports. Lines becos can't back are dropped, not guessed — the agent tells you the record is silent instead.
Catches contradictions
A draft answer that conflicts with a recorded decision is flagged against the decision that overrides it, before it reaches you.
Stays on your team
Only your team's record is in play. Isolation is structural — another team's history can't leak into your agent's context.
Knows what's current
Superseded values are marked superseded; a pending or failed fact is never handed back as settled truth.
Every fact resolves
Click any citation and becos returns the exact commit or message it came from — verbatim, with no model in the loop.
Answers who & why
Repos, branches, features and authors are linked entities, so “who owns this, and why is it built this way” resolves against structure.
One engineer works it out — everyone's agent knows it
becos collates what each person figures out with their agent into one shared record, then feeds it back to every teammate's agent — whichever tool they use.
Sharper answers, across the work
Same model, same prompt. The difference is whether it can see what your team already decided.
Wraps the handler in a 3-attempt loop with exponential backoff and re-runs the full charge on each retry.
reintroduces a pattern your team removedKeys ledger inserts on (invoice_id, attempt) so a replayed webhook is a no-op. A naive retry loop caused a double-charge in April 2026 and was deliberately replaced with idempotent writes.
Most likely in middleware/rate_limit.py, or configured at the API gateway.
gateway/throttle.py, added by @dan after the Q1 credential-stuffing spike. Limits are per-tenant; the values live in deploy/limits.yaml.
Yes — if nothing in the codebase references it and you've taken a backup, it's safe to drop.
misses a live dependencyNot yet. auth/migrate.py still backfills from legacy_users on login until the SSO cutover — scheduled for Q3 2026 and not done. Dropping it now breaks first-login for un-migrated accounts.
Adoption outran trust
Agents are everywhere; confidence in what they output isn't. Holding answers to a checkable team record is how that gap closes.
Sources: Black Duck / UserEvidence 2026 (831 engineers) · Stack Overflow 2025 Developer Survey · EU AI Act implementation timeline. Cite primary reports before external use.
A knowledge graph of your repos, not a pile of notes
becos keeps repositories, branches, features and authors as linked entities with rename-safe identity — so a question about ownership or history resolves against structure, not a keyword match.
What changes in the answers
| Agent alone | Agent + becos | |
|---|---|---|
| A “why” question | A plausible guess with no source | The recorded reason, dated and cited |
| Your conventions | Reinvents patterns you've already dropped | Uses the established pattern, and the incident that set it |
| Files & owners | May name a path that doesn't exist | The real module and who owns it |
| Risky changes | Confident “yes” | Surfaces what still depends on it |
| Past decisions | Forgotten between sessions | Decision, author, date, and whether it's still current |
| As the team grows | Memory is per-session, per-laptop | One shared record every agent reads |
Where the grounding goes next
Today becos grounds answers in what's true now. Two capabilities are in active design.
Decision archaeology
Ask what the answer would have been six months ago. becos reconstructs the state of a decision at any past date — not just its latest value — over a ledger that already carries valid-time.
Layered recall
Broad, cheap triage first; full cited evidence pulled only for the facts that survive — so grounding stays fast even over a long history.
Give your agents the memory your team already has
Connect one repo, point your agents at it, and ask the “why” question you'd normally have to walk over to someone for.
Get started