VC从感觉到工程

入门教程 · Lesson 05

完成第一次安全会话

认识 Plan、文件引用与会话命令,让 OpenCode 先观察、再计划、最后做一个可验证的小修改。

约 22 分钟首次会话 / Plan / 常用命令 / Git Diff

完成后你能:

  • 识别 OpenCode 的高频命令与输入语法
  • 把目标、范围和验收标准写进任务
  • 先使用只读探索,再授权修改
  • 用 Git Diff 与命令结果验证交付

第一次会话不做完整网站。我们只让 Agent 改进 README,并观察从指令到证据的整个过程。

先认识高频命令与输入语法

OpenCode 的斜杠命令用于控制会话;@! 则把文件或命令结果带进当前上下文。先记住下面这些,不需要一次全部使用:

输入 作用 什么时候用
Tab 切到 Plan 切换到只读规划 Agent 大改动前先探索、比较方案,不授权编辑
/init 扫描仓库并创建或更新 AGENTS.md 建立项目长期规则;下一课再实际执行
@README.md 精确引用文件并加入当前上下文 明确告诉 Agent 应重点阅读什么
!git status 直接运行 Shell,并把输出加入会话 快速提供仓库状态、测试或诊断证据
/compact 总结当前长会话,释放上下文空间 任务仍要继续,但对话已经很长
/new 开始一个空白新会话;别名是 /clear 当前任务已经结束,要切换到新目标
/sessions 查看并恢复旧会话;别名是 /resume 回到之前尚未结束的任务
/models 查看和选择可用模型 Provider 已连接,需要切换模型时
/undo/redo 撤销或重做最近一轮消息及文件改动 Agent 改错且仓库处于 Git 管理下
/help 打开当前版本的帮助 忘记命令或快捷键时

命令和快捷键会随版本变化。使用前可在 /help 中确认,也可核对 OpenCode TUI 官方文档

第一步:只读探索

在仓库中启动 OpenCode:

cd "$HOME/workspace/vibe_coding_guide"
opencode

Tab 切换到 Plan,然后输入:

先不要修改文件。
请检查当前仓库结构、@README.md 和 Git 状态,然后说明:
1. 这个项目现在有什么;
2. 下一步最小、可验证的改进是什么;
3. 你准备读取和修改哪些文件。

好的回复应该承认仓库几乎为空,并把范围限制在 README。若它声称看到了不存在的文件,先指出事实,不要继续授权。

你也可以直接输入 !git status,把未经模型转述的 Git 输出加入会话。它适合补充证据,但不能替代你最后在独立终端中的人工核对。

第二步:给出完整任务

目标:把 README 改成当前 Vibe Coding 教程项目说明。
范围:只允许修改 README.md,不创建其他文件,不安装依赖。
内容:教程目标、课程结构、技术约束、完成定义。
验收:
1. Markdown 结构清晰;
2. 不包含真实姓名、密钥或内部地址;
3. 修改后展示 git diff;
4. 不执行 git commit。
请先给出 3 步计划,等我确认后再修改。

先阅读计划。只有计划符合范围,才回复“按计划执行”。

第三步:自己查看证据

退出或另开终端:

git status
git diff -- README.md

逐行检查:

  • 只修改了 README;
  • 内容符合目标;
  • 没有虚构已经完成的网站功能;
  • 没有敏感信息。

如果不满意,不要只说“再好一点”。指出具体差异,例如“完成定义必须写成可勾选的四项,并删除没有证据的完成描述”。

第四步:接受并提交

确认内容后:

git add README.md
git commit -m "Clarify tutorial project README"
git status

任务结束后怎样处理会话

  • 任务还没结束、但上下文已经很长:使用 /compact
  • README 任务已结束,准备开始无关任务:使用 /new
  • 以后想回到这次会话:使用 /sessions/resume
  • Agent 最近一轮修改方向完全错误:先检查 git diff,再决定是否使用 /undo

不要把 /compact 当成新会话:它保留任务连续性,只压缩历史。也不要把 /new 当成删除记录:旧会话仍可从会话列表恢复。

如果 Agent 越界

先停止当前动作,再用 git statusgit diff 确认影响。不要立刻运行 Agent 建议的清理命令。如果只有未提交文件修改,可以逐个决定保留或恢复;涉及安装、网络或系统文件时,记录命令并联系管理员。

完成检查