SuperAPI AI 工具集

preflight

通用与其它

查看项目

更新于 10-16 04:28

技能介绍

用途:preflight 是变更门控、分支范围的 lint 预检技能。它只检查 origin/<base>...HEAD 涉及的相关类别、只针对被改动路径,而非全仓库 pnpm lint,并把每条违规分类为「本分支引入」(位于本分支新增或修改的行)或「既有」(文件本就存在),是 preflight 循环的唯一事实来源。

使用方式:两种入口——独立运行 /preflight 做快速检查,修复留在工作区;或嵌在 ship 流程(如 /send-it)中作为提交后、changelog/推送前的 lint 门。运行前先 git fetch origin <base>,再执行 node skills/preflight/scripts/preflight.mjs(可加 --dry-run 仅报告类别与范围文件列表,不写 .preflight-summary.json)。脚本仅用 Node 内置模块,无需 npm install。

主要能力与退出码:先校验当前 Node 主版本是否匹配仓库 pin(engines.node 精确 pin 或 .nvmrc 主版本),不匹配以退出码 1 并给出切换提示。Exit 0 通过;Exit 1 为引入性违规(阻塞),运行 node skills/preflight/scripts/lint-fix.mjs 后重跑,默认仅引入的 ESLint 错误阻塞,warning 非阻塞;Exit 2 仅既有违规,让用户选立即修复或延后(在 Linear 建债务 issue,需 linearTeamName 与 debtProject 同时非空,缺失则禁用建单)。分类含 ESLint、markdownlint、actionlint,按分支改动触发,缺对应二进制时警告并跳过。

配置与限制:基分支从 origin/HEAD 自动检测,回退 main;工作区由 pnpm-workspace.yaml 与各包声明 lint script 推导。可在仓库根 preflight.config.json 覆盖 baseBranch、blockOnWarnings、workspaces、linearTeamName、debtProject。修改 lint 配置或添加 ignore/disable 属开发者决策,代理不得为之清违规;lintSurface 仅作信息展示,不阻塞,具体规则见 references/lint-surfaces.md。typecheck、测试与框架检查不属于 preflight,仍留在 CI。其他细节资料暂未提供。