mcpField
P
pythia-impact

pythia-impact

github.com/thaildhe172591数据与数据库4137 次安装4 天前更新
代码仓库

关于 pythia-impact

pythia-impact 是面向开发者的工作流技能,用于修改共享数据库中的 Oracle 对象。它要求在提出代码更改前测量依赖关系并记录已有的失效对象。

主要功能

  1. 01用 pythia impact 测量依赖对象
  2. 02用 pythia deps 检查依赖关系
  3. 03记录失效对象基线
  4. 04升级处理影响广泛或跨模式的情况

适用场景

  1. 01评估修改 Oracle 对象的影响
  2. 02检查表结构更改影响的程序
  3. 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

工作流

  1. pythia impact <OBJECT> --depth 2 — 以树状结构列出所有依赖它的对象,最后一行是关键: -- impact: N dependent objects, M currently VALID。
  2. pythia deps <OBJECT> --depth 2 — 查看反向依赖,即它使用了什么;如果修改涉及调用或表访问,就要查看。
  3. pythia invalid — 查看基线。修改前已经处于 INVALID 状态的对象,之后不能归咎于这次修改;apply 会自动进行对比,但你也应该了解初始状态。

解读数字

结果应对方式
0 个依赖对象说明这一点,然后继续;apply 后仍要验证。
1–9 个依赖对象将它们与修改提案一并列给开发者。
10 个以上依赖对象,或存在任何跨架构依赖对象展示依赖树,并在编写任何代码之前获得明确同意。
依赖对象已处于 INVALID 状态指出这些对象——相关区域已经不稳定。

表也应与代码一样处理:对表运行 impact,即可查看每个会因 ALTER 而失效的程序。

危险信号——如果发现自己有以下想法,请停止

想法实际情况
“这只是一个小型辅助对象”辅助对象往往是依赖最多的对象。
“写完代码后我再检查影响”那时数字已经无法影响设计,为时已晚。
“apply 中的预览也会显示影响”那只是确认你已知的数字,不是用来发现影响。
“这是个新对象,没有任何依赖”确实如此——请说明这一点,并以 impact 输出为证据,而不是凭假设。

交接

影响已知且可接受 → 使用 pythia-write 按照代码库的惯例编写修改 → 使用 pythia-apply,通过预览和验证将其落地。

评论

支持 Markdown