DolphinBench

Test 195

Jan 1, 2028 / 3 facts

YAML

Request

Inspect metrics-router#4208 and review it against the repository's established Go-code conventions.

Required memory

Fact 7

Metrics-router code retained in the Go repository must use strict gofmt formatting, a standing convention since the previous year's rewrite.

Source evidence (1)

000019Mar 12, 2023 / 11:00 UTC-04:00

ok so for the metrics-router config-loader cleanup i'm not trying to get fancy with it. mostly want one path for env/file overrides and kill the little helper pile that grew around the rewrite. if a thing stays in metrics-router it should look like the rest of the Go repo: gofmt strict, table-driven tests on the routing logic, and no log.Fatal in handlers bc i don't want request code deciding the process dies. that's been the standing convention there since last year's rewrite anyway. leaning small PRs over one huge sweep -- loader first, then test fixtures, then the handler bits that still have old assumptions from legacy-aggregator.

Message 000019 in history

Fact 8

Metrics-router routing logic must use table-driven tests, a standing convention since the previous year's rewrite.

Source evidence (1)

000019Mar 12, 2023 / 11:00 UTC-04:00

ok so for the metrics-router config-loader cleanup i'm not trying to get fancy with it. mostly want one path for env/file overrides and kill the little helper pile that grew around the rewrite. if a thing stays in metrics-router it should look like the rest of the Go repo: gofmt strict, table-driven tests on the routing logic, and no log.Fatal in handlers bc i don't want request code deciding the process dies. that's been the standing convention there since last year's rewrite anyway. leaning small PRs over one huge sweep -- loader first, then test fixtures, then the handler bits that still have old assumptions from legacy-aggregator.

Message 000019 in history

Fact 9

Metrics-router handlers must not use log.Fatal because request-handling code must not decide that the process terminates; this has been the standing convention since the previous year's rewrite.

Source evidence (1)

000019Mar 12, 2023 / 11:00 UTC-04:00

ok so for the metrics-router config-loader cleanup i'm not trying to get fancy with it. mostly want one path for env/file overrides and kill the little helper pile that grew around the rewrite. if a thing stays in metrics-router it should look like the rest of the Go repo: gofmt strict, table-driven tests on the routing logic, and no log.Fatal in handlers bc i don't want request code deciding the process dies. that's been the standing convention there since last year's rewrite anyway. leaning small PRs over one huge sweep -- loader first, then test fixtures, then the handler bits that still have old assumptions from legacy-aggregator.

Message 000019 in history

Expected tool calls

  • get_pr
  • review_pr

Grading

1. field_equals / review_pr
{
  "type": "field_equals",
  "tool": "review_pr",
  "action_id": "alex_195_review_pr",
  "path": "result.ok",
  "value": true,
  "check_id": "alex_195_00"
}
2. field_equals / get_pr
{
  "type": "field_equals",
  "tool": "get_pr",
  "action_id": "alex_195_read_pr",
  "path": "result.pr.id",
  "value": "metrics-router#4208",
  "check_id": "alex_195_01"
}
3. field_equals / review_pr
{
  "type": "field_equals",
  "path": "result.review.pr_id",
  "value": "metrics-router#4208",
  "tool": "review_pr",
  "action_id": "alex_195_review_pr",
  "check_id": "alex_195_02"
}
4. field_equals / review_pr
{
  "type": "field_equals",
  "path": "result.review.decision",
  "value": "request_changes",
  "tool": "review_pr",
  "action_id": "alex_195_review_pr",
  "check_id": "alex_195_03"
}
5. field_llm_judge / review_pr
{
  "type": "field_llm_judge",
  "path": "result.review.body",
  "criterion": "The review requires strict gofmt formatting, table-driven routing tests, and removal of log.Fatal from the HTTP handler because request code must not terminate the process, using request-level error handling instead.",
  "tool": "review_pr",
  "action_id": "alex_195_review_pr",
  "check_id": "alex_195_04"
}
Complete grading specification
{
  "type": "tool_trace",
  "config": {
    "check_version": 2,
    "today": "2028-01-01",
    "assertions": [
      {
        "type": "field_equals",
        "tool": "review_pr",
        "action_id": "alex_195_review_pr",
        "path": "result.ok",
        "value": true,
        "check_id": "alex_195_00"
      },
      {
        "type": "field_equals",
        "tool": "get_pr",
        "action_id": "alex_195_read_pr",
        "path": "result.pr.id",
        "value": "metrics-router#4208",
        "check_id": "alex_195_01"
      },
      {
        "type": "field_equals",
        "path": "result.review.pr_id",
        "value": "metrics-router#4208",
        "tool": "review_pr",
        "action_id": "alex_195_review_pr",
        "check_id": "alex_195_02"
      },
      {
        "type": "field_equals",
        "path": "result.review.decision",
        "value": "request_changes",
        "tool": "review_pr",
        "action_id": "alex_195_review_pr",
        "check_id": "alex_195_03"
      },
      {
        "type": "field_llm_judge",
        "path": "result.review.body",
        "criterion": "The review requires strict gofmt formatting, table-driven routing tests, and removal of log.Fatal from the HTTP handler because request code must not terminate the process, using request-level error handling instead.",
        "tool": "review_pr",
        "action_id": "alex_195_review_pr",
        "check_id": "alex_195_04"
      }
    ]
  }
}
App stateDownload JSON
Source file

tests/alex/195.yaml

SHA-256: 163e05110b5f57b7a389ec9262195b171bce22fdbe4e9c49a9dae3d5171c43fe