mcpField
S
stack-detect

stack-detect

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

关于 stack-detect

用于数据库审计入口的确定性技术栈检测器,可识别数据库范式、引擎、ORM 和事实来源,并将各个数据库映射到适用的审计模块与评分配置。

主要功能

  1. 01检测数据库技术栈组件
  2. 02返回检测到的所有数据库
  3. 03排列 Schema 事实来源的优先级
  4. 04将技术栈分配到审计模块
  5. 05报告置信度和扫描文件

适用场景

  1. 01为项目选择审计模块
  2. 02分派多数据库审计
  3. 03确定权威 Schema 来源

安装

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

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

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

详细介绍

stack-detect(阶段 1 — 检测)

将项目归类为一个或多个 { paradigm, engine, orm, platform, source_of_truth, confidence, files } 技术栈。这是每次审计的确定性入口:它会选择评分器重新归一化所依据的范式配置文件(scripts/score.mjs → PROFILES),以及各审计器运行的模块集。

要做的事

  1. 解析目标目录($ARGUMENTS 路径;否则使用项目根目录 / 当前工作目录)。

  2. 运行检测器并读取其 JSON 标准输出:

    node scripts/detect-stack.mjs --dir "<dir>"
    

    它会返回 { stacks: [...], files_scanned }。切勿编辑或重新实现它——它是经过测试的基础。

  3. stacks 为空 → 离线状态下没有可审计的内容。不要猜测引擎。引导用户使用 /claude-db:start(引导式向导),或请用户用自然语言描述计划使用的数据库。原样呈现检测器的 hint。

真实来源优先级(参见 references/detection-signals.md)

当多个来源描述同一个数据库时,权威性依次为:

  1. 实时 Tier-1 内省(通过 introspect 技能)——优先于任何文件。
  2. 声明式 / 生成的构件——schema.prisma、Drizzle *_snapshot.json、structure.sql、schema.rb、生成的迁移 SQL → confidence: established。
  3. 迁移 SQL 优先于 ORM 程序源代码。
  4. ORM 程序源代码(schema.ts、models.py、Mongoose/CDK)→ confidence: directional。

从程序源代码解析出的 directional 技术栈绝不会突破严重性 5 的上限——它们会提示应使用生成的构件或 Tier-1。声明式构件与 ORM 源代码不一致时,即为架构漂移,应由 db-migration-safety(M22)处理。

为每个技术栈生成路由

对每个检测到的技术栈,生成编排器所需的路由信息:

  • paradigm → 选择 score.mjs 配置文件和 --paradigm 标志(relational | document | key-value | wide-column | vector | time-series | graph)。
  • module set → M0 引擎选择(建议,不评分)+ 根据范式配置文件筛选的 M1..M22。不会产生已评分发现的类别将停用——例如,不会因文档存储缺少外键而扣分。
  • source_of_truth + confidence → 传递给每条发现的解析可靠性上限(Tier 0(a) 可靠,Tier 0(b) 尽力而为)。

多存储

返回所有技术栈(例如,Postgres 主存储 + Redis 缓存)。编排器会分别审计各个存储,使用各自的 --paradigm 进行评分,并按每个轴汇总所有存储中的最差结果(参见 references/scoring-model.md → Multi-store rollup),同时指出产生最低评分的存储。

输出

输出原始 stacks 数组、每个技术栈的路由信息(范式配置文件 + 模块集),以及真实来源优先级说明。叙述保持简洁。使用用户的语言作答(EN/ES)。

评论

支持 Markdown