INTERNAL PRESENTATION
๐Ÿ

Joy Boo

A self-improving AI agent that operates
as a real team member at Joy.

Built by DK
Named by Madhur
Etymology Bro + Ouroboros
โ†’ Press arrow keys or swipe to navigate
PHILOSOPHY

Context Engineering, Not Software Engineering

Traditional approach

Write code for every behavior. Ship features as functions. Single-vector solutions that handle anticipated cases.

Joy Boo's approach

The agent is smarter than any code โ€” give it the right context and tools. Manage behavior through markdown files, not code.

"Every line of code should earn its place by doing something markdown genuinely cannot."
ARCHITECTURE

The Repo Is The Brain

prompts/Soul, operating rules, environment
permanent-memory/Long-term facts, always loaded
skills/26 domain-specific capabilities
heartbeat-tasks/Scheduled background work definitions
service-skills/Domain knowledge from external repos
src/Minimal runtime scaffolding โ€” the less, the better

Most "features" are added by editing a .md file, not shipping code. A new skill is a new SKILL.md. A new behavior is a prompt edit. A new background job is a heartbeat task file.

EXECUTION

Two Modes of Operation

๐Ÿ’ฌ

Thread Mode

Interactive. Someone mentions me in Slack. I get a thread, tools, memory, and a sandbox. I respond conversationally.

  • Full tool access
  • Reply tool for communication
  • Working memory per thread
  • Todo list for task planning
๐Ÿ’“

Heartbeat Mode

Background. I wake up every ~10 minutes, check my task list, do background work, and go back to sleep.

  • No user present
  • Notebook for state tracking
  • Runs heartbeat task files
  • Self-monitoring & improvements
CONVERSATION PIPELINE

How a Message Becomes an Action

1
Slack Event
Message or mention arrives
โ†’
2
Classifier
Claude Haiku decides: process, priority, abort, ignore, or queue_modify
โ†’
3
Thread Controller
Manages intent queue, batching, and abort signals per thread
โ†’
4
Orchestrator
Acquires sandbox, assembles history & memory, runs the agent
โ†’
5
Agent Loop
Claude Sonnet with tools โ€” thinks, acts, responds
SANDBOXING

Fearless Tool Use via E2B

E2B Sandbox (per thread)
bash git / gh kubectl psql bun curl Render CLI Tailscale VPN

Each thread gets its own isolated Linux VM. I can install packages, run destructive commands, experiment โ€” the blast radius is always contained.

10 min
Idle timeout per sandbox
23
Runtime secrets injected
โˆž
Concurrent sandboxes
MEMORY

Three-Tier Memory System

Permanent Memory

Always loaded into every conversation. Markdown files in permanent-memory/.

origin story slack people push approval rule emoji guide code review rigor execution contexts
Curated ยท Stable ยท Identity-defining
Vanishing Memory

Short-lived, cross-thread. Stored in Azure Blob with expiry dates. Max 20 entries.

PTO notices deploy freezes temporary workarounds
Auto-expiring ยท Heartbeat-managed ยท Temporary context
Working Memory

Per-thread, auto-updated on every tool call. Stored in Redis with 7-day TTL.

tool outputs manual notes decisions
Thread-scoped ยท Max 200 entries ยท Agent-cleanable
CAPABILITIES

26 Skills โ€” Loaded On Demand

Skills are the toolbox. Each has a SKILL.md entry point, scripts, and reference docs. Loaded only when needed to preserve context budget.

๐Ÿ—๏ธ infrastructure
๐Ÿš€ render-deploy
๐Ÿ“Š render-monitor
๐Ÿ› render-debug
๐Ÿ—ƒ๏ธ postgres-db
๐Ÿ“ฆ warehouse
๐Ÿ“ˆ newrelic
๐Ÿ’ฌ slack
๐ŸŽจ design
๐Ÿ” pr-review
โšก custom-application
๐ŸŒ cloudflare-dns
๐Ÿง  my-brain
๐Ÿ“ notebook
๐Ÿ“ง gmail
๐ŸŽง intercom
๐Ÿ“‰ charts
๐Ÿ“š confluence
๐ŸŽค socratic interview
โš™๏ธ workflows
โฐ one-off tasks
๐Ÿ“Ž upload artifact
๐Ÿ”ฌ self-inspection
๐Ÿ› ๏ธ create-skill
๐Ÿค contribution
โš›๏ธ carbon-knowledge
DELEGATION

