Skip to content

创建 Tool ​

Tool 创作在 authoring 车道完成,目标是得到可验证、可发现且版本固定的 BioLine 工具。执行车道不会替它创建 Tool。

1. 文档与草稿 ​

先通过 fkit 加载本次操作需要的精确命令页面,并记录 document IDs。草稿按 kind 提供不同 artifact:新 Tool(tool)提供 --config、--summary 和 --image-metadata;新版本 (tool_version)复用基线版本已存放在服务端的镜像,只提供 --config 和 --summary, 传入 --image-metadata 会被拒绝。artifact 类型不按文件扩展名推断。summary 顶部声明 analysis_lane 和 fixed_command,并包含 # 中文、# English 两个一级章节。 上游 Tool 要求 fixed_command: true 且 config 有稳定命令;下游 Tool 要求 fixed_command: false 且 config command 字段为空。

2. build 确认 ​

进入 awaiting_build_confirmation 后展示固定镜像来源、tag/digest、资源依据和拉取计划。 只有用户明确确认,才可将 confirmations.build 写为 true 并拉取固定镜像。登记拉取前 是否已存在、原 image ID、拉取后 image ID 和 task ID。这一路径适用于新 Tool。

新版本不拉取任何镜像。确认后 fkit 复核精确基线仍可解析,并把复用事实写入 draft.baseline:verified、reference、existing_tool_id、versions、 selected_version、next_version,以及固定值 image: inherited-from-baseline。基线的 Tool ID 或所选版本若自 bootstrap 起已改变,build 失败并进入 build_failed,须重新加载 文档后重试。

两条路径成功后都进入 built,失败进入 build_failed 并保留证据;不会自动 publish。

3. 静态验证 ​

test 不启动容器、不运行 smoke 或真实分析。它静态检查 config、summary、稳定命令、 占位符、端口和资源字段,并将检查结果、时间与证据写入 validation。未通过静态验证 不能进入 publication;失败进入 test_failed。

4. publish、register、handoff ​

静态验证通过后再次展示发布影响范围,单独获得 publish 确认:新 Tool 使用 fkit create-tool IMAGE NAME --json;新版本使用 fkit update SOURCE_NAME:SOURCE_VERSION --mode new-version --config config.json --summary summary.md --json,两个文件均为必填。fkit 复用源版本已存在服务端的镜像,版本号 按当前最大正整数加一,并把命令与摘要直接带在创建请求里。保存真实 ID 和精确 NAME:VERSION 到 result.json。

随后单独获得 register 确认。新 Tool 先 dry-run config/summary,再应用明确文件并导出 read-back 比较;新版本的配置和摘要在 publish 时已随创建请求写入,register 只做精确 read-back,不重复写入,以免掩盖一次失败的 publish。BioLine 会拒绝修改被 Flow 引用的 版本;该 server 错误原样呈现,不重试、不自动创建新版本。

只有新 Tool 才可按 ledger 条件清理本次拉取的镜像;新版本没有拉取任何本地镜像,清理 恒不可用。

handoff 只包含已验证的真实 ID 和时间;它不向任何共享映射追加条目。下一次执行 会通过 fkit 动态发现这个 Tool 或其版本。