Skip to content

[week-05] 26510126 - #259

Open
thisjonghoon wants to merge 25 commits into
Q00:mainfrom
thisjonghoon:week-05
Open

thisjonghoon wants to merge 25 commits into
Q00:mainfrom
thisjonghoon:week-05

Conversation

@thisjonghoon

Copy link
Copy Markdown
Contributor

What I built

The week-04 negotiation as an MCP market server (Streamable HTTP, spec 2026-07-28). The bearer token decides the caller's role and binds it to one negotiation_id. In the server* conditions the token also carries the price limit, and the server refuses any move outside it. A runner opens negotiations, mints tokens, and runs the week-01 loop as the host for one turn at a time. All four conditions ran: prompt, server, prompt_inject, server_inject × 4 scenarios × 3 = 48 episodes on nvidia/nemotron-3-ultra-550b-a55b:free. Every condition scored 9/12 correct with 0 violations, 0 attempted violations and 0 refusals. The injected notice was tested at the model layer: 12 times the seller's price sat above the buyer's real budget but inside the injected one, and the buyer declined each time. The server's limit check was never reached by a real model; auth_checks.txt (4) and the offline rehearsal show it refusing. The lab (week-01 tools as an MCP server, attached to the week-01 loop and to Claude Code) is in lab/.

What I tried and discarded

  • The openai SDK failed TLS on this machine (OSStatus -26276, truststore rejecting the local proxy chain). Fixed with SSL_CERT_FILE=/etc/ssl/cert.pem instead of turning verification off. The failed attempt is committed.
  • OpenRouter free models often return HTTP 200 with no choices (an Nvidia 503 inside), and they cap requests per minute. Fixed by spacing calls 4 s apart and retrying with backoff. Retries first went only to the console; that was fixed after cycle 1.
  • Model choice: I probed 8 free models on 10/01 and picked nemotron-3-ultra for size. The probe could not separate the models on quality.
  • One background job hit its time limit in the middle of server_inject r3 s4. The runner resumed it; the partial episode is still in the log.
  • Auxiliary run: the main run never exercised the server, so I looked for a model that falls for the notice. cohere/north-mini-code accepted 85 against a budget of 70 in a one-turn probe, but in 8 full episodes it only ever called propose (8/8 open, 0 refused). Kept in aux/.
  • The first draft of the interpretation was wrong. It claimed the notice "never met a price it could apply to". A fresh-reader review found the 12 seller offers inside the injected budget, and part 4 was rewritten (see the commit history).

How to run

uv venv .venv && uv pip install --python .venv "mcp>=2" openai
export OPENAI_BASE_URL=https://openrouter.ai/api/v1
export OPENAI_API_KEY=<openrouter key>
export SSL_CERT_FILE=/etc/ssl/cert.pem      # only needed on my machine
cd submissions/26510126/week-05
python auth_checks.py
python runner.py --conditions prompt_inject server_inject prompt server --runs 1 2 3
AGENT_MODEL=fake python runner.py --out rehearsal   # offline, no model calls

Model nvidia/nemotron-3-ultra-550b-a55b:free, temperature 0, reasoning disabled. The runner starts the market on port 8001 with a fresh admin token and skips rows already in results.csv.

Checklist

  • python scripts/check_week05.py submissions/26510126/week-05 passes locally
  • Run logs are committed under logs/ (12 files) and aux/logs/
  • No API keys anywhere in the diff (the admin token is generated per run, never written)
  • History is not squashed

🤖 Generated with Claude Code

https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6

thisjonghoon and others added 25 commits September 29, 2026 20:43
…ist and the 400s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…ails TLS with OSStatus -26276 (truststore rejects the local proxy chain)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
… retry covers 200-with-no-choices (Nvidia 503 inside)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…e + calculator, 69504

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…ts 3 tools and appends '69504'

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…unchanged)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…earsal with a scripted buyer that believes the notice

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…negotiation, out of turn, over limit)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…r_inject x 4 scenarios; 6/8 correct, 0 attempted, 0 refused, s3 open in both

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…e (cycle 1 had one Nvidia 503 that logs/ does not show)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…ckground job hit its time limit inside server_inject r3 s4 (partial episode left in the log)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…te, 24 episodes, check_week05 passes except REPORT.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…4 correct, s3 open again

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…l to prompt_inject

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…rashes, check_week05 passes except REPORT.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…e); part 4 left to the student with the log evidence collected

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…s 85 under the notice twice, the rest pass or error (lfm requires reasoning)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…es only ever propose, nobody accepts

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…only in all 8 episodes, buyer stops exactly at its real budget, 0 attempted, 0 refused

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
…PORT part 2

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6
… had 12 chances to accept inside the injected budget and declined all; fix the aux 7-of-8 claim and the reject_proposal counter wording in part 3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGAVFzUhNrF23PWUZA1AW6

This branch has not been deployed

No deployments
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