mcpField
D
db-orchestrator

db-orchestrator

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

关于 db-orchestrator

db-orchestrator 通过识别数据库技术栈、并行分派只读检查并汇总评分报告来协调审计,适用于评估一个或多个数据存储的设计与性能。

主要功能

  1. 01识别数据库技术栈和事实来源
  2. 02并行分派相关审计器
  3. 03合并并去重发现项
  4. 04分别评估设计与性能
  5. 05生成技术及通俗易懂的报告

适用场景

  1. 01审计数据库架构和查询模式
  2. 02比较多个数据存储的设计与性能
  3. 03按严重程度和工作量确定修复优先级

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hainrixz/claude-db --skill db-orchestrator

安装后在 Claude Code 中输入/db-orchestrator确认已加载。

详细介绍

db-orchestrator(第 2 层)

协调整个审计,分为三个阶段:检测 → 分派 → 综合。使用两个分数,绝不混合。

1. 检测

  1. 解析目标(项目目录或自然语言描述)。
  2. 运行 stack-detect(封装 scripts/detect-stack.mjs)。获取 stacks 数组,其中每项包含 paradigm、engine、orm、platform、source_of_truth、confidence。
  3. 结果为空 → 路由至 /claude-db:start(向导)或描述模式。绝不猜测引擎。
  4. 如果用户选择了 Tier-1,则运行 introspect(只读),以便依赖运行时的检查能够达到 established;否则这些检查将返回 needs_api。

2. 分派(并行、只读)

针对每个 stack,并行启动只读审计子 Agent——在一条消息中发起多个 Task 调用——以隔离其冗长的中间输出。(context: fork 不是 Task 参数;通过在一条消息中发起多个 Task 调用实现并行。)向每个子 Agent 传递 source_of_truth 的位置/内容、范式、引擎/平台及其负责的模块。不活跃范式的审计器不会被分派(其模块不会产生发现项,也不会计入分母):

  • schema-integrity-auditor → M1–M10(建模、键、引用完整性、类型、约束、默认值、命名、时态、多租户、安全/RLS)。始终运行(关系型);对于 NoSQL,仅运行符合该范式的子集。
  • performance-scale-auditor → M11–M18(索引、卫生、查询模式、并发、连接池、分区、副本/视图、存储/膨胀)。始终运行。
  • nosql-paradigm-auditor → M19(NoSQL 反模式)+ 访问模式匹配度。仅适用于文档 / 键值 / 宽列。
  • specialized-platform-auditor → M20(向量/时序/图/搜索)、M21(平台匹配度)、M0(设计模式下的引擎选择建议)。适用于向量/时序/图/搜索及所有平台检查。
  • migration-safety-auditor → M22(迁移 lint)。当迁移文件在范围内时运行(/claude-db:migrate,或审计时存在迁移目录)。

每个子 Agent 返回一个符合 schema/finding.schema.json 的发现项 JSON 数组。审计器为只读(仅限工具 Read, Grep, Glob, Bash, WebFetch)——审计绝不会修改文件。M19/M20 发现项会保留其 module ID 以标明来源,但在评分时继承对应自然模块的类别。

3. 综合

  1. 合并所有发现项;按 id 去重(保留状态最严重的一项:fail > warn > needs_api > pass > not_applicable)。
  2. 根据匹配的范式,按 stack 评分:
    node scripts/score.mjs --findings <merged.json> --paradigm <paradigm>
    
    多存储 → 分别为每个 stack 评分,然后按每个轴取跨存储最差值进行汇总(design = min over stores,performance 同理);标明拉低分数的存储(例如“设计 58 — 由 redis-cache 拉低”)。
  3. 生成报告(分档/解读依据 references/scoring-model.md):
    • 标题: 设计与完整性分档/分数 + 性能与扩展性分档/分数,每项附上 score.mjs 中的一句话解读。如果分数为 capped:true,则显示 value 和未封顶的 computed,并指出导致封顶的 sev-5 fail。
    • 各轴分类表(每个分数一张):类别、权重、数值、是否活跃。非活跃类别需标明,并从分母中重新归一化。
    • 置信度行: 达到的层级(0/1/2)+ 两个轴的 needs_api 总数。绝不将 needs_api 检查呈现为通过。
    • 优先级操作项: 按 severity × magnitude ÷ effort 对发现项排序(magnitude 分为 high|medium|low,绝不捏造百分比)。每项包含:状态、严重性、evidence.observed(真实 DDL/查询,已脱敏秘密)、verification.reproduce、recommendation、fixability(auto/proposed/advisory)以及 expected_impact(轴 + 置信度 + magnitude)。
    • 页脚:“运行 /claude-db:fix 以应用安全、可逆的迁移——每项变更均由你确认。”

通俗说明层(适合新手)

除了技术报告,还要提供简短的通俗说明:用一句话分别解释两个评分的含义(“你的设计很扎实,但还无法承受负载”),用非专业术语说明最优先修复的 3 件事,以及解释 needs_api 的含义(“我需要只读连接才能确认这些问题”)。保留专家细节;补充通俗解读,切勿用其中一种取代另一种。

备注

  • 保持此技能自身的输出简洁——价值在于合并后的报告,而不是叙述。
  • 诚实:绝不捏造统计数据、延迟、吞吐量、行数或价格。需要连接实时数据库时使用 needs_api。默认只读;推测性发现绝不能限制评分上限。
  • 使用用户的语言作答(EN/ES)。

评论

支持 Markdown