The week, side by side

A typical first week, with and without.

day 1WithoutSlack DMs to 4 different teammates; reads the wiki that's 14 months stale.
day 2WithoutSets up dev env. Three breaks. Two "ask your buddy" loops.
day 1 · ctxOSWithOpens IDE. Agent already knows the stack, the auth pattern, the ADRs.
day 2 · ctxOSWithSubmits first PR. Agent applied the team's procedural rules.
day 5 · ctxOSWithAlready shipping mid-complexity tickets; mentor reviews instead of teaches.
Day 1 — verbatim

A new hire's first hour, with Statefulai on.

Real prompts from a beta team. Names changed, references real.

@new-hire · 09:14
› Where do we keep auth middleware? And what's the convention for adding a new protected route?
claude · ctxOS
Auth middleware lives in src/server/auth/*. The pattern is requireSession() wrapping each route handler; it sets req.user and 401s on missing cookies. We decided cookies over JWT in ADR-007 (Mar 21). Want me to scaffold a new protected route? ▸ semantic: src/server/auth/* · episodic: ADR-007 · procedural: @no-jwt-cookies
@new-hire · 09:22
› Yes please, route GET /api/me
claude · ctxOS
Drafted in src/server/routes/me.ts · 18 lines. Includes requireSession(), Zod input parsing, and the standard ApiResponse<User> envelope. Tests added. pnpm typecheck and pnpm test --filter routes pass locally. ▸ procedural: @zod-on-boundary · @pnpm-typecheck-pre-commit
@new-hire · 09:31
› Why don't we just return the raw user object? Wiki says we do that.
claude · ctxOS
The wiki is stale. ADR-019 (Aug 10) introduced the envelope after a PII-leak audit. We strip email + phone for non-self requests; the envelope's audit field carries the redaction reason. The wiki page hasn't been updated — flagging to @rena to refresh. ▸ episodic: ADR-019 · semantic: ApiResponse · procedural: @redact-pii
Notice what didn't happen. No "let me check," no "I'll ask Rena," no Slack interruption. The agent had the ADR, the rule, and the runtime evidence — and it cited every one.

Without memory

  • Wiki drift — new hires ingest patterns that haven't been true for 18 months.
  • Mentor tax — senior engineers field 8–12 hours/week of FAQs.
  • Same agent re-prompted with stack details every session.
  • Reviewers spend cycles rejecting first PRs for missing conventions.
  • "Why" questions take days to surface a real answer.

With Statefulai

  • Agent answers reflect the latest decisions, not the latest wiki edit.
  • Mentors review code instead of teaching environment setup.
  • First PR is on day 2 — and it already passes lint, types, and team conventions.
  • Stale docs get auto-flagged when the agent's answer disagrees with them.
  • Procedural rules apply silently; new hires absorb conventions by osmosis.
How it works

Three layers, working in concert.

Semantic layer answers "where does X live?"

The architectural graph knows every module, contract, and symbol. Onboarding queries that used to require a Slack-then-grep loop become a single hop.

Episodic layer answers "why is X like this?"

ADRs, decisions, incidents — and the conversations that produced them — linked back to the code. The "why" is never more than one citation away.

Procedural layer applies "how we do it here."

The new hire's first PR follows lint rules, naming patterns, and team conventions automatically — because the agent retrieved them alongside the task context.

avg ramp
9 days
to mid-complexity tickets
first PR
day 2
vs day 11 historic median
mentor hours
−12/wk
freed for review and design
stale-doc flags
23/mo
on a 40-engineer team
Onboarding · accelerated

Give your next hire an agent that already knows the codebase.

Get early accessRead the docs