CLI v1 参考

September 14, 2026 · View on GitHub

CLI = Setup + Observe + Diagnose;MCP = Work。 支持 Python 3.10–3.13。 fcop 包含 Core 和 CLI,不依赖 MCP;fcop-mcp 为可选安装。

pip install fcop
fcop version
fcop doctor
fcop init
fcop status

可选工具目录查询:

pip install fcop-mcp
fcop tools
fcop tools merge_branches --json
命令参数写入
init--root PATH、--protocol VERSION显式调用 Core 创建工作区
status--root PATH
inspectTASK-ID 或 --path ENVELOPE、--root PATH
validate--root PATH、可选 --path ENVELOPE
tools可选 TOOL-NAME
doctor--root PATH
version
spec
migrate保留 --to-v3、--project-root、--workspace、--apply默认预演,仅 --apply 写入

八个非迁移命令支持 --json。工作区根默认当前目录;相对信封路径相对 --root 解析,绝对信封路径也必须位于该工作区内。支持空格和中文路径。 CLI 不提供创建任务、批准、Branch、收敛或授权操作,这些仍由 MCP/Python 承担。

使用 fcop --help 查看命令;裸 fcop 保留历史迁移提示,写 stderr 并返回 1。 migrate-workspacemigrate --to-v3 的既有参数、输出和退出语义不变。

输出合同

JSON stdout 仅含一个文档,固定字段为 schema_version(1)、command、status、 data、errors、warnings。status 为 ok/error/invalid/unavailable;异常时 data 可为 null,errors 每项含 code 和 message。键排序、无 ANSI/banner、无新增时间戳。 人类输出是相同事实的标题加缩进文本。参数解析错误写 stderr,返回 2;结构化 业务结果写 stdout。迁移命令沿用旧输出。

退出码:0 成功/有效(可能有提示);1 内部失败(裸调用历史行为也为 1); 2 协议/数据/输入无效;3 工作区、依赖或环境不可用/不支持。

未初始化时 status 返回 initialized=false,inspect/validate 返回 3。 doctor 对缺少工作区或可选 MCP 给 WARN,不安装、不初始化。重复键、非法编码、 半初始化配置不会被猜测修复。重复 init 遵守 Core 的已存在错误,不覆盖。

doctor 检查 Python 声明、包版本与导入、CLI 入口、MCP 兼容与 Catalog、捆绑资料、 工作区配置和可读权限。每项含 check_id、PASS/WARN/FAIL、message、evidence; 不通过试写测试权限,不联网、不修改 Host,不提供 --fix/--repair/--recover。

事实边界

公共只读 fcop.observation 聚合现有 Core 能力,提供 workspace_status、 inspect_object、validate_workspace、bundled_inventory。不新增生命周期、授权 或恢复规则。inspect 保留 Core 返回的摘要 null、未就绪理由和错误;validate 只检查可观察的编码、Schema、权威路径、身份、状态目录与最后事件及引用, 弱引用不能解析仍是警告,不评价工作质量。多文件读取不是并发写入下的原子快照。

spec 分开报告安装包内的 v4 Schema/规则版本及旧规则版本;v4 规范为固定 路径、提交和哈希引用,不谎称 wheel 包含完整规范,也不从网络下载。

fcop_mcp.catalog.get_tool_catalog(name=None) 从唯一 MCP 声明表返回新建的、 排序后的 name/disposition 行;未知名称抛 KeyError。不启动服务,不复制参数 定义。CLI/Catalog/真实 stdio 工具集合相等,MCP 的 49/12/4 能力面不变。