Hands-on with DeepSeek Harness · Challenge 03 · 中文版

Lesson 3: The bounded change, audited from the trajectory

Checkpoint l0310 ptsgated by test suiteDeepSeek Harness

Drive the starter to green through bounded steps — then prove the agent stayed in bounds by inspecting the append-only trajectory.

Six agent-tool courses share this challenge. DeepSeek Harness-specific steps are still being written — until they land and pass review, this page defers its canonical to the primary course's copy.

Doing this with your agent? One sentence starts the whole course:

Read https://flypython.com/skills/flypython/SKILL.md and start the FlyPython course `hands-on-with-deepseek-harness`.

Lesson 3: The bounded change, audited from the trajectory

Objective

The starter passes all nine tests through a sequence of bounded changes, the trajectory proves nothing else was touched, and you can explain every edit without reading the solution first.

Why this lesson exists

This is the lesson people skip — and the one that builds the actual skill. Letting an agent rewrite the file in one shot teaches you nothing and leaves you a change you cannot honestly review. Supervising small steps, each pinned to a contract line, is how the code stays yours. DeepSeek Harness makes the supervision auditable: the session trajectory is append-only, so what the agent did is a record you inspect — not a claim you trust.

The lesson

Start a fresh session and say:

“Work through TASK.md against starter/report_tool.py. One failing test group at a time: JSON loading, then validation isolation, then rounding, then atomic writes, then the end-to-end tests. After each group, run python verify.py starter and stop for my review.”

Hold it to the contract’s boundaries:

  • Only starter/report_tool.py changes. If the trajectory shows a write to tests/, solution/, or scenario/, stop the session and fork from before that step.
  • No new imports outside the standard library.
  • Each change should move toward one contract line. Reject drive-by refactors.
  • If the agent wants to change a test, the answer is no. Tests are the contract; the code moves.

Use the harness’s strengths deliberately:

  • Inspect the trajectory after each step. Did it run the command it claimed? Did it touch only the file it said?
  • Fork instead of argue. If a step went wrong, fork the session from the last good step rather than stacking corrections on a bad state.
  • Read the diff, not the summary. The trajectory shows the actual edit; the agent’s summary is its own narration. When they disagree, the trajectory wins.

Expect the failing count to drop group by group: 7 → 5 → 4 → 3 → 2 → 0.

Exercise

Pick one edit the agent made — ideally the validation-isolation change — and find it in the trajectory. Explain it back: “this edit does X; that satisfies contract line Y.” If you cannot, ask the agent to walk you through that trajectory step before continuing.

Checkpoint

Run python verify.py. This checkpoint’s code appears only when the starter suite is green. You pass the lesson when you can answer:

  1. How many steps did the bounded change take, and what made each step bounded?
  2. Which trajectory entry did you reject or fork away from, and why?
  3. Point at the edit that implements “isolate invalid rows with reasons” — which trajectory step is it?

Expected evidence

A green python verify.py starter run, plus the trajectory steps showing each bounded edit and the verify runs between them.

Hints

Stuck? Open one at a time.

Hint 1 — What this checkpoint tests

That the starter passes all nine tests through changes you supervised — python verify.py shows this code only once the starter suite is green.

Hint 2 — The trajectory is the audit

Because the log is append-only, you can inspect each tool call and file edit after the fact — and fork the session if a step went somewhere you did not want.

Hint 3 — When you are done

Every edit maps to a contract line, the trajectory shows nothing outside starter/report_tool.py was touched, and you can explain each change without opening solution/.

Submit

Done? Record it.

The 8-character code verify.py progress printed for this checkpoint — from the browser, or straight from your agent.

Youbrowser

Submit the claim code

Your agentauto-submit

Let the agent solve and submit

Hand it this checkpoint (copy button on hover) — it solves, verifies, and submits on its own:

Work on the FlyPython challenge "Hands-on with DeepSeek Harness" (course id course-deepseek-harness), checkpoint l03.
Machine-readable brief: https://flypython.com/api/challenges/hands-on-with-deepseek-harness
Open the course folder and read TASK.md first — it is the contract.
Rules: smallest change, no new dependencies, never edit tests/ or solution/.
Check with python verify.py until its gates pass, then report each claim code to me.
Target: solve only checkpoint l03, and submit it as soon as it passes.

With a token from your agent page (env FLYPYTHON_TOKEN), it records the result directly:

curl -X POST https://flypython.com/api/claims \
  -H "Authorization: Bearer $FLYPYTHON_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"claims":[{"course":"hands-on-with-deepseek-harness","checkpoint":"l03","code":"<8-char code>"}]}'

Or install the full FlyPython agent skill once and skip the paste.

Files

The starter and verifier

Solving runs on your machine — your agent fetches the course files itself via /api/challenges/hands-on-with-deepseek-harness/files; you download nothing by hand. Prefer reading the source? Browse the folder on GitHub ↗