Skip to content

Publish an order topic this project has, not one this file invented - #79

Merged
leggetter merged 2 commits into
mainfrom
outpost-001-real-topic
Sep 21, 2026
Merged

leggetter merged 2 commits into
mainfrom
outpost-001-real-topic

Conversation

@leggetter

Copy link
Copy Markdown
Collaborator

Why the 21 September weekly failed.

What happened

One agent — codex-gpt-5.4-mini-no-skills — subscribed its destination to *. The scorer's wildcard branch then published the literal string orders.created:

if (topics === '*') return 'orders.created';

That topic does not exist. GET /topics on this project returns:

orders, retries, order.created, order.shipped, order.updated, order.cancelled

So Outpost answered 422 {"status":422,"message":"validation error","data":["topic is invalid"]}, the scorer threw, and the cell errored rather than scoring. Plural orders.created against singular order.created — the seeds in every other Outpost scenario use the singular.

The blast radius was the whole run

An errored eval fails its matrix job. publish-results has needs: [prepare, run-evals], so it was skipped. Seventy-five cells that ran fine published nothing, because of one wildcard subscription. Filed as a separate issue.

The fix

The topic comes from the project. A wildcard subscription says nothing about which topic to publish, so asking is the only correct answer, and the list is configuration that can change while a string compiled into a scorer cannot follow it. A specific order.* topic is preferred over the bare orders: a destination subscribed to everything receives either, and this scenario is about an order event reaching a customer.

Verified against the case that broke it

score-only with SOLUTION.ts temporarily set to topics: '*', which reproduces the wildcard path exactly — passes. The ordinary solution path passes unchanged.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MQzUoMAwEBJWpEGVvVzSjK

The 21 September weekly failed. One agent subscribed its destination to `*`,
and the scorer's wildcard branch published the literal `orders.created` —
a topic this project does not have. `GET /topics` returns `orders`, `retries`,
`order.created`, `order.shipped`, `order.updated`, `order.cancelled`. Outpost
answered `422 {"message":"validation error","data":["topic is invalid"]}`, the
scorer threw, and the cell errored instead of scoring.

The consequence was larger than one cell. An errored eval fails its matrix job,
`publish-results` needs every matrix job, so seventy-five cells that had run
fine published nothing. Filed separately.

The topic now comes from the project. A wildcard subscription says nothing
about which topic to publish, so asking is the only correct answer — and the
list is configuration that can change, which a string compiled into a scorer
cannot follow. Prefers a specific `order.*` topic over the bare `orders`,
because a destination subscribed to everything receives it either way and this
scenario is about an order event reaching a customer.

Verified with score-only on the case that broke the run: `SOLUTION.ts`
temporarily set to `topics: '*'` reproduces the wildcard path, which now
passes. The ordinary solution path passes unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MQzUoMAwEBJWpEGVvVzSjK
Reaching the no-topic branch has two causes and only one of them is the
agent's: a destination subscribed to nothing order-shaped, or a project with
no order topic to publish. The note claimed the first for both, so a harness
misconfiguration would have been published as an agent failure — which is the
mistake this scorer has now made twice, once by counting a delivery attempt as
a delivery and once by inventing a topic the project does not have.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MQzUoMAwEBJWpEGVvVzSjK
@leggetter
leggetter merged commit 15bb782 into main Sep 21, 2026
2 checks passed
@leggetter
leggetter deleted the outpost-001-real-topic branch September 21, 2026 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant