浏览 AI使用教程

Claude Code首次任务:限定目录、验证与撤销

Claude Code 第一次进入仓库时,任务边界比提示词长度更重要。限定目录、保留现有改动,并约定验证与撤销方式,才能知道它究竟改了什么。

沿完整工作流推进

前一阶段的可检查结果,是下一阶段的输入;中间证据不足时停在当前阶段。

  1. 01一句“修一下登录”,可能让三个应用一起被改
  2. 02先确认这次任务的起点、边界和交付
  3. 03从“准备独立练习副本”走到“复测与局部恢复”
  4. 04按本次任务检查请求
  5. 05完成后的第一次任务、diff 和回滚记录
沿同一任务走到交付

一句“修一下登录”,可能让三个应用一起被改

教学任务:一个 monorepo 同时有 web 与 admin 登录模块。只修改 web 的空密码提示,admin 已有未提交改动;先用明确文件路径和测试把任务范围锁住。

以下为教学练习,不模拟真实密码验证系统;good 只是断言用固定输入。规则文字不是强制沙箱,仍要查看实际工具请求和 diff。

  • 目录与动作边界已复述
  • 无关未提交改动保持原样
  • 撤销本次改动不会影响别人工作
本例材料

先确认这次任务的起点、边界和交付

需要确认本例内容
现有材料Git、Node.js 20+;Claude Code 已完成安装和连接;练习文件为 apps/web/login.mjs、apps/web/login.test.mjs,apps/admin/note.txt 模拟已有改动。
不能越过的边界允许读取依赖包,但只修改 web 登录页及其测试;不覆盖 admin 改动,不提交、不部署。
要交付的结果第一次任务、diff 和回滚记录
处理记录

从“准备独立练习副本”走到“复测与局部恢复”

当前阶段实际处理
准备独立练习副本使用下方两个文件建立 apps/web,并在 apps/admin/note.txt 写入任意标记。用 Git 提交练习基线后,再修改 admin 标记,记录已有差异。
先运行基线node --test apps/web/login.test.mjs 应先通过。失败时修正文件路径或 Node 版本,不让 Agent 一边修环境一边改需求。
发出范围明确的任务只改 web 模块与测试,给出预期文案和不得改变的错误密码行为;读取共享模块可以另行说明,修改授权不能自动扩大。
审查必要权限允许读取当前练习文件并运行已查看的测试。若请求安装依赖、写 admin 或提交 Git,本例不需要,保留请求并停止该动作。
复测与局部恢复比较 web diff 与 admin 基线;确认 web 两文件自基线以来无他人修改后,用 git restore --worktree -- apps/web/login.mjs apps/web/login.test.mjs 撤销练习,重跑原断言。
完整练习文件

web 的空密码提示与非空分支

apps/web/login.mjs

教学函数

export function loginMessage(password) {
  if (!password) return '登录失败';
  return password === 'good' ? '欢迎' : '登录失败';
}
apps/web/login.test.mjs

基线断言

import test from 'node:test';
import assert from 'node:assert/strict';
import { loginMessage } from './login.mjs';
test('空密码', () => assert.equal(loginMessage(''), '登录失败'));
test('错误密码', () => assert.equal(loginMessage('wrong'), '登录失败'));
test('正确输入', () => assert.equal(loginMessage('good'), '欢迎'));
交给 Claude Code

对准 apps/web,拒绝同名目录漂移

任务卡

首次项目修改

在当前练习仓库,只允许修改 apps/web/login.mjs 与 apps/web/login.test.mjs。
把空密码提示改成“请输入密码”;wrong 和 good 的返回结果不变。
apps/admin/note.txt 有已有改动,禁止碰它。先读取 Git 状态与本例文件,说明修改计划。
完成后运行 node --test apps/web/login.test.mjs,展示 diff 和退出码。
不安装依赖、不访问网络、不提交、不部署;出现路径不符或基线失败时先报告。
权限判断

按本次任务检查请求

请求本例处理理由
读 apps/web 与 Git 状态允许查清目标和已有改动
运行指定 Node 测试先查看脚本,再允许验证完成标准
改 apps/admin停止超出文件范围
安装新断言库不需要本例只用 Node 内置测试
提交或部署不执行练习只验收工作区差异
预期交付

完成后的第一次任务、diff 和回滚记录

预期交付为 web 两个文件的 diff、node --test apps/web/login.test.mjs 的结果,以及 admin 原有差异未变化的对照。空密码提示应变为“请输入密码”,错误密码仍为“登录失败”。未在真实账号运行 Claude Code,不能将此预期写成实测。

常见失败

为什么“限定了目录,Agent 仍建议修改共享包”还不能交付

限定了目录,Agent 仍建议修改共享包

原因
根因可能在依赖,但修改授权没有扩大
怎么改
先报告证据和影响文件,等待明确扩大范围;不要把建议自动执行
验收方式

第一次任务、diff 和回滚记录通过哪些检查才算完成

进一步核对

Agent 起步:参考资料与核对入口