- Folder renamed
hands-on-with-openai-codex-cli→hands-on-with-openai-codex;course_id(course-codex-cli) and claim salt preserved so existing claims and codes remain valid. COURSE.md/COURSE_cn.mdand all ten lesson files rewritten against the Codex app as documented at developers.openai.com/codex (thread model, approval modes, AGENTS.md instruction chain, diff review). CLI-specific teaching was removed;TASK.md,tests/,scenario/,starter/,solution/are byte-identical to the Claude Code course core (shared-core groupreport-tool, enforced bytools/verify_courses.py).- Not done in this pass: a live teaching run-through inside the Codex desktop app. No Codex account/app session was used; the content is authored from official documentation and the previously verified task core. Teaching quality in the real app remains pending below.
- Environment: macOS (arm64), Python 3.13; repository clean checkout on
branch
feat/0.0.3-courses-and-radar. - The code core is the reviewed Claude Code course core reused per the 0.0.3 plan §2.2 ("reuse C1 skins"): same starter/solution/tests contract.
- Commands and results:
python verify.py starter --expect-failure— exit 0; all seven expected failure names reproduced.python verify.py solution— exit 0; 9/9 tests pass.- All three skins exercised end to end by the shared suite.
- One full agent-taught run-through inside the Codex desktop app
("start lesson 1" through the Lesson 5 checkpoint), recording observed
deviations from
COURSE.mdhere; the recording doubles as demo-video source material. - Whether a free ChatGPT tier lasts the whole course is unverified.
- L01 (EN+ZH) rewritten around the fixed order: get the tool running →
install the FlyPython Skill (network access included) → let the agent
fetch this course's files via the files endpoint. All "download this
folder" wording removed from
COURSE.mdand lessons. - The learner's check command across lessons is now the bare
python verify.py(FP-820): per-checkpoint status + claim codes, non-zero exit while gated checkpoints are open.solutionis no longer presented as a completion standard. - Tool-specific Skill install and network steps are authored from the same official documentation as the course; not yet exercised inside the tool — the pending live run-through below still stands.
- Agent: Devin (SWE-2 Max), CLI session on macOS arm64, system Python 3.14 (stdlib only — this course needs no third-party deps).
- Method: implemented
starter/report_tool.pyfromTASK.mdand the test expectations only; did not read or copysolution/. - Result:
python verify.py starterexits 0 (all nine tests);verify.py progressprinted all five claim codes (l03/l04[passed], l01/l02/l05[attest]). - Observed deviations: none — contract landed on the first pass. This course shares its task core (TASK/tests/scenario) with hands-on-python-with-claude-code, and the same implementation passes both suites.
- Limitations: challenge-mode run (TASK.md → tests), not the taught COURSE.md walkthrough — teaching quality remains separately pending.
- Starter restored to the deliberately-unfinished state after the run
(
--expect-failureverified again).