ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Claw Code 2.0 标准执行看板解析:.omx/cc2/board.md 的数据模型、双维状态体系与生成校验管线

Claw Code 2.0 标准执行看板解析:.omx/cc2/board.md 的数据模型、双维状态体系与生成校验管线 Claw Code 2.0 标准执行看板解析.omx/cc2/board.md 的数据模型、双维状态体系与生成校验管线【免费下载链接】claw-codeAn agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.项目地址: https://gitcode.com/gh_mirrors/claudeco/claw-code.omx/cc2/board.md是 claw-code 仓库中 Claw Code 2.0下称 CC2的标准执行看板它把 8000 余行的 ROADMAP.md127 个标题 542 条有序动作、issue 收件箱与 opencode/codex 对标元数据统一收敛成 732 条结构一致、可被机器逐条解析的看板条目。读完本文你将掌握看板的 schema 与证据冻结机制、lifecycle × release bucket 双维坐标系、lane 归属与验证方法语义以及从generate_cc2_board.py到render_board_md.py --check的完整生成、校验与同步保证管线——这套机制正是该项目clawable可被 Agent 驱动工程理念在任务管理层面的直接落地。看板定位一份机器可读的 732 条工作契约看板文件头声明了三个关键元信息生成时间2026-05-25T04:30:3300:00即该文件是某一时刻的快照而非实时视图Schema 版本cc2.board.v1与 board.json 顶层schema_version字段一致Ultragoal 变更策略.omx/ultragoal由 leader主 Agent独占维护渲染任务不得修改它。对应 board.json 中generation_policy.ultragoal_mutation forbidden表明看板生成被明确禁止触碰目标状态文件。看板总规模为732 条 canonical board items。项目背景见 ROADMAP.md 开篇claw-code 的首要用户不是盯着终端的人而是通过 hooks、plugins、sessions 和 channel events 接入的 claws因此路线图本身就要求状态与失败模式machine-readable。看板正是这一要求在执行层的物化——每条工作项都是带来源锚点、生命周期、发布桶和验证方法的独立记录而不是散落在长文叙述中的段落。证据冻结Evidence Freeze快照的可追溯性看板开篇的 Evidence Freeze 表记录了三类证据源的冻结指纹这是整套机制里最值得注意的设计——看板不是凭空整理出来的而是从哈希锚定的源文件推导出来的SourceFrozen evidenceRoadmapROADMAP.mdsha256 前缀2aba3315e52f3079127 个标题542 条有序动作Approved plan.omx/plans/claw-code-2-0-adaptive-plan.mdsha256 前缀e7ef6faf23bfc16bResearch bundle根目录.omx/research最新 open issues 30 条issue 语料 1000 条含 codex/opencode clone 元数据这些字段并非手写而是 generate_cc2_board.py 在build_board()中计算并写入sources节点的sha256_prefix()对 ROADMAP.md 与计划文件取字节级 SHA-256 并截取前 16 位generate_cc2_board.py#L87-L88。这意味着任何人拿到 board.json 后都能用哈希前缀核对看板是从哪个版本的 ROADMAP 推导的ROADMAP 一旦变化哪怕改一个字符下次重新生成时指纹必然不同快照与源文件的对应关系不可伪造冻结元数据同时记录heading_count: 127与ordered_action_count: 542与正文的覆盖门禁互相印证。值得留意的一个细节sources.research.root记录的是构建机的绝对路径/Users/bellman/.../.omx/research说明该看板是维护者机器上生成后提交入库的快照当前仓库内保留的是生成产物与工具链本身。覆盖门禁127/127 与 542/542 的完整性证明Roadmap Coverage Summary 给出三条门禁全部 PASSCoverage gateMappedTotalStatusROADMAP headings127127PASSROADMAP ordered actions542542PASSDuplicate heading lines00PASS覆盖的含义在generation_policy.roadmap_coverage中被定义为all markdown headings plus top-level ordered roadmap actions——即 ROADMAP 里每一行markdown 标题和每一条缩进 ≤4 空格的有序列表动作都必须映射到至少一条看板条目且不允许同一行被映射两次。生成端在 generate_cc2_board.py#L443-L446 计算unmapped_heading_lines与duplicate_heading_lines独立校验器 validate_cc2_board.py 则用正则^#{1,6}\s重新扫一遍 ROADMAP.md 的全部标题行与看板中source_type roadmap_heading条目的source_line做集合差validate_cc2_board.py#L71-L78任何未映射行都会让校验直接 FAIL。渲染器 render_board_md.py 的validate_board()同样内建了这三条覆盖断言render_board_md.py#L75-L84形成生成时、渲染时、独立校验时三处一致的完整性证明。条目数据模型9 个必填字段与 ID 命名法每条 board item 必须携带 9 个必填字段render_board_md.py#L44-L54 与 validate_cc2_board.py#L10-L20 双处硬编码字段语义id全局唯一 ID渲染为看板表第一列title条目标题继承自 ROADMAP 标题/动作原文或 issue 标题source_anchor来源锚点如ROADMAP.md:L1188或.omx/research/claw-issues.json#issue-3037source_type来源类型roadmap_heading/roadmap_action/issue_theme/latest_open_issue/parity_repo_contextrelease_bucket发布桶见下文 7 桶枚举lifecycle_status生命周期状态见下文 8 状态枚举dependencies依赖 lane/契约列表可为空verification_required该条目要求的验证方法deferral_rationale延期/拒绝理由deferred_with_rationale状态为强制非空render_board_md.py#L102-L103ID 命名法由 generate_cc2_board.py#L273 规定分三个族CC2-RM-H0001-slug/CC2-RM-A0051-slugROADMAP 标题H/有序动作A序号为全局递增slug 由slugify()取标题前 40 字符CC2-ISSUE-CLAW-OPEN-LATEST-3037/CC2-ISSUE-CLAW-ISSUES-3012issue 收件箱条目后缀即 issue 编号CC2-PARITY-OPENCODE-REPO-CONTEXTopencode/codex 对标仓库元数据条目。看板的明细表Board Items by Stream每行即按ID | Title | Source | Bucket | Lifecycle | Verification | Dependencies | Deferral八列展开渲染器对 title 中的|做\|转义以保证表格不错位render_board_md.py#L211-L223。双维坐标系Lifecycle × Release Bucket看板为每条条目同时标注生命周期现在处于什么阶段与发布桶属于哪个发布梯队两维正交。生命周期枚举8 态LifecycleCountMeaningactive73当前 CC2 实现面上应保持可见的工作项context15仅上下文/证据锚点不是实现工作项deferred_with_rationale9有意延期条目内必须携带延期理由done_verify316上游已标记完成但保留下来以对照当前 CC2 行为做验证open285可执行、未解决需要实现或验收证据rejected_not_claw2非 Claw Code 产品工作明确排除stale_done31历史上完成/已合并但可能过时作为发布证据前需重新核实新鲜度superseded1已被更新条目取代仅作追溯上下文保留这 8 个状态不是自由文本而是受控枚举generation_policy.status_values列出全部取值渲染器会对任何枚举外的lifecycle_status报错render_board_md.py#L98-L99。状态如何从 ROADMAP 原文推断出来由status_for()的启发式决定generate_cc2_board.py#L192-L213标题含done/fixed/verified/landed/green等词判为done_verify再叠加stale/no longer reproduces则降级为stale_done含deferred/post-2.0判为deferred_with_rationaleH1/H2 级的散文标题如Goal、Product Principles默认判为context但以Phase开头的标题判为active工作容器。发布桶枚举7 桶BucketCountMeaning2.x_intake30Post-2.0 收件箱或后续候选保留用于排序alpha_blocker243在 alpha 级自主编码 lane 可信之前必须解决beta_adoption417alpha 阻塞受控后对更广 dogfood/采用重要context15不可执行的路线图上下文ga_ecosystem22成熟插件/MCP/Provider 生态所必需post_2_0_research3研究导向条目CC2 看板切片不要求rejected_not_claw2显式非 Claw 拒绝桶分桶逻辑在release_bucket_for()generate_cc2_board.py#L172-L189先按category_for()的关键词表把条目归入 security/windows_install/provider/sessions/plugin_mcp 等 13 个类别再映射到桶——Phase 1–4、安全、worker、事件类全部压入alpha_blockerWindows/安装/provider/文档/会话类进beta_adoption插件 MCP 与 IDE/ACP 类进ga_ecosystem。从分布看417 条 beta_adoption、243 条 alpha_blockerCC2 的当前重心清晰alpha 阻塞项尚未清零大量采用面打磨仍在队列中。Lane 结构与来源构成Stream 汇总Stream / laneItemsActiveopenverifyLifecycle mixAdoption overlay — user-visible parity and release polish357329deferred_with_rationale3,done_verify237,open92,rejected_not_claw2,stale_done23Parity overlay — opencode/codex comparison context2016context2,deferred_with_rationale1,done_verify5,open11,stale_done1Stream 0 — Governance, intake, and cross-cutting roadmap triage221198active6,context13,deferred_with_rationale4,done_verify45,open147,stale_done5,superseded1Stream 1 — Worker boot and session control1716active8,deferred_with_rationale1,done_verify2,open6Stream 2 — Event/reporting contracts7373active45,done_verify20,open8Stream 3 — Branch/test recovery1715active6,done_verify2,open7,stale_done2Stream 4 — Claws-first task execution55active4,done_verify1Stream 5 — Plugin/MCP lifecycle2222active4,done_verify4,open14lane 划分与 ROADMAP 的 Phase 1–5 一一对应stream_1_worker_boot_session_control对应 Phase 1 Reliable Worker Boot依此类推外加两个横切 overlayadoption overlay 收纳 Windows 安装、provider 路由、文档采用类条目parity overlay 收纳对标上下文。stream_for()generate_cc2_board.py#L151-L169按 Phase N 字面量 类别关键词双通道指派 lane无法命中任何规则时落回stream_0_governance兜底。Source-Type MixSource typeItemsroadmap_action542roadmap_heading127issue_theme31latest_open_issue30parity_repo_context2542 127 669 正好等于覆盖门禁的 mapped 数另 63 条来自 issue 收件箱30 条最新 open issue 全量入2.x_intake桶 31 条从 1000 条 issue 语料中按关键词抽样入beta_adoption桶见 generate_cc2_board.py#L431-L441和 2 条对标仓库元数据。验证方法与依赖语义每条条目还带两个机器可判定字段它们决定了这条工作怎么算完成以及谁先做。Verification验证方法是与类别绑定的受控词汇在verification_for()generate_cc2_board.py#L228-L248中定义例如验证方法适用类别worker_boot_state_machine_or_cli_json_contract_testbootPhase 1worker 状态机 / CLI JSON 契约测试schema_golden_fixture_or_consumer_contract_testevent_reportPhase 2事件 schema golden fixturegit_fixture_or_recovery_recipe_testbranch_recoveryPhase 3git fixture / 恢复配方测试plugin_mcp_lifecycle_contract_testplugin_mcpPhase 5插件/MCP 生命周期契约provider_routing_contract_testproviderprovider 路由契约install_matrix_or_cross_platform_smokewindows_install跨平台安装矩阵冒烟docs_snapshot_or_help_output_checkdocs_license文档快照 / help 输出检查verify_existing_evidence_and_regression_guard所有done_verify/stale_done条目none_context_onlycontext条目值得注意的是done_verify与stale_done共享同一验证方法已完成的工作不作为免检项而是要求保留现有证据 回归防护来重新对照当前行为——这与 lifecycle 语义表中retained for verification against current CC2 behavior的定义一致也是done_verify数量高达 316 的原因。Dependencies依赖表达的是 lane 级先决关系而非文件级依赖例如 Phase 2 的全部条目依赖stream_1_worker_boot_session_controlWindows/文档类条目依赖adoption_overlay_triage分诊stable_alpha_contracts是 Zed/ACP/桌面类条目的共同前置。issue 收件箱条目则统一依赖roadmap_board_triage其 deferral 理由统一写明admitted only when it matches freeze/admission rules; otherwise remains 2.x_intake——最新 issue 不是自动开工而是排队候审。读一条真实看板条目以CC2-RM-A0051为例看板中体量最大的 adoption overlay lane 收纳了大量来自真实 dogfood 的pinpoint条目。以CC2-RM-A0051-dev-rust-cargo-test-p-rusty-claude-cli-r锚点ROADMAP.md:L1110为例其标题即完整问题陈述dev/rustcargo test -p rusty-claude-clireads host~/.claude/plugins/installed/from real$HOMEand fails parse-time on any half-installed user plugin条目正文记录了完整的证据链11 个确定性失败的测试名、根因的两层结构parse_args急切遍历宿主插件目录 测试 harness 未做$HOME隔离、以及backportenv_lock隔离模式 解耦 argv 解析与文件系统校验的双部分修复动作。它的 bucket 是beta_adoption、lifecycle 是done_verify、verification 是verify_existing_evidence_and_regression_guard——即该问题已在main分支修复但要求后续以回归测试持续锁住。再看收件箱侧的CC2-ISSUE-CLAW-OPEN-LATEST-3037docs: clarify Claw Code positioning as multi-provider Claude-Code-shaped runtime其 source anchor 是.omx/research/claw-open-latest.json#issue-3037lifecycle 为open、verification 为issue_acceptance_repro_or_triage_decisiondeferral 列注明Latest issue intake is admitted only when it matches freeze/admission rules; otherwise remains 2.x_intake。两类条目并置在同一张表里正是看板单一表格承载全部工作形态的设计意图ROADMAP 叙事、issue 流量、对标上下文共用同一 schema、同一门禁、同一验证词汇。生成管线generate → render → validate 三段式1. 生成scripts/generate_cc2_board.pyparse_roadmap()用两条正则分别捕获#{1,6}标题与缩进 ≤4 空格的有序列表动作标题保留层级栈路径动作额外记录序号随后对每条记录执行category_for → stream_for → release_bucket_for → status_for → verification_for → dependencies_for的纯函数派生构造带source_anchorROADMAP.md:L行号、source_context层级路径的完整条目generate_cc2_board.py#L114-L140。issue 与 parity 条目由issue_item()/repo_context_item()以同样字段集构造。build_board()收尾时组装schema_version、generated_at、generation_policy、sources、coverage、summary、items七个顶层节点并在写出前就内联执行一次validate_board()失败即拒绝产出generate_cc2_board.py#L448-L496。2. 渲染.omx/cc2/render_board_md.py渲染器从 board.json 重新生成 board.md结构与前文各表一一对应Evidence Freeze → Coverage → Lifecycle → Bucket → Stream Summaries → Source-Type Mix → 按 lane 排序的明细表。所有计数by_lane / by_status / by_bucket / by_source都是现场用Counter从 items 重算的不存在正文数字与数据不符的可能。它还提供--check模式重渲染后与磁盘上的 board.md 做全量文本比对不一致即返回 1render_board_md.py#L247-L257使 board.md 成为必须与 board.json 同步的受管产物而非手工文档。3. 校验scripts/validate_cc2_board.py独立校验器从磁盘上的 board.json出发逐条检查必填字段、ID 唯一性、status枚举、dependencies类型然后独立重扫 ROADMAP.md做标题行集合差与重复检测并把 coverage 节点与实测值交叉核对任一不符输出FAIL cc2 board validation及明细validate_cc2_board.py#L58-L89。4. 统一入口scripts/cc2_board.py该 wrapper 把三个工具收拢为两个子命令确保所有入口执行同一套 schema其 docstring 明确说明This script intentionally delegates to the richer G001 board generator, validator, and Markdown renderer so all entrypoints enforce the same schemapython3 scripts/cc2_board.py generate先跑生成器再用渲染器产出 board.mdpython3 scripts/cc2_board.py validate串行执行validate_cc2_board.py与render_board_md.py --check两者都通过才打印CC2 board validation PASS: ... canonical and in synccc2_board.py#L53-L61。从源码结构看这套三段式把内容正确性validator与产物同步性renderer --check分离成两类独立断言任何一类被绕过都会让 validate 失败——看板因此同时是一份数据board.json机器消费和一份视图board.md人读且二者被工具强制锁在同一状态。与项目其余部分的衔接上游证据ROADMAP.md 开篇定义了 clawable 的七项判据deterministic to start / machine-readable state / recoverable without a human / branch-aware / plugin-MCP-aware / event-first / autonomous next-step与七个痛点Phase 1–5 的阶段划分正是看板 stream 1–5 的来源ROADMAP 的 127 个标题与 542 条有序动作是看板 669 条 roadmap 系条目的唯一上游。目标状态隔离看板头部与generation_policy双重复述.omx/ultragoal不可被渲染任务修改该目录在仓库中确实独立存在goals.json、ledger.jsonl 等形成目标账本与工作看板的权限边界。消费方仓库文档中的 g002–g013 系列验证地图如 g012-final-release-readiness-report.md描述的是围绕这批 alpha/beta 桶条目做验收验证的流程看板则提供了它们逐条引用的稳定 ID 与来源锚点。小结.omx/cc2/board.md的价值不在某一具体工作项而在于它示范了Agent 自维护项目的任务管理形态证据用哈希冻结、覆盖用门禁证明、状态用受控枚举、分桶用显式策略、同步用工具强制——ROADMAP 的 669 个源行、30 条最新 issue、2 条对标元数据全部可溯源到带行号/编号的锚点任何缺失映射或重复映射都会让生成与校验双重失败。对需要在多人/多 Agent 协作中管理长路线图的项目而言这套ROADMAP.md → board.json → board.md的三段管线外加--check同步断言是一个可直接参考的工程范本。【免费下载链接】claw-codeAn agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.项目地址: https://gitcode.com/gh_mirrors/claudeco/claw-code创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表