Esperta Code is a self-hosted cloud agents platform. It orchestrates coding agents to turn Linear issues into merged pull requests — autonomously.
Runtime: Bun (TypeScript). Specs live in specs/ with specs/index.md as the master index.
Commit on milestones — after each meaningful step (e.g., tests green, feature wired in, docs updated). Commit at least once for each small task. Do not batch unrelated changes into a single large commit.
Use conventional commits:
type(scope): description
Types: feat, fix, docs, chore, refactor, test, ci
Scope is the module or area (e.g., poller, orchestrator, agents, context, linear, cli, pipeline, workspace, specs).
Examples:
feat(poller): add Linear GraphQL polling loopfix(orchestrator): handle retry backoff overflowtest(agents): add Claude Code adapter unit testsrefactor(context): extract snapshot builder
All implementation must follow the specifications in specs/. Read the relevant spec before writing code.
specs/architecture/index.md— domain model and data typesspecs/configuration/index.md— config schemas and pipeline definitionspecs/linear/index.md— Linear integration (GraphQL + Chat SDK)specs/context/index.md— context management layersspecs/orchestration/index.md— state machine and concurrencyspecs/agents/index.md— agent adapter interface and pipeline execution
If the spec is ambiguous or incomplete, ask before guessing.
Use red-green testing (TDD):
- Red — Write a failing test first that describes the expected behavior.
- Green — Write the minimum code to make the test pass.
- Refactor — Clean up while keeping tests green.
Do not write implementation code without a corresponding test. Do not skip the failing test step.
Test runner: bun test
bun install # install dependencies
bun test # run tests
bun run lint # lint
bun run build # build