DSCC
主页 / cookbook / 03-refactor-rename

03 · Refactor — Rename Across Files

重命名函数是多文件重构的范式。本案例构造一个小项目:load_config 出现在 4 个文件里,让 DSCC 全部改成 load_settings,不碰无关代码。

演示能力

准备

在空目录里:

git init refactor-demo && cd refactor-demo
cargo init --lib
mkdir -p src/bin

cat > src/config.rs <<'RS'
pub fn load_config() -> String { "default".into() }
RS

cat > src/lib.rs <<'RS'
pub mod config;
pub use config::load_config;

pub fn describe() -> String {
    format!("cfg={}", load_config())
}
RS

cat > src/bin/app.rs <<'RS'
use refactor_demo::load_config;
fn main() { println!("{}", load_config()); }
RS

cat > tests/smoke.rs <<'RS'
use refactor_demo::load_config;
#[test] fn it_loads() { assert_eq!(load_config(), "default"); }
RS

git add -A && git commit -m "initial"

运行命令

dscc --model claude-sonnet-4-6 \
  --permission-mode workspace-write \
  prompt "$(cat ../dscc_cli/docs/cookbook/03-refactor-rename/PROMPT.md)"

真实运行产物见 report_dscc.md,最终 diff 见 diff.patch

注:模型会用 git grep 自查,因此无人值守运行请用 --permission-mode danger-full-access 或用 PreToolUse 钩子自动放行 git *

预期行为

模型通常会:

  1. grep_searchload_config,列出 4 个文件。
  2. 对每个文件一次 edit_file(或 replace_all: true)。
  3. 可能再跑一次 bash cargo check 确认构建。

不应出现无关改动。

验收

权限选择依据见 guides/permissions.md