关于 pythia-impact
pythia-impact 是面向开发者的工作流技能,用于修改共享数据库中的 Oracle 对象。它要求在提出代码更改前测量依赖关系并记录已有的失效对象。
主要功能
- 01用 pythia impact 测量依赖对象
- 02用 pythia deps 检查依赖关系
- 03记录失效对象基线
- 04升级处理影响广泛或跨模式的情况
适用场景
- 01评估修改 Oracle 对象的影响
- 02检查表结构更改影响的程序
- 03为影响范围较大的更改事先征求批准
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ thaildhe172591/ pythia --skill pythia-impact安装后在 Claude Code 中输入/pythia-impact确认已加载。
详细介绍
修改前先评估影响
开始时宣布:“正在使用 pythia-impact,先评估影响范围。”
**阶段:**了解——也是第一个 Ask 关卡:影响范围很大时,必须在编写任何代码之前告知开发者
修改 Oracle 对象会重新编译或使所有依赖它的对象失效——立即在整个架构范围内影响共享数据库的所有用户。只需运行一条命令,就能提前了解代价。
铁律
NO CHANGE PROPOSED WITHOUT ITS IMPACT MEASURED FIRST
工作流
pythia impact <OBJECT> --depth 2— 以树状结构列出所有依赖它的对象,最后一行是关键:-- impact: N dependent objects, M currently VALID。pythia deps <OBJECT> --depth 2— 查看反向依赖,即它使用了什么;如果修改涉及调用或表访问,就要查看。pythia invalid— 查看基线。修改前已经处于 INVALID 状态的对象,之后不能归咎于这次修改;apply 会自动进行对比,但你也应该了解初始状态。
解读数字
| 结果 | 应对方式 |
|---|---|
| 0 个依赖对象 | 说明这一点,然后继续;apply 后仍要验证。 |
| 1–9 个依赖对象 | 将它们与修改提案一并列给开发者。 |
| 10 个以上依赖对象,或存在任何跨架构依赖对象 | 展示依赖树,并在编写任何代码之前获得明确同意。 |
| 依赖对象已处于 INVALID 状态 | 指出这些对象——相关区域已经不稳定。 |
表也应与代码一样处理:对表运行 impact,即可查看每个会因 ALTER 而失效的程序。
危险信号——如果发现自己有以下想法,请停止
| 想法 | 实际情况 |
|---|---|
| “这只是一个小型辅助对象” | 辅助对象往往是依赖最多的对象。 |
| “写完代码后我再检查影响” | 那时数字已经无法影响设计,为时已晚。 |
| “apply 中的预览也会显示影响” | 那只是确认你已知的数字,不是用来发现影响。 |
| “这是个新对象,没有任何依赖” | 确实如此——请说明这一点,并以 impact 输出为证据,而不是凭假设。 |
交接
影响已知且可接受 → 使用 pythia-write 按照代码库的惯例编写修改 → 使用 pythia-apply,通过预览和验证将其落地。
评论
支持 Markdown