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.
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
- 01router
- 02facade
- 03service
- 04repository
- 05schemas
- 06migration
sub agents · in parallel
each pulls its own rules and guide
diff · 3 files · tests green
no MUST violations · 2 nits
auth and input checks pass
API reference and runbook updated
The problem
You wrote the standards. Nothing reads them.
Never arrives
You wrote the standards. There is a 40-page PDF, a Notion space, three ADRs. None of it is open at 16:40 on a Thursday when the endpoint gets written.
Drifts
So you copied the rules into every repo. Now you have eleven handbooks diverging in eleven directions, and nobody can tell you which one is current.
Rots
No owner, no review date, no way to tell a live standard from a fossil. So engineers stop trusting any of it, which is rational.
Agents ignore it
Your agent generates to its training priors — the average of GitHub — not to your layering, your error contract, your migration policy. It is confidently wrong in your house style's exact shape.
Skill fatigue
The fix on offer is to install more: a skill per framework, a server per vendor, a rules file per repo. Each one costs context on every request and has to be learned, versioned and pruned by someone. You are now maintaining a tool budget instead of shipping.
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 django → JWT with djoser, step by step
- > RBAC in fastapi → guide + code snippet
- > business logic → facade 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.
| Tool | Category | What it is for |
|---|---|---|
| athena_route | — | Describe the task; get told which pillar and which call |
| athena_rules | Rules | What binds the change being made |
| athena_guide | Guides | How to build one thing, with code |
| athena_flow | Flows | Multi-step work, and the instruction to fan out |
| athena_brief | Flows | One sub-agent's payload, for one step |
| athena_knowledge | Knowledge | Deep research on a topic |
| athena_get | — | Redeem a reference the agent was already given |
| athena_feedback | — | Report 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.
01 · Idea
“Has anyone here solved this already?”
athena_route(...) — what we have already written down
The standards and decision records that already cover it — prior art before new work.
02 · Research
“Why did we decide it that way?”
athena_knowledge(the topic)
The research and the decision records behind the standard, so the trade-off is not re-derived.
03 · Spec
“What does a spec look like here, and what must it contain?”
athena_guide("write a spec")
The spec shape, its required sections, and the gate to pass before planning.
04 · Plan
“What does a plan look like here?”
athena_guide("write a plan")
Agents draft the plan; a human owns the decision to proceed.
05 · Breakdown
“Split this epic the way we split epics.”
athena_flow(...) — the units, and what can run in parallel
The breakdown, with honest sizing and one owner per slice.
06 · Design
“Claude Design or Lovable for this?”
athena_guide("design to code")
The decision — and the rule that a prototype does not ship to users unrebuilt.
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.
08 · Build
“React structure and state. Which queue for background jobs?”
athena_rules(what you are touching) · athena_guide("background jobs")
The graded rules for the stack in front of the agent — about 2 KB.
09 · Review
“Review this diff against our standards.”
athena_rules(the paths the diff touches)
The rules that bind what the diff actually changed, non-negotiable ones first.
10 · Ship
“How do we deploy, and what is the rollback?”
athena_rules(topics: delivery)
One image, built once, promoted — and the rollback that is a re-promote.
11 · Debug
“Reproduce this Sentry issue before fixing it.”
athena_guide("debugging with agents")
No reproduction, no fix. The failing test comes first.
12 · Learn
“This rule was wrong.”
athena_feedback(...) — then a pull request
An agent can report that a rule was wrong. It cannot change one. That takes a human and a reviewed change, and a MUST costs an ADR. That is the whole loop.
“Is this library approved?”
The approved-list entry and the eight criteria to score it — or 'not decided yet', when that is the truth.
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
| decision | agent | human |
|---|---|---|
| Should this exist? | not the agent's to decide | decided by a human |
| Owner | not the agent's to decide | decided by a human |
| Data ownership | not the agent's to decide | decided by a human |
| Tier | not the agent's to decide | decided by a human |
Step 2Generate
$ uvx cookiecutter gh:cookiecutter/cookiecutter-djangoproject_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
- local
- CI
- staging
- production
- 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.
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.
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.
- checks queued — layer contract, rules lint, review pass
- import-linter: app.services.orders -> app.api.v1 (forbidden)
MUST · layered-architecture standard - 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 · Handbook
Pillar structure, flagship pages, templates, ADRs, validation CI
Done
2 · Coverage
Close the draft backlog, pillar by pillar
In progress
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 · Skills
A plugin bundling handbook, standards-review, new-service, debug-from-sentry
Designed, not started
5 · Enforcement
Lint rules and CI gates behind every MUST that can have one
Partial
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.
Search quality — embeddings?
Lexical first: BM25 / FTS5 over front-matter, headings and body. Deterministic and debuggable. Embeddings when we can measure that lexical is the bottleneck, not before.
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.