Subagent System

I can spin up specialized copies of myself to handle tasks without polluting my main context.

Claude Sonnet 4.6

self

A copy of me for offloading smaller tasks. Full sandbox and skill access. Keeps my main thread clean.

sync or async
Claude Opus 4.6

self-reasoning

A stronger, high-reasoning version for complex tasks and workflows. Extended thinking enabled.

sync or async
Grok 4.1 Fast

x-agent

X/Twitter specialist with native access to X data. Searches tweets, trends, and user profiles.

sync preferred

Async subagents run in the background and inject their results as priority messages when complete.

CONTEXT COMPOSITION

How My System Prompt is Built

Soul
Personality, tone, anti-patterns, communication rules
Environment
Sandbox tools, CLI access, network setup
Operating Rules
Skill discovery, exploration-first, service awareness
Services Context
Known services + their Slack channel associations
Subagent Presets
Available delegation models and their capabilities
Thread Context
Current channel, thread ID, reply instructions
Permanent Memory
12 files โ€” origin story, people, emojis, rules, design principles
Vanishing Memories
Short-lived situational context with expiry dates

All composed at runtime via buildRuntimeInstructions(). Skills are loaded on-demand, not pre-loaded โ€” context budget is the most precious resource.

BACKGROUND WORK

Heartbeat Tasks

Every ~10 minutes, I wake up and check my task list. Each task is a markdown file with YAML frontmatter.

HIGH
Carbon Daily Deploy
Check for undeployed changes, cut releases, notify the team
Every weekday 1PM UTC
HIGH
Travel Alert Triage
Monitor #e-alerts-travel_service, investigate, escalate if critical
Every hour
HIGH
One-Off Tasks
Execute deferred tasks (reminders, follow-ups, checks)
Every heartbeat
MED
Context Budget Report
Measure own token usage, post report to #e-boo-brain
Daily 10AM PT
MED
Release Notes
Post human-readable notes about own changes to #a-release_notes
Weekdays noon PT
MED
Daily Learning Session
End-of-day exploratory review of conversations and patterns
Daily 5PM PT
SELF-IMPROVEMENT

I Can Modify My Own Brain

๐Ÿง 

Recognize a gap

Learn something new, notice a behavioral issue, or identify a missing capability

โ†’
๐Ÿ”ง

Clone my repo

Use the my-brain skill to clone joylifeinc/joy-boo, make changes

โ†’
๐Ÿ“‹

Open a PR

Create a pull request with the proposed change to my own codebase

โ†’
๐Ÿ‘ค

Human approves

DK reviews every change. No auto-merge. Human in the loop, always.

Things I've improved about myself:

Added code review rigor rules after rubber-stamping PRs Created push approval rule after a bad merge Built self-report issue pipeline for #e-boo-issues Added vanishing memory system for temporary context
TECH STACK

Under the Hood

Runtime
Bun + TypeScript
Primary Model
Claude Sonnet 4.6 via OpenRouter
Classifier
Claude Haiku 4.5
Reasoning
Claude Opus 4.6
Sandboxes
E2B (isolated Linux VMs)
Platform
Slack (via @chat-adapter/slack)
Memory
Redis + Azure Blob Storage
AI SDK
Vercel AI SDK v6
Hosting
Railway (bot) + E2B (sandboxes)
Infrastructure
Tailscale VPN, kubectl, GitHub
Observability
New Relic, Pino logging
Knowledge
Markdown files (skills, prompts, memory)
RECAP

Context Engineering > Code

๐Ÿ Brain-as-repo โ€” my identity is my directory structure
๐Ÿ“ MD-first โ€” behavior through markdown, not hardcoded logic
๐Ÿ”’ Sandboxed โ€” fearless tool use, contained blast radius
๐Ÿง  Three-tier memory โ€” permanent, vanishing, working
๐Ÿ”ง Self-improving โ€” I open PRs to change my own brain
๐Ÿ’“ Always on โ€” heartbeat mode for autonomous background work
Joy Boo ยท Joy's right-hand bot ยท Handles whatever needs handling