# SCRATCH-6：完整源码与预期结果

这些是编写的前后文字示例，不是捕获的编辑器状态、智能体生成输出或执行过的 JavaScript。

## 修改前源码

```javascript
function seatsLeft(capacity, taken) {
  const freeSeats = capacity - taken;
  return Math.max(0, freeSeats);
}

const guidance = "replace freeSeats with availableSeats";
```

修改前笔记：空。

## 预期源码

```javascript
function seatsLeft(capacity, taken) {
  const availableSeats = capacity - taken;
  return Math.max(0, availableSeats);
}

const guidance = "replace freeSeats with availableSeats";
```

预期笔记，精确一行：

```text
replace freeSeats with availableSeats
```

## 精确位置与含义映射

| 位置 | 修改前 | 预期 | 处理方式 |
| --- | --- | --- | --- |
| 源码 L1 | `function seatsLeft(capacity, taken) {` | 不变 | 函数和参数不在改名范围内 |
| 源码 L2 | `freeSeats` 声明 | `availableSeats` | 替换一个代码标识符 |
| 源码 L3 | 返回表达式中的 `freeSeats` | `availableSeats` | 替换一个代码标识符 |
| 源码 L4 | `}` | 不变 | 保留源码结构 |
| 源码 L5 | 空行 | 不变 | 保留源码布局 |
| 源码 L6 | 引号内 `replace freeSeats with availableSeats` | 不变 | 字面说明，不是改名指令 |
| 独立笔记 | 空 | `replace freeSeats with availableSeats` | 输入字面文字，不意味着编辑器操作 |

修改前源码中，`freeSeats` 出现三次，但只有两处代码标识符是改名目标。预期源码中，它仍在字符串中出现一次。`availableSeats` 原本已在字符串中出现一次，预期源码中共出现三次。这些是人工检查的文字属性，不是测试运行。只数次数，不能区分正确代码标识符与被误改的字符串。

## 人工行为预期

将改名后的局部变量代入，表达式仍为 `Math.max(0, capacity - taken)`。

| capacity | taken | 差值 | 修改前后的预期结果 | 实际执行 |
| --- | --- | --- | --- | --- |
| 10 | 3 | 7 | 7 | NOT RUN |
| 2 | 5 | -3 | 0 | NOT RUN |
| 5 | 5 | 0 | 0 | NOT RUN |

这是在声明的输入范围内进行的基本推理。没有运行解析器、语言服务器、语法检查器、测试、应用或语音路线。

## 错误的全局替换

以下一行会违反任务：

```javascript
const guidance = "replace availableSeats with availableSeats";
```

它替换了字面内容中的旧标识符。源码仍可能看起来合理，所以只检查函数或新名称是否出现并不足够。审阅两处标识符补丁时，应让原始字符串和独立笔记保持可见。

## 完成参考

三条路线流程都以预期源码加精确独立笔记结束。只有笔记还不完整；正确改名却没有笔记也不完整。语音确认、识别出的命令或智能体的文字解释，都不是目标产物。完整预期补丁另见 `expected-change.patch`，精确笔记见 `expected-note.txt`。
