Check Versions / 先测炉温,再铸剑
The API you remember and the API that's installed are not the same API until you've checked. 你记得的 API 和实际装着的 API,在你查证之前不是同一个 API。
The discipline / 纪律
- Verify the version first — run the version-check command, confirm the actual runtime/library version. 先确认版本:执行版本检查命令,确认实际运行时/库版本。
- Then read the docs — confirm how the feature actually behaves in that version. 再查文档:用官方文档确认该版本下特性的实际行为。
- Then write code — built on the confirmed version and docs. 后写代码:基于已确认的版本和文档开发。
Forbidden: writing code that depends on a specific language feature based on a version assumption from training data. 绝对禁止: 基于训练数据里的版本假设,直接写依赖特定特性的代码。
When this triggers / 触发时机
- About to use any concrete language / runtime / SDK / framework API.
- You suspect "I remember it's written like this" but aren't sure.
- A version-sensitive error (ESM/CJS, Python 3.x behavior diffs, deprecated Node APIs).
- Porting a snippet across projects.
Done criterion (verifiable) / 完成判据(可验证)
✅ You pasted the actual version-check command and its output (e.g. node -v → v18.20.4) and cited the docs section/URL for that version — not just "I checked".
⚠️ You couldn't verify the version — say so, and mark the code as needing a version check.
❌ You wrote API-dependent code from memory with no version check. Stop and verify.
Worked examples / 实战反例
Real before/after cases for this discipline live in EXAMPLES.md — read them before you act. 本纪律的真实 before/after 反例见 EXAMPLES.md —— 动手前先对照。