📄 一句话概括
权限的本质是一张你自己写的判断表:红线在哪只有你知道;把判断写成规则,而不是每次临场决定。
📝 本节和前面几节的关系
上一节分的是【放不放手】,这一节讲【规矩从哪来、怎么固定下来】。
一、先承认一件事:它的判断力不如你
它会自信地做错事,而且不会主动提醒你这件事有风险。 所以权限规矩不能指望它自觉——只能由你来定。 这不是不信任,是分工:它跑得快但边界感弱,你有边界感。
二、把判断写成表,而不是临场决定
临场决定的问题是:同一件事,这次你答应了,下次你忘了,规矩就形同虚设。 写成表之后,规矩就住在文件里,每次都一样,不靠记性。 本节的演示把规则写成了一段真判断函数——同样的逻辑,你照着改成自己的红线就行。
三、三类权限,一次配好
红线(永远拒绝):删数据、推远端、发布上线。这类词直接进拒绝名单。 要确认(每次问一句):装依赖、升级版本、改配置。范围说清了再放。 放行:读文件、看代码、跑只读查询。 配好之后,你只需要在要确认那一档多说一句范围,其余不必管。
四、规矩要定期回头看
规矩不是一配终身。新出现的动作类型(部署、发消息、改权限)要补进对应档位。 每季度花十分钟回看一遍:你现在授权的动作里,有没有哪条其实该挪到红灯?
五、动手 Demo:权限判定器——你自己定规矩
下面把三类权限写成真代码,跑八个动作看判定结果。
def decide(action, dest=""):
for k in (u"删", u"推送", u"发布", u"覆盖环境变量"):
if k in action:
return u"拒绝", u"命中红线:%s" % k
for k in (u"装", u"升级", u"改配置", u"覆盖", u"远程"):
if k in action:
return u"要确认", u"命中黄灯:%s" % k
return u"放行", u"只读或本地改动"
实跑输出:
--------------------------------------------------------------------
权限判定器——你自己定规矩
--------------------------------------------------------------------
权限的本质是一张判断表。下面这段把规则写成真代码,跑一遍看它怎么判:
动作 判定 依据
---------------------------------------------------
读取项目文件 放行 只读或本地改动
跑测试看结果 放行 只读或本地改动
修改日期格式化函数 要确认 改动落在源码目录
修改页面样式 要确认 改动落在源码目录
安装一个新依赖 要确认 命中黄灯:装
升级依赖版本 要确认 命中黄灯:升级
删掉临时目录 拒绝 命中红线:删
推送到远端仓库 拒绝 命中红线:推送
这张表的价值不在判定逻辑,在**它是你写的**——红线在哪只有你知道。
八个动作里:四个放行、两个要确认、两个拒绝。顺序很重要——先查红线再查黄灯,否则【删除配置】会被当成要确认。 这段逻辑的价值不在判定,在于它提醒你:红线清单只能自己写。
30 秒实验
- 写下你的三条红线(不许删/不许推送/不许动配置),写到能看见的地方。
- 想一想:这个月有没有出现过一个【不在你清单里】的新动作?补进去。
常见误区
- 把规矩定得太松。【删数据】这类动作一旦进了绿灯档,代价不可逆。
- 定完就不再看。新工具、新动作类型一直在出现,规矩要定期回头补。
自测三问(点开对答案)
1. 权限为什么必须由你来定? —— 它会自信地做错事且不会提醒风险,边界感这件事它不如你。 2. 三类权限分别是什么? —— 红线(永远拒绝)、要确认(每次问一句)、放行(只读与本地改动)。 3. 判断表里为什么先查红线再查黄灯? —— 像【删除配置】这种会同时命中两个关键词,先查红线才不会漏判。- ☐ 下一节(4.4 Git操作:Claude Code天然就懂)
相关笔记
- 💻 计算机是怎样跑起来的 · 索引 — 程序出错时怎么定位与回退
- 🧡 Claude Code橙皮书 · 索引