Skip to content

GO ontology

The Gene Ontology edit file, with the largest library of agent skills of any ontology repository we track.

Repository: geneontology/go-ontology Product: src/ontology/go-edit.obo Agent surface: GitHub mention, pull request review, local sessions

What to look at

Path What it is
.claude/skills/ Ten skills, one per recurring job
.github/workflows/ai-agent.yml Runs the ai4c-agent bot on a trigger keyword
.github/workflows/claude-code-review.yml Runs the ai4c-reviewer bot on pull requests
.github/ai-controllers.json Who is allowed to trigger the agent
CLAUDE.md Repository instructions

The ten skills are chemical-entity, design-pattern, external-term-lookup, mapping, odk-make, pr-review, reaction, research, taxon-constraint, and term-obsoletion.

What works

The skill names map onto jobs a GO editor already recognizes. An editor who has handled a taxon constraint ticket knows what taxon-constraint is for. This makes the setup readable to curators, not only to developers.

Skills also keep instructions out of the main context. CLAUDE.md stays short because the detail lives in the skill that needs it. See Break work into skills.

odk-make is worth a look on its own. It wraps the Ontology Development Kit commands so the agent runs the same build steps an editor runs, instead of inventing its own.

The workflows explain themselves

GO's two agent workflows carry long header comments saying what each choice is for: why the review skips ontobot pull requests but not agent-authored ones, why the app id and the bot user id are different numbers, why the review rubric lives in a skill rather than the prompt. If you are setting up your own bots, read these two files before anything else on this site.

Two bots, not one

GO runs ai4c-agent for editing and ai4c-reviewer for review. The split exists because GitHub does not let an identity approve its own pull request. GO deliberately reviews the editing bot's own pull requests, which its workflow calls the highest-value case, since that is where fabricated identifiers get caught.

What to copy first

Copy the idea, not the files. List the five tickets your editors handle most often. Write one skill for each. Name each skill after the ticket type.

Gaps

There is no command or subagent that sequences the skills. Each run plans its own path from issue to pull request. EFO solves this with an orchestrator and a /efo-ticket command. GO has the workflow wiring to make the same approach useful.

CLAUDE.md and .github/copilot-instructions.md hold the same text in two files. Both need editing by hand when guidance changes. See One source of instructions.