authoring registry.yaml:创作登记
创作登记描述一个 Tool、Tool Version 或 Flow 的独立创作工作区。它不读取执行 Job 的 registry,也不会向执行目录写入文件。每次 build、publish、register 都 有独立的确认字段和结果记录。
完整模板
下面是批准的 JSON-compatible YAML 模板。kind 只能是 tool、tool_version 或 flow;Flow 没有本地镜像 build,但仍然经过本地 spec 检查和后续注册验证。
{
"schema_version": "1.0",
"knowledge": {
"source": "https://www.bioline.cloud/ai/commandLineAndFkit/",
"language": "ch",
"document_ids": [],
"retrieved_at": "",
"skill_fallback_allowed": false
},
"workflow": {
"lane": "authoring",
"kind": "tool",
"objective": "",
"slug": "",
"phase": "bootstrap",
"status": "active"
},
"authoring": {
"workspace": "/data/authoring/<slug>",
"isolation": {
"role_label": "openclaw.role=authoring",
"slug_label": "openclaw.slug=<slug>",
"kind_label": "openclaw.kind=tool|tool_version|flow",
"network_allowed_for_build": true,
"downstream_container_reuse": false
},
"source": {"reference": "", "name": "", "version": null, "existing_tool_id": null, "existing_version_id": null},
"draft": {
"artifacts": {"config": null, "summary": null, "flow_spec": null},
"image": {"original_ref": "", "registry": "dockerhub", "proxy": null, "pull_ref": "", "fixed_tag": "", "digest": null},
"resources": {"cpu": "", "memory": "", "disk": null, "basis": "estimated", "source_url": "", "conditions": ""},
"pull_ledger": {"task_id": "<slug>-<timestamp>-<nonce>", "preexisting": false, "pre_image_id": null, "post_image_id": null, "pulled_at": "", "upload_verified": false, "cleanup": {"eligible": false, "attempted": false, "removed": false, "reason": "", "at": ""}},
"baseline": {"verified": false, "reference": "", "existing_tool_id": null, "versions": [], "selected_version": null, "next_version": null, "image": "", "verified_at": ""}
},
"interfaces": {"inputs": [], "outputs": [], "parameters": [], "resources": {}},
"validation": {"checks": [], "static_passed": false, "validated_at": "", "evidence": {}},
"confirmations": {"build": false, "publish": false, "register": false},
"publish": {"result_file": "result.json", "bioline_id": null, "version_id": null, "name_version": null, "keyword": null},
"register": {"config_verified": false, "summary_verified": false, "discoverability_verified": false, "flow_inspect_verified": false},
"handoff": {"discoverable": false, "kind": null, "bioline_id": null, "version_id": null, "keyword": null, "verified_at": ""}
},
"document_gap": {
"detected": false,
"topic": "",
"attempted_document_ids": [],
"missing_information": [],
"blocking_reason": ""
}
}字段和确认
draft.artifacts 用 config、summary、flow_spec 分别记录文件路径,不按扩展名猜测。 新 Tool 需要 config、summary 和 image metadata;Tool Version 只需要 config 和 summary, 镜像继承基线;Flow 只需要 FlowSpec。 image 与 resource 元数据遵守闭合字段和固定 tag 规则;pull_ledger 保存 build 拉取前后的 image ID、上传验证和安全清理结果。draft.baseline 只在 Tool Version 上承载复用证据: verified、reference、existing_tool_id、versions、selected_version、 next_version、image(固定为 inherited-from-baseline)和 verified_at。 validation 记录静态检查、时间和证据,不运行真实分析。publish 保存 fkit 返回的真实 ID 和 NAME:VERSION;register 保存精确 read-back 结果;handoff 是交给执行车道的最小事实记录。
阶段约束是硬规则:built 需要 confirmations.build: true;已发布及其后阶段需要 confirmations.publish: true;registered 及其后阶段需要 confirmations.register: true。 tested 只在静态验证通过后进入;Tool Version 从 built 起还要求 draft.baseline.verified: true。Tool 的 config 必须有稳定命令;Tool Version 通过 精确源版本解析;Flow 会导出每个节点工具的 config/summary 并检查端口、必需输入、参数、 DAG 和 method 证据。Tool/Tool Version summary 必须有中英文一级章节及 lane/frontmatter; 下游 summary 声明 analysis_lane: downstream、fixed_command: false,且 config command 为空。未确认的动作不能通过重试或脚本参数绕过。
隔离
工作区必须在 /data/authoring/<slug>/ 或明确覆盖的创作根下,不能落在执行根。 新 Tool 的 build 确认拉取固定镜像并记录其前后身份;Tool Version 的 build 不拉取任何 镜像,改为复核精确基线仍可解析并把结果写入 draft.baseline。static test 不启动 container、不运行 smoke 或真实分析。发布与注册分别确认。Tool Version 的 publish 在 创建请求里带上 config 与 summary,只创建 fkit 决定的新版本;register 不再重复写入, 只与精确 read-back 导出比较。
