Skip to content
Engineering Athena

Engineering Athena

Engineering intelligence on demand.

Engineering intelligence on demand, in the form the work needs it:

  • the rules that bind a change
  • a guide for building something new
  • a flow when the job has steps
  • research when the question is wider than the task

Curated, kept current. Connect once — nothing is added to your repositories.

coding agent · svc-billing
Add a POST /orders endpoint to svc-billing
athena_route("add a POST /orders endpoint to a FastAPI service")
Layered architecture — View → Facade → Service → Repository
FastAPI standards — routers hold no business logic
API design — resource naming, status codes, errors
athena_rules(paths, topics)
14 graded rules · ~520 tokens · 2.1 KB
athena_guide("add an endpoint to a FastAPI service")
the worked example, router through repository
router + facade + service + repository + schemas,
then the migration
per Layered architecture

athena_rules("what this change touches")

  • MUSTView -> Facade -> Service -> Repository -> Model. Never skip, never call backwards.
  • MUST NOTNo ORM or SQL outside the data-access layer.
  • MUST NOTNo HTTP objects inside a service.
  • MUSTPydantic v2 in and out of the API. No dict[str, Any] crossing a boundary.
  • MUSTOnly the session dependency commits. Repositories flush().
  • SHOULDA service method does one thing and returns a domain object.

~520 tokens · 2.1 KB

whole handbook ≈ 50,000

the plan

  1. 01router
  2. 02facade
  3. 03service
  4. 04repository
  5. 05schemas
  6. 06migration

sub agents · in parallel

claude codecodexcursor— or any agent that speaks MCP

each pulls its own rules and guide

sub agent 01implement the endpoint

diff · 3 files · tests green

sub agent 02review the diff

no MUST violations · 2 nits

sub agent 03review security rules

auth and input checks pass

sub agent 04update the docs

API reference and runbook updated


The problem

You wrote the standards. Nothing reads them.

All five have the same root cause. The knowledge lives somewhere that is not where the work happens, so it has to be carried there by a human who remembers. Under deadline, nobody remembers — which is exactly when the rules mattered.

A CLAUDE.md per repo fixes maybe 60% of this for free and you should do it today. Athena exists for the part that does not fit in 100 lines and must not be copied eleven times.

How it works

Knowledge on demand, in four pillars.

Athena serves what the task needs, in the shape the task needs it: graded rules, working guides, multi-step flows, or deep research. The agent asks for what it is trying to get done; the pillar decides what comes back.

  • Rules

    API design

    • MUSTplural, lowercase routes — /api/v1/orders
    • MUSTPATCH for partial updates, never PUT
    • SHOULDidentifiers opaque to the client

    Graded best practice, pulled for the task in front of the agent, so what it generates adheres to your standards rather than to the average of GitHub.

    athena_rules

  • Guides

    • > auth in djangoJWT with djoser, step by step
    • > RBAC in fastapiguide + code snippet
    • > business logicfacade pattern + SRP

    How to build a thing here, with worked examples and real code.

    athena_guide

  • Flows

    Set up and deploy a full-stack app

    • 01 fastapi cookiecutter template
    • 02 react vite template
    • 03 gcp + pulumi cli
    • 04 rules: infrastructure · guide: cloud run
    • 05 rules: gh actions · guide: ci/cd

    Multi-step processes composing rules and guides. A flow does not hand back a list of steps — it tells the agent to spin up one sub-agent per step, and each of those pulls its own rules and its own guide for its own step.

    athena_flow

  • Knowledge

    • > SQS or Kafka for this queue?
    • > what does a checkout flow need?
    • > how to design multi-tenancy?

    Deep research on a wide topic, returned as synthesis rather than as raw passages.

    athena_knowledge

The four pillars are the interface, not the filing system. Underneath they stay organised by topic, and neither the topics nor the filing are something a caller can walk.

The mechanism

Watch an agent do the reading.

The agent describes its task. Athena tells it which pillar and which call, returns exactly what that step needs, and the agent comes back citing the standard it used — by name, so you can open it and argue with it. A small toolbox, not forty tools.

An agent cannot create or alter a rule. It can ask, and it can report that something was missing. It cannot promote its own opinion into the standard it will be judged against next week. The standards change through reviewed pull requests.

