Asapi
For AI labs / Catalogue / Course registration against rules found in portal
Environment datasheet · University portal

Course registration against rules found in portal

ID northgate/task1‑1 · revision 2 · tested 12 October 2026

On a university's registration portal, read as text one page at a time, the agent fixes a student's term timetable so that it fits commitments, scholarship terms and degree rules that only the student's records state.

Checks
14, 11 of them met by an empty registration
Versions
Request only
Attempts
4: 4 models × 1 version, one each
Best, request only
79% (3 models)
Full solves
0 of 4
Attempts with any reward
4 of 4
Median, request only
3 min, 24 tool calls
The job

The request says commitments exist; the records hold every rule

Role
Acting for a second‑year student in registration week, on the university's portal.
Request
Sort out the student's autumn registration so classes fit around other commitments already booked for the term, which are listed in the portal, without paying more than needed.
Deliverable
The registration the portal holds when the agent stops. The closing message is recorded but not graded.
What the reward depends on
Turning a work shift, a training slot and a parking permit into times to avoid; the scholarship's credit floor, with no waitlisted seat; no clashes and walkable transfers; the course the advisor's note describes; enough degree requirements closed; prerequisites met.
Where the requirements are
Only in the student's records on the portal: term commitments, scholarship terms, the degree audit, the student record, an advisor's note and the campus map. No page states a rule as a rule, and the starting timetable already breaks several.
The world

An 87‑page portal that registers anything and flags only some of it

Interface
A Python harness loads a live portal in headless Chromium and gives the model each page as numbered lines of text; the model answers with one action a turn. No container, terminal, files or web: any address off the portal is refused.
Portal
87 pages at the start: a catalogue search that lists nothing until searched, 51 course pages (13 departments, 108 sections, 13 full), the cart, the schedule, the degree audit, the student's records, an advisor's note and a campus map with 28 places.
Actions
Click, type, select, go to a path on the site, go back, or stop with a closing message. Adding a section only fills a cart until the registration is submitted; removing a registered section drops it at once.
What the site allows
It blocks nothing: it registers clashes, full sections (as a waitlist place) and courses without their prerequisites. It flags clashes, full sections and walks too long for the gap, but not a missing prerequisite.
Model calls
Each reply is one fresh Claude Code call with Claude Code's own tools off. The harness passes the conversation so far, with pages older than 40 turns replaced by a placeholder.
Stops
Four replies in a row with no valid action, or one action repeated five times, end an attempt; otherwise it ends when the agent stops or reaches 250 replies.
Time and people
A fixed in‑world date; no clock runs and nobody answers. The registration changes only through the agent's actions.
The reward

14 script checks on the portal's record; an empty registration meets 11

Structure
14 yes/no checks, one point each: 6 on booked commitments, 2 on the scholarship, 2 on a workable timetable, 4 on degree progress. Reward = checks met / 14; a pass is all 14.
Who decides
Scripts alone, on the portal's own record of the registered sections when the agent stops; sections left in the cart don't count. No LLM judge, no penalties, and the closing message isn't read.
Rebuilt and replayed
An offline grader rebuilds each final registration in a fresh portal and reaches the same verdict. Its self‑test passes the answer key, fails the starting registration and regrades every attempt to its recorded checks.
Reference and floor
A scripted reference scores 100%, and six registrations the catalogue allows meet all 14. The starting registration meets 7 (50%); an empty one meets 11 (79%), since 11 checks only look for broken rules.
Results

The three best attempts matched an empty registration's 79%

Three of four attempts kept every commitment and scored 79%, what an empty registration scores: each missed the advisor's course, the degree requirements and a prerequisite. The fourth scored 57%. No attempt fully solved it.

VersionMedianFully solved
Request only4 models, one attempt each79%0 of 4

Each dot is one model's attempt; the line marks the median.

ModelRequest only
Fable 5.1Anthropic79%
Opus 5Anthropic79%
Opus 5.5Anthropic79%
Sonnet 5Anthropic57%

One attempt per model, by Anthropic models only: the harness reached models through Claude Code. Attempts by four models from other makers ran on the version before the 12 October fixes and aren't on our board.

There is no version with a hint or with the rules written in.

Failures

What the models got wrong

Counted over the 4 models, one attempt each, with only the request.

  1. Silent acceptance trusted. 4 of 4 kept a starting course whose prerequisite the student hadn't passed, which the portal had registered without objection; none opened its page, and 3 added the missing prerequisite in the same term.

  2. The deciding record unread. None of the 4 opened the advisor's note, so all missed the course it describes by content and closed too few requirements; only one opened the degree audit.

  3. Swapped away. One attempt held the advisor's course, then dropped it to fix two tight walks caused by starting classes it kept, one of them a course the student wasn't ready for.

  4. One problem fixed, the rest left. 1 of 4 treated the job as two missing credits: it kept a class before the car park opens, a day longer than the permit allows and an unwalkable transfer, while its closing message said the day fit.

Cost

What an attempt costs

Length
The median attempt took 3.5 minutes and 24 actions (10 to 30 across the 4), and about 330,000 tokens of input and output; the harness records no cache figures.
Cost
The median attempt cost $2.93 at list prices, from $0.34 to $9.46 across the 4; all 4 came to $16. That's the agent model only, and nothing else in the environment calls a model.
Licence

What you license

With a licence
Revision 2: the portal and its pages, the agent harness, the grader and its self‑test, the answer key with a scripted reference and a valid registration, and the grader's report on each of the 4 attempts, as baseline results.
Format
Packaged as a Harbor task on request. Today the portal and grader are standard‑library Python, and the harness drives the site with Playwright and Chromium, reaching models through the Claude Code CLI.
Revisions
Revision 2 follows an audit on 9 October: the records say how the permit's hours count, where training is, that it ends earlier and that shift days are barred; the training check counts the walk to the pool and back; the request asks to pay no more than needed.
Fresh variants
Other data, people and facts in the same design, on request. They're never published.
Public or not
Its job page on The AI Agent Trials, our public benchmark, describes the job, its main pitfalls and each model's results in plain language, so hold out fresh variants for evaluation. The files, grader and answer key aren't published.
Known limitations

What we haven't measured, and what's uneven

Try a sample environment

Three are downloadable as Harbor tasks, with graders and reference solutions. Request one with your work email, or book a call about the other 53.