Skip to content

EFO

The Experimental Factor Ontology. EFO treats the main agent as an orchestrator that routes work to specialists, and keeps one review checklist for three different agent runtimes.

Repository: EBISPOT/efo Product: src/ontology/efo-edit.owl Agent surface: local sessions, started with a command

What to look at

Path What it is
CLAUDE.md The orchestrator role and its routing table
AGENTS.md A short pointer to the authoritative files
.claude/agents/ Specialist subagents
.github/agents/ The same specialists for GitHub Copilot
.claude/commands/ Commands, including /efo-ticket
.mcp.json Two MCP servers: OLS and artl-mcp
docs/agents-documentation/efo-pr-review-checklist.md One review checklist, shared by three reviewers

What works

CLAUDE.md gives the agent a role. It says the agent is the orchestrator, then gives a table of which specialist handles which kind of request. Most repositories describe the project; EFO describes the job.

AGENTS.md is a pointer, not a copy. It is about twenty lines and it names .github/copilot-instructions.md and CLAUDE.md as the authoritative sources. Nothing has to be kept in sync by hand. Every other Block A repository duplicates its instructions across two files. See One source of instructions.

One checklist, three reviewers. The Claude, Copilot, and Codex reviewers all apply docs/agents-documentation/efo-pr-review-checklist.md. The Codex reviewer has its own procedure file that points at the same checklist. When the review standard changes, one file changes.

/efo-ticket <issue-number> is a front door. A curator does not have to describe the workflow. The command holds it.

MCP servers are declared in the repository. .mcp.json gives every session the same two tools: the EBI Ontology Lookup Service over HTTP, and artl-mcp for literature. Curators do not configure these themselves.

What to copy first

Copy AGENTS.md. It is the cheapest fix on this site: replace your duplicated instructions file with a pointer, and the drift problem disappears today.

After that, copy the shared review checklist. One file that all your reviewers read is worth more than three reviewers with three standards.

Gaps

EFO has no workflow that runs an agent when someone mentions it on an issue. The orchestrator and its specialists are reachable from a local session only. GO, Uberon, and Cell Ontology all have that surface. This looks like a deliberate choice, but it means EFO issues do not get agent responses.

The specialists exist twice, once under .claude/agents/ and once under .github/agents/, with names that differ only in case. The two sets can drift. The review checklist shows the fix EFO already knows: one authoritative file, referenced from both places.