关于 stack-detect
用于数据库审计入口的确定性技术栈检测器,可识别数据库范式、引擎、ORM 和事实来源,并将各个数据库映射到适用的审计模块与评分配置。
主要功能
- 01检测数据库技术栈组件
- 02返回检测到的所有数据库
- 03排列 Schema 事实来源的优先级
- 04将技术栈分配到审计模块
- 05报告置信度和扫描文件
适用场景
- 01为项目选择审计模块
- 02分派多数据库审计
- 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),以及各审计器运行的模块集。
要做的事
-
解析目标目录(
$ARGUMENTS路径;否则使用项目根目录 / 当前工作目录)。 -
运行检测器并读取其 JSON 标准输出:
node scripts/detect-stack.mjs --dir "<dir>"它会返回
{ stacks: [...], files_scanned }。切勿编辑或重新实现它——它是经过测试的基础。 -
stacks为空 → 离线状态下没有可审计的内容。不要猜测引擎。引导用户使用/claude-db:start(引导式向导),或请用户用自然语言描述计划使用的数据库。原样呈现检测器的hint。
真实来源优先级(参见 references/detection-signals.md)
当多个来源描述同一个数据库时,权威性依次为:
- 实时 Tier-1 内省(通过
introspect技能)——优先于任何文件。 - 声明式 / 生成的构件——
schema.prisma、Drizzle*_snapshot.json、structure.sql、schema.rb、生成的迁移 SQL →confidence: established。 - 迁移 SQL 优先于 ORM 程序源代码。
- 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)。