one real session · three tool calls · one fan-out
> Add a POST /orders endpoint to svc-billing
athena_route("POST /orders endpoint in svc-billing")
flow work · rules bind it, a guide covers it
next: athena_rules · athena_flow
athena_rules(what the change touches)
14 graded rules · no prose, no examples
MUST routers stay thin — logic lives in services
MUST migrations ship with a downgrade path
athena_flow("add an endpoint")
3 steps · fan out — one sub-agent per step
each brief carries only what its step needs
fan-out · 3 sub-agents · one athena_brief each
01 implement · pulled “Layered architecture”
02 tests · pulled “API conventions”
03 review · pulled “Database migrations”
each cites the standard it used — by name
The tools the Athena MCP server exposes, which of the four content categories each one serves, and what it is for.
ToolCategoryWhat it is for
athena_routeDescribe the task; get told which pillar and which call
athena_rulesRulesWhat binds the change being made
athena_guideGuidesHow to build one thing, with code
athena_flowFlowsMulti-step work, and the instruction to fan out
athena_briefFlowsOne sub-agent's payload, for one step
athena_knowledgeKnowledgeDeep research on a topic
athena_getRedeem a reference the agent was already given
athena_feedbackReport what was missing — the one write

Categories are the four pillars above. Route, get and feedback serve all of them. Responses are capped and scoped to the question asked: there is no bulk call, no listing, no count of what exists and no directory to walk — athena_get redeems a reference Athena already issued rather than looking anything up by address, and athena_feedback is the only tool that writes, with what it writes being a report, never a rule.

Context economy

Ask for the rules, not the library.

Context is the budget you are actually spending. A 200 KB handbook in every session is worse retrieval than three relevant pages, and it crowds out the code the agent is supposed to be reading.

So the rules are served separately from the prose. athena_rules returns the graded assertions for what the change actually touches — about 2 KB — with no rationale, no examples, no diagrams. That is what an agent needs to enforce a standard. The why is still one athena_get away, for the human who wants to argue — the rules response carries the reference, and redeeming it is what brings the prose back.

Same reason the toolbox is small instead of forty tools. Every tool schema is injected into context on every request. A large toolbox makes an agent worse, not better.

one 200,000-token context window

  • Whole handbook in CLAUDE.md

    50,000 tokens

    Whole handbook in CLAUDE.mda quarter of the window

    75%

    room left for your code

  • Three relevant pages

    9,000 tokens

    Three relevant pageswhat a search returns

    95%

    room left for your code

  • athena_rules(what the change touches)

    520 tokens

    athena_rules(what the change touches)the graded assertions only

    99%

    room left for your code

Breadth

The build is one stage out of twelve.

Teams adopt AI at the point where code gets typed and wonder why throughput barely moves. The expensive parts are upstream and downstream: deciding what to build, breaking it down honestly, and finding out why it broke in production.

Athena carries the standard for every stage, and the gate between each one. Agents draft. Humans decide. The artefacts — a spec, a plan, a reviewed diff — are what make the next stage cheap.

07 · Scaffold

Start a FastAPI service. Django, our way.

athena_flow("start a FastAPI service")

One sub-agent per step: the generator, the answer set prompt by prompt, then the post-generation delta.

The lifecycle page is in review and several stages are still being expanded. The twelve stages and the gate between each one are real; depth behind every one of them is not claimed yet.

Scaffolding

A new service, to your standard, in 30 minutes on prod.

The agent reads the setup pages, asks you the four questions it is not allowed to decide, runs the generator, applies the post-generation delta, and then verifies the day-zero checklist item by item with evidence.

It does not create the repo, the cloud resources or the secrets. It writes the infrastructure and the commands; you run them. An agent that provisions unattended is an unreviewed deploy.

Step 1Four questions

decisionagenthuman
Should this exist?not the agent's to decidedecided by a human
Ownernot the agent's to decidedecided by a human
Data ownershipnot the agent's to decidedecided by a human
Tiernot the agent's to decidedecided by a human

Step 2Generate

$ uvx cookiecutter gh:cookiecutter/cookiecutter-django
project_name · use_docker: y · postgresql_version · cloud_provider: GCP …
answers come from the handbook's answer table, prompt by prompt

Step 3Apply the delta

  • uv.lock
  • Dockerfile.prod
  • justfile
  • app/{api,services,repositories}/
  • .import-linter — the layer contract

