斯凯莱通
特工Repos 变得混乱快。 技能被复制, 博士不同意, 链接去 stale, 没有人记得 哪些文件实际上是虚构的.
Skeleton是那个层的SSOT插座 定义合同一次; Skeleton在当地和CI中检查. 如果犬科医生消失,SSOT标记漂移,技能指数停止匹配磁盘,或局部链接中断,审计在合并前会失败.
想想ESLint吧,为了你的特工们所依赖的文档和技能。 初级 CLI 从 src/cli.ts数字 : audit, (中文(简体) ), validate, (中文(简体) ), route, (中文(简体) ), context, (中文(简体) ), review, (中文(简体) ), catalog, (中文(简体) ), init,以及 build-plugin命令通过该条目文件发送.
斯凯尔顿是 没有 一个运行时的特工带。 它不执行工具,执行权限,管理内存,运行一个审查器模型,发布或解析PR注释,或取代CODEOWINERS,分支保护,合并队列,或推出工具. 它检查了这些系统周围的回收是否还在一起.
为什么这很重要
特工们可以读取回文 他们无法可靠地推断出 3 个相互矛盾的文档中哪一个胜出, 是否应该在此编辑一个同步的技能, 或者哪个验证命令能证明一个变化.
这需要明确,并在今后50份公关之后保持真实。 斯凯莱顿把这些公约变成检查:
| 代码重置 | 代理重置 |
|---|---|
| ESLint 捕获破损的进口,未用 vars,样式漂移 | Skeleton捕获断链,坏的SSOT标记, Stale doc-meta, 拒绝 |
eslint --fix 在已更改的文件上 | skeleton validate changed 关于已修改的文件、技能和匹配文档的依赖性 |
| 承诺前 + CI 门 | --staged 承诺前 + --base CI 门 |
Skill linters 问: "这是SKILL.MD造型良好吗?"
Skeleton 询问 repo 级别问题 : "这整件事还同意自己吗?"
快开始
npm install -D @csark0812/skeleton
npx skeleton init --skills
写着 skeleton.toml,添加验证脚本,写 .pre-commit-config.yaml,添加边框 skeleton context 指南 AGENTS.md,添加 .skeleton/catalog.md 改为 .gitignore,并复制已安装的软件包所捆绑的Skeleton技能.
编辑 skeleton.toml 用于您的回波布局,然后验证:
npx skeleton catalog
npx skeleton audit docs
旗帜细节 : 安装。 。 。 .
它检查什么
- SSOT 标记 ——选入
source-of-truth(评论或可见);双重/形式失效;接受遗留旗帜 - 近复制文件 ——接合重叠+重复的SSOT摘要(警告/
--strict(中文(简体) ) - SSOT 简况 ——单行道与机体的热力重叠(警告 /
--strict(中文(简体) ) - 链接审计 ——被破解的 refs,技能链接,以及被扫描的标记下锚;一个代码或JSON文件中的锚必须指定一个存在的符号或密钥(
src/run.ts#parseArgs, (中文(简体) ),package.json#scripts.test(中文(简体) ) - 软件包参考 a 包括:
pnpm <script>- 任何医生的样式命令必须用最近的脚本命名package.json; 数据AGENTS.md除了必须引用准确的packageManager财务报告和审定财务报表engines.node - 技能指数 磁盘匹配检测到的技能根部的分类学 README
- 否认。 路径 ——必须不存在的文件的缩写(往往在外)
scan.include(中文(简体) ) - 覆盖面差距 ——扫描周边外的标记(只警告)
- 元数据 - 索引和包含SSOT文件的拥有者
- 系统文档 ——文件更改后,文件宣布在
review-deps警告,在承诺前和请求中,当文件没有改变时。 没有记录审查, 因此文档完全合并为 git 合并它们; apackage.json释放versiona外的更改#选择器(JSON密钥、Markdown部分、JS/TS声明)和只编辑Doc-meta的编辑不计数 - 依赖路线 ——已更改的仓库文件自动将匹配文档拖入验证中
- 倡导政策 (可选插件) — YAML 模式规则; 无插件闲置
- Shell / JSON 语法 更改后的轻量级检查
.sh财务报告和审定财务报表.json文件
特工偷懒 .skeleton/catalog.md (出出出出出出出出出出出出出出出出出出出出出出出入出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出.
对于将犬科文件并入其申报的来源所有人和最近的重点测试的有界限的证据捆绑,使用 skeleton context。当 Skeleton 能够生成寄存器内置焦点命令时,捆绑包括 test-command中标出整个文件的节选 whole-file,则a reference 线条列出每个从请求中命名代码标识符的有轨文件与行(驼峰Case,PascalCase,或snake case),因此重命名不需要进一步搜索. 仅读,并报告申报来源是否发生变化,而文件没有:
skeleton context "billing webhook retry"
skeleton context --path src/billing/delivery.ts
skeleton context "billing webhook URL" --staged
当一个已声明的源更改而文档未更改时,上下文会打印一个 action 线条要求对照返回源检查最终拥有的文档,并在完成前纠正所有不匹配。 当上下文返回时 no-context,它的动作要求代理检查附近的代码,测试,和docs,修复或创建可持久行为的犬类所有权,然后重复同样的请求,直到所有者被送回. 只读任务不编辑地报告缺口 .
背景显示为未声明的文件审查动作 review-deps (单位:千美元)unreviewed),在工作树或索引中更改而文档未更改的已声明来源(changed-since-review)和一份其最后承诺比所配置的胆量年长的文档review-required) (中文(简体) ). 在没有申报来源的情况下,将积极执行主张与来源进行比较;历史的替代办法和未来的愿望仍然是限定意图. current 是指被宣布为承诺的来源,而不是文件同意它们.
每份相配的论文都得到节选预算的一部分,因此一个大业主不能全部消费. omitted 财务报告和审定财务报表 omitted-source 列出被排除在外的文件和已申报的来源,并采取行动缩小查询范围,增加 --max-chars,或报告剩余证据限额。 审查状况比较了完整的宣布的依赖性集,包括从 glob 中删除的文件,即使省略了节录. 二进制声明源列表于 omitted-source从来没有被摘录。 完成相关审查和疏漏行为,然后作为充分证据处理.
预防消费者还需要: review-deps 执行请求和运行 validate changed 源代码更改。 使用范围 [reviewCoverage] 政策拒绝需要所有权的无主途径。 只有医生的钩子或 include = [] 把这些源头移到所有权门外 Skeleton不会从散文中推断出语义冲突.
共享的参考文件可以在任何被扫描的路径中存在. 公共寄存器可以直接将技能链接到GitHub托管的参考文献;Skeleton将这些外部链接保留不变,不检查它们的远程可达性.
Skeleton不能取代你的密码门 保留TypeScript,Python,Nx,pytest,其余在拥有它们的Repo.
合同
配置居住于 skeleton.toml 在 repo 根(首选) 。 可选条件 .skeleton/数字 :
skeleton.toml # scan perimeter, deny.paths, docsLint, …
.skeleton/
├── catalog.md # generated by `skeleton catalog` (gitignored)
└── plugins/ # optional consumer audit plugins (.ts + built .mjs)
遗产 .skeleton/config.yaml 当没有 TOML 存在时, 仍然在装入 .
每个犬科医生都选入有标记的目录:
<!-- source-of-truth: Backend API conventions -->
然后刷新代理索引 :
skeleton catalog
在自有工具箱 repo 中编辑同步技能 。 消费者副本只读.
图标
skeleton init [--skills]
skeleton catalog [--check] [--strict]
skeleton audit docs|skills|self [--strict] [--json] [--paths=a,b] [--fix[=anchors|ssot]] [--dry-run]
skeleton build-plugin [path] [--check]
skeleton route [path…]
skeleton context <query> | --path <path> [--staged] [--max-chars=N]
skeleton validate changed [--staged | --base <ref>] [paths…]
skeleton review prepare [--staged | --base <ref>] [--paths=a,b] [--json] [--run]
审查准备 为有新上下文的审查员打印一个自成一体的捆绑:审查员合同、需要人员的路径([review] humanPaths,用于重读和更新的文档,匹配 REVIEW.md 指南, AGENTS.md 没有代理上下文指南, 和 diff 。 任何吊带或CI步骤都进行检讨;Skeleton没有运行模型,批准什么也没有. 将捆绑作为提示,将其打印到 Stderr 上的独立审查员人数(两个,或一个,只作一个简短的改名)中 --run 在测试中,有一次检查错过了2%的种子缺陷,有两次检查错过了0.9%的缺陷,是标志值的两倍。 不由审查者自行管理命令 。 当捆绑在测试中作为命令输出而到来时,审查人员经常忽略其合同,并用约3倍的符号从原始的diff重写审查. 见 代码审查。 。 。 .
验证更改 向正确的审计路径 :
| 路径 | 行动 |
|---|---|
| 扫描周边的文档 | 路径范围审计 |
拥有技能机构(SKILL.md 树木) | 运行 audit skills |
| 外国/锁文件系统技能机构 | 跳过 ~ 插入自有技能/ 工具箱回放 |
.sh, (中文(简体) ), .bash, (中文(简体) ), .zsh | 检查外壳或 bash -n |
其它 .json | JSONC 容忍语法检查 |
| 任何仓库文件 | 适用情况下的当地门户+ 其审计文件 review-deps 路径或光滑相匹配 |
承诺前: skeleton validate changed --staged (索引字节、覆盖、拥有文件;不使用文档就改变依赖性,则警告而不屏蔽).
CI: 爱奇艺 skeleton validate changed --base origin/main (全球规则首先,然后更改文件,同样的覆盖失败).
生态系统
| 层 | 作用 |
|---|---|
| 斯凯莱通 | 界定和检查SSOT合同 |
| 共享技能 | 可重复使用的团队或公共技能. 工具箱 是一个实例 |
| 消费者应用 | 掌握技能,在SSOT路径上运行 Skeleton 并保留自己的密码门 |
Skeleton 从不打电话 Nx 或其他应用程序任务运行程序 。 消费者重新拥有对测试、打字和建设的所有权.
见 等级相关工作: 工具箱 成套便携式工艺技能,以及 克里斯托弗简介 连接更广泛的构建者故事.
文档
代理效能
4个效率资格问,当Skeleton可用时,代理商是否以至少35%的中位数来正确完成相同的工作. 目前,在全部四项任务中,5-Pair OpenAI的结果都超过了该门,从49.1%降至64.0%。 一个资格使用PostPrint形状的应用程序单列波,跨越后端,客户端,生成了WebSocket类型,以及开发者文档;它测量了62.3%的中位符. 新增3个核心任务在没有储蓄门的情况下衡量正确性和可靠性,5个包交易比较则衡量采用,回收,以及简单任务和钩头管理. 测试直接检查行为和道具;语义判断员只接收需要他们的任务所需的证据. 这些结果仍然是有限度的基准证据,而不是普遍的可靠性主张.
单独的审查比较问: review prepare 帮助新审查者发现已知的缺陷。 它比较了捆绑,作为审查者的提示, 与赤裸裸的 git diff. 每期五期10对 gpt-5.6-luna,捆绑物发现多出12.8%的种子缺陷(95% CI 9.1至16.5),使用0.52倍的符号(0.49至0.56). 由两侧捆绑而成的一局无差(+1.7,-1.6至4.9)。 增益取自于两个被种子固定的:+21.0和+16.0分. 大部分来自缺陷 一个赤裸的 diff 不显示: 一个承诺信息 与更改相矛盾, 和一个文档 更改错误。 双方在diff本身中发现了大部分可见的bug. 从这个存放处的历史中回溯到一个真正的倒退,总的召回和表示值大约是平的(+1.4,-9.8至12.6). 这隐藏了一种取舍。 Bundle审查员在49跑中的49跑中将现在错误的文件命名为"活文件"(bundle reviews),而"活文件"(shart diff)则以2跑为50跑. 但他们将代码回归本身命名为49中只有11个,而50中只有41个. 所有五个会话都用一个模型和取用版本在一天内运行,所以结果并没有经过跨模型测试或服务变化.
方法 : 代理效能。 。 。 .
发展
需要装入 1.2.x 和节点22。 代理冷启动 : 一般事务人员(其他职等)。 。 。 .
bun install
bun run check
bun run check =lint + 测试 + 类型检查 + 构建 + audit:self。 。 。 .
validate:changed 不替换代码测试。 它将代码单独分类,并对每个扫描文件进行审计 review-deps 声明与已更改的文件相匹配。 在本地和CI运行时,没有自有纸张的覆盖扫描路径失败。 拥有技能的机构编辑管理技能套房. --staged 读取 git 索引字节.
代码 : bun run test, (中文(简体) ), bun run typecheck, (中文(简体) ), bun run build。 。 。 .
skeleton init 写入 .pre-commit-config.yaml。安装 承诺前 一次( e)brew install pre-commit 或者说 pipx install pre-commit,则 pre-commit install。 。 。 .