Source-bound English reading edition. The original as_of date, source URLs, dates, locators, claim IDs and factual approvals remain in the canonical metadata. Review of this edition is separate and does not refresh those facts or authorize runtime.
Qwen Code: the system-prompt builder and the edit and todo_write tool schemas at a pinned tag
This card records only one open-source coding agent's published system-prompt builder and two tool definitions at a pinned release tag, to be read beside the Codex CLI base-instructions card in Week 2's "Compare two production prompts" activity. It does not describe the complete prompt that any Qwen Code run sends to a model: prompts.ts assembles different text by interaction mode, sandbox, Git repository and environment variables, and the runtime may add context files and reminders; this card infers none of them. Permission modes are on the Qwen Code card.
Open the files at the pinned commit: the prompt builder (read the identity sentence, "Core Mandates", "Software Engineering Tasks", "Using Your Tools", "Executing actions with care" and "Final Reminder"), the edit tool, the todo_write tool and the tool names.
Use boundary: link the original at the pinned commit; do not copy these files into the course repository. Student materials quote only a few words, naming the project. The Apache-2.0 obligations are those stated in the original LICENSE. The card compares no vendors and does not judge the quality of the instructions.
Course verification: for each selected sentence or schema rule, ask what it makes the model do and what enforces it. For example, edit's required parameters are in the schema; the absolute-path rule and "a second match fails" are checked by the tool's code, which returns an error text to the model; "at least 3 lines of context" appears only in the description. todo_write's status values are an enum in the schema, while "at most one in_progress" appears only in the description. This card establishes only that todoWrite.ts itself has no such check, not whether other code checks it, so mark it "cannot tell".