Đổi tên một hàm, chỉnh cái nó trả về, sửa một giá trị mặc định — cảm giác như chỉ là một dòng. Agent sửa, file trông sạch, cái test nó chạy vẫn xanh. Cái nó không hề thấy là mười một chỗ khác từng gọi hàm đó và đang trông chờ hình dạng cũ. Những chỗ đó không vỡ ầm ĩ; chúng vỡ sau, ở nơi bạn không nhìn tới, lần lượt từng cái một.
Một symbol dùng chung không có khái niệm "sửa cục bộ". Mọi thay đổi lên nó là thay đổi lên tất cả những gì phụ thuộc vào nó — mà agent, khi làm trong một file, chỉ thấy đúng cái file trước mặt. Rule này buộc nó nhìn ra ngoài trước khi đụng vào bất cứ thứ gì đang gánh:
✕ Không có rule
✓ Có rule
Dán vào CLAUDE.md của bạn. Với một hàm riêng tư, độc lập, nó không tốn gì — chẳng có nơi gọi nào để liệt kê, rule tự nhường đường. Chỗ nó đáng giá là đúng nơi thiệt hại ẩn nấp: cái helper dùng chung, cái config key, cái signature công khai mà năm mươi thứ ngầm dựa vào. Find-and-replace là công cụ nguy hiểm nhất trong tình huống đó, vì nó thay chữ mà không hiểu đồ thị gọi — nên rule bắt agent truy trước khi đụng.