切换主题
yoyoboot repo inspect
已知路径或 capability,想取得正式 owner、适用规则和现有验证入口时使用。它组合 owner 与验证计划,查询不会执行检查。
基本用法
text
yoyoboot repo inspect <target> [--repo <path>] [--json]在 YoyoBoot 源码仓库中运行
读取当前 CLI package 的归属与验证计划。
text
pnpm --dir tools/yoyoboot-cli run cli -- repo inspect tools/yoyoboot-cli/package.json --json参数
| 参数 | 必填 | 说明 |
|---|---|---|
target | 是 | 仓库路径或 capability ID;verify-plan 可接受多个路径。 |
--json | 否 | 以 JSON 输出完整结果信封,供机器读取。 |
--help | 否 | 展示帮助;yoyoboot --help / yoyoboot <command> --help。 |
--repo <path> | 否 | 显式指定仓库查找起点;缺省从当前工作目录向上查找。 |
示例
固定示例仓库中的返回结果
text
yoyoboot repo inspect packages/example/src/service.ts --json此命令针对固定示例仓库。下面只展示公开字段投影,不是当前 checkout 的完整输出。
json
{
"command": "repo inspect",
"status": "ok",
"data": {
"schemaVersion": "2.0.0",
"path": "packages/example/src/service.ts",
"owner": {
"id": "packages/example",
"directory": "packages/example"
},
"ruleOwner": {
"id": "packages/example",
"directory": "packages/example"
},
"rules": [
{
"kind": "rules",
"path": "<rule-source>",
"owner": "."
},
{
"kind": "rules",
"path": "<rule-source>",
"owner": "packages/example"
}
],
"executionOwner": {
"directory": "packages/example",
"name": "@example/package",
"scripts": {
"verify": "example-check"
}
},
"sources": [
{
"kind": "rules",
"path": "<rule-source>",
"owner": "."
},
{
"kind": "rules",
"path": "<rule-source>",
"owner": "packages/example"
},
{
"kind": "manifest",
"path": "packages/example/package.json",
"owner": "packages/example"
},
{
"kind": "runtime",
"path": "packages/example/src/service.ts",
"owner": "packages/example"
}
],
"verification": {
"status": "supported",
"steps": [
{
"verification": {
"command": "pnpm",
"args": [
"run",
"verify"
],
"cwd": "packages/example"
},
"changedPaths": [
"packages/example/src/service.ts"
]
}
],
"uncovered": []
}
}
}返回结果
owner 结果加验证计划。
主要字段
| 字段 | 说明 |
|---|---|
command | 实际结果命令名;Admin 保留子命令名,入口捕获异常时为 cli。 |
status | ok / warn / error;同时检查退出码及诊断码。warn 可以退出 0。 |
findings[] | 诊断项包含 code、status、message,可选 detail;机器使用 code 分支,不解析消息。 |
source | JSON 顶层命令实现来源,包含 kind / path / owner。 |
data | 命令结果;入口捕获失败时可能缺省,部分诊断失败仍保留结果。 |
data.schemaVersion | 结果合同版本:2.0.0。 |
data.source | 工作树事实来源 { kind: runtime, path: git:working-tree, owner: git }。 |
data.path | 解析后的仓库相对路径;使用 capability 查询时,解析为该 capability 的正式来源路径。 |
data.owner | 目标最终由谁负责,来源可能是 package manifest、项目文件、规格或正式规则入口。source 给出 owner 的判断依据。 |
data.owner.id | 正式 owner 标识;当前仓库合同使用其仓库相对目录,例如 tools/yoyoboot-cli。 |
data.owner.directory | 正式 owner 的仓库相对目录;仓库根用 . 表示。 |
data.owner.source | 正式 owner 的判断依据,结构为 { kind, path, owner }。 |
data.ruleOwner | 距离目标最近的规则边界;可以与事实 owner 不同,没有规则时为 null。source 指向该规则来源。 |
data.ruleOwner.id | 最近规则边界的标识,当前使用其仓库相对目录;仅在 ruleOwner 非 null 时存在。 |
data.ruleOwner.directory | 最近规则边界的仓库相对目录;仅在 ruleOwner 非 null 时存在。 |
data.ruleOwner.source | 该规则的正式来源,结构为 { kind, path, owner };仅在 ruleOwner 非 null 时存在。 |
data.rules | 全部适用的祖先规则来源。按返回位置读取,不能只读取最近一层。 |
data.executionOwner | 最近可执行 package 的目录、名称和 scripts,source 指向其 manifest;不属于 package 时为 null。该命令不运行 scripts。 |
data.executionOwner.directory | 可执行 package 的仓库相对目录;仅在 executionOwner 非 null 时存在。 |
data.executionOwner.name | package manifest 声明的包名;仅在 executionOwner 非 null 时存在。 |
data.executionOwner.scripts | manifest 声明的脚本映射 { 脚本名: 命令字符串 },可能为空对象;仅在 executionOwner 非 null 时存在。 |
data.executionOwner.source | 该 package manifest 的正式来源,结构为 { kind, path, owner };仅在 executionOwner 非 null 时存在。 |
data.sources | 判断依据的正式来源,区分 rules、manifest、spec、runtime、docs 和 generated-reference。 |
data.verification | 验证计划对象,包含 status / steps / uncovered;owner 成功不意味着计划完整。 |
data.verification.status | supported / unsupported;存在 unsupported 缺口时 inspect 本身仍可成功。 |
data.verification.steps[] | { verification: { command, args, cwd, source }, changedPaths }。 |
data.verification.uncovered[] | 未覆盖的 { path, code, message }。 |
使用说明
- 仓库根使用
pnpm --dir tools/yoyoboot-cli run cli -- <命令参数>;已完成构建时也可使用node tools/yoyoboot-cli/dist/bin.js <命令参数>。 - JSON 示例来自固定示例仓库的公开投影,省略实现来源、规则文件位置及大段内容;
<...>是明确的环境占位符。完整字段见返回结果表,实际内容以当前工作树为准。 - 全局参数严格解析:未知、重复、缺值参数返回退出码 2;
--help输出文本,即使同时指定--json。 - 只读;与 owner 使用相同路径、来源和空值语义。不接受
--dry-run。
退出码
| Exit code | 含义 |
|---|---|
0 | 成功或仅有警告;警告仍需阅读。 |
2 | 预期失败:参数、仓库或领域条件不满足,或严格检查未通过。 |
1 | 未预期程序错误。 |
常见错误
unsupported-capability
当前仓库没有暴露所查询的 capability。
处理方式:先运行 yoyoboot repo capabilities --json,使用返回的真实 capability ID 重试。
owner-ambiguous
目标存在多个竞争的 owner,无法唯一确定,例如同目录有多个 csproj。
处理方式:明确指定目标项目文件或核实重复的 capability 来源;CLI 不随机选择 owner。
owner-missing
没有可以成立的正式 owner 或规则入口。
处理方式:核实并补齐正式 manifest、规格或责任入口,再重试查询。
path-outside-repository
目标路径或它的链接指向仓库外。
处理方式:使用仓库内路径,并检查目标路径的符号链接。
相关命令
Reference 合同版本:
1.0.0结果合同版本:
2.0.0源码产品版本:
10.5.7(不代表 registry 发布状态)。