Step 4Verify

  • CI green on first push · workflow run
  • container builds & runs · image digest
  • Sentry receiving events · test event id
  • layer contract enforced · import-linter pass
  • staging reachable · health check 200
  • structured logging wired · sample line
  • branch protection · needs a human
  • runbook owner named · needs a human

24 items on the full checklist. Two stay amber until a human signs them — deliberately.

Step 5Gated

  • repo settings · you run this
  • cloud apply · you run this
  • secrets · you run this
  • Sentry project · you run this

Time to live

Minutes to a deployed skeleton. Thirty to your first feature PR on prod.

What takes minutes: a service that builds, runs in a container, passes CI, reports errors to Sentry and reaches staging. Not because anything was skipped — because the generator, the multi-stage image, the compose files, the CI workflow and the error tracking are standards Athena hands the agent, not decisions you make at 16:40 on a Thursday.

What takes the rest of the 30 minutes: the day-zero checklist. Owner, tier, data ownership, branch protection, secrets, infrastructure, the layer contract, the runbook. We will not tell you that part is instant. We will tell you it gets done, item by item with evidence, instead of becoming a ticket nobody picks up.

one image, built once, promoted

  1. local
  2. CI
  3. staging
  4. production
  5. never re-rendered between stages

drawn to scale

minutes — skeleton deployed, CI green, Sentry live

minute 30 — day-zero checklist done with evidence, first feature pull request on prod

Measured: “minutes” from uvx cookiecutter to a green pipeline, a container in staging and Sentry receiving events. “Thirty minutes” from the same start to the first reviewed feature pull request on prod with the checklist complete. Both are handbook pages, linked from this one — not marketing claims.

Four environments from the first commit — one image, built once and promoted. Parity is the shape the service starts in, not a later project. And the same shape three times: FastAPI, Django, React. One handbook, one layering, one delivery path.

Building agents

An MCP server that teaches you how to build MCP servers.

Our stack is Python, LangGraph and Claude. The questions that cost weeks are not “how do I call a model”. They are: should this be an agent at all, or a function? Where do the boundaries go? How do you retrieve without poisoning your own context? What makes a tool an agent uses correctly rather than confidently wrong? What happens when a tool result contains an instruction?

Athena is an instance of its own answers. A small toolbox, not forty tools, because every schema costs context. No agent writes to the standards — it can ask, and it can report what was missing; changing a rule takes a reviewed pull request. Rules served apart from prose. Tool output treated as untrusted. You can read the design and the decision record for the thing you are connecting — then disagree with it in a pull request.

athena_routeathena_rulesathena_guideathena_flowathena_briefathena_knowledgeathena_getathena_feedbackask, don't browseno agent alters a rulea small toolboxoutput untrusted

Multi-agent by design

Ask Athena to plan the work and it returns the plan for a multi-agent run: how many agents to spin, which knowledge each one needs, and what each should pull and do — before anything runs. The scaffold agent gets the setup pages, the infra agent gets the delivery rules, the design agent gets the design-to-code standard, and the gate between them stays human.

Athena does not run your agents. It carries how we run ours — the architecture, the evals, the cost controls, the security rules — and your agents run wherever you put them.

Debugging

From production error to reproducing test.

Sentry already holds the stack frame, the locals, the release and the suspect commit. Athena holds the rule that says the agent must reproduce the failure with a test before it proposes a fix.

No reproduction, no fix. If the agent cannot reproduce it, its output is a hypothesis and it has to say so. And it never resolves the issue — closing an issue is a claim that the defect is gone, and only a human gets to make it.

Sentry issuefetch eventlocate framewrite failing testfixhuman reviewmergereproduces?gather more eventsno — first passyes — second pass

Standards as code

Every rule is graded. Most are enforced.

MUSTMUST NOT
Non-negotiable. A pull request that breaks it does not merge. An exception needs a waiver ADR.
SHOULDSHOULD NOT
The default. Deviating is allowed and must be justified in the pull request description.
MAY
Genuinely a choice. Written down so the trade-off is not re-derived.

The grade is not decoration. CI keys off it, code review keys off it, and so does the agent. A MUST costs an ADR to create and an ADR to change — rules that cannot be challenged get routed around instead.

Every page carries a status and a review date. Anything in draft for more than 90 days is deleted or finished. That is how you tell a live standard from a fossil.

  1. checks queued — layer contract, rules lint, review pass
  2. import-linter: app.services.orders -> app.api.v1 (forbidden)
    MUST · layered-architecture standard
  3. all checks passed — the import moved to the service layer

The gate behind the grade: same rule, carried by the agent, the linter and the review.

Colour is never the only carrier here. Each state spells itself out — queued, forbidden, passed — so the sequence survives greyscale and a screen reader unchanged.

Where this is

Early, and honest about it.

13 pillars, 120 pages. Every page has an owner and a review date, and the backlog is claimable rather than hidden. These counts are read from the handbook's generated status file when this page is built, so they cannot drift from the repository.

adopted

38

in force — a pull request that breaks a MUST here does not merge

review

4

substantially written, open for comment

draft

73

a stub listing the questions the page will answer, claimable

blocked

5

waiting on a decision, not on effort

The quality bar — ask for these three

  • Layered architecture
  • Containerization
  • How we choose a library

Named rather than linked, and permanently so. The corpus is not published and will not be: the handbook is reached by asking Athena for a page, not by opening a directory or cloning a repository. A title is the only honest thing to print here, and there is no later state in which it becomes a link.

Design partners

We are taking a small number of design partners. You get the hosted endpoint, the handbook adopted as your own, and direct input on the tool surface. We get to find out where this breaks on a codebase that is not ours.

A person, not a sequence: founder@engineeringathena.dev

Where it is going

Solid markers are phases that have started. Outlines are phases that have not. There is no growth curve here and no logo wall, because neither would be true.

  1. 1 · Handbook

    Pillar structure, flagship pages, templates, ADRs, validation CI

    Done

  2. 2 · Coverage

    Close the draft backlog, pillar by pillar

    In progress

  3. 3 · Retrieval

    The MCP server on Cloud Run: route a task, return the rules, the guide, the flow or the research it needs

    ADR-0002 and ADR-0010, in build

  4. 4 · Skills

    A plugin bundling handbook, standards-review, new-service, debug-from-sentry

    Designed, not started

  5. 5 · Enforcement

    Lint rules and CI gates behind every MUST that can have one

    Partial

  6. 6 · Publish

    Decided against. The corpus stays private and is reached through Athena, not read as files

    Closed

Objections

The questions you were going to ask.

Does anything get installed in my repos?

No. One user-scope MCP connection per engineer. Your repos keep their own AGENTS.md, under 100 lines, describing only what is specific to them.

What happens when Athena is down?

Your agent loses the handbook, not the repo. It keeps working with whatever your repo already says. The dependency is real and we are not going to pretend otherwise.

Is our code or our handbook used for training?

No. The server answers from an index built from Markdown, and feedback goes to reviewers — not into the corpus. Nothing is fine-tuned on it.

Whose standards does it serve?

Ours, adopted as yours. Athena serves one handbook — graded rules and the ADRs behind them. You adopt it as-is, and you challenge what you disagree with the way every rule changes: a pull request. A MUST costs an ADR.

Why MCP and not a CLI or a package?

A package has to be added per project, which is the drift we are avoiding. MCP works in Claude Code, Cursor and anything else that speaks it.

Can an agent change a standard?

No. An agent cannot create or alter a rule. It can report that guidance was wrong — a failed verification, instructions that did not match the repository, a page that was stale — and that report is a record, not a rule. A rule changes through a reviewed pull request, and a MUST costs an ADR. An agent that can edit the standards can launder its own violations.

Why does a citation give a title rather than a file path?

Because a path is an address, and a handful of addresses is enough to start walking the whole corpus — which is the product. ADR-0010 records the decision: a citation is the page title plus a reference the agent can redeem, and the rule text comes back with the answer so the claim travels with it. References are not guessable, and one tells you nothing about any other.

Can I use it?

Athena is a public service: you connect your own agent and ask it questions. Pricing is not set, so access starts with a conversation — the contact address is at the bottom of this page. The handbook itself is served through Athena rather than published as a repository you can clone.

Access.

Athena is early. Pricing is not set, and we would rather talk to you than guess at it.

If you run a team of engineers and agents, tell us your stack and what breaks today. If Athena does not help yet, we will say so.