
claw-code G004 events/reports 验证映射lane 事件流、报告投影与集成门禁全解【免费下载链接】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本指南围绕 claw-code 仓库中 G004events/reports工作流的验证映射文档展开系统讲解 Lane 事件契约、Report schema v1 报告投影/脱敏/能力协商契约以及多 worker 并行开发下的所有权边界、验证证据与 Leader 集成门禁。读完本文你将掌握如何在rust/crates/runtime与rust/crates/tools中定位事件/报告相关符号理解终端事件指纹与去重的底层机制并能复现完整的 runtime 质量门禁命令序列。G004 工作流范围与所有权边界G004 验证映射docs/g004-events-reports-verification-map.md源自 OMX 团队的g004-events-reports-u-e61d2271运行对应 worker-1 的任务 1、2、4、5。文档开篇即划定了严格的工作纪律worker 不得改动.omx/ultragoal聚合检查点由 Leader 独占拥有——这意味着每个 worker 提交的只是证据commits 与验证输出而最终状态归并由 Leader 完成。整个 G004 工作流按“契约族”划分为五条并行 lane每条都有明确的代码所有权契约族拥有者涉及源码Lane events / 事件身份 / 终端对账worker-1lane_events.rs经 runtime/src/lib.rs 导出工具侧消费者在 tools/src/lib.rs 写入LaneEvent向量Report schema v1 / 投影 / 脱敏 / 能力协商worker-1report_schema.rsfixture 说明见 tests/fixtures/report_schema_v1/README.mdApproval-token 链worker-2本次拆分中独立ROADMAP §§4.38-4.40worker-1 未触碰Pinpoint 关闭批runtime 卫生worker-1compact.rs、file_ops.rs、policy_engine.rs、sandbox.rs、integration_tests.rs回归 harness / 文档对齐worker-3/worker-4按 Leader 拆分协调编辑共享文档/测试前需先沟通从源码结构看这一拆分刻意把“结构化事件与报告”的所有权集中到 worker-1同时保留 approval-token 为独立 lane避免 worker-1 的报告 schema 被误当作审批工件见下文“集成风险”。关键符号与文件索引验证映射文档给出了四组可检索的符号分别对应事件流、报告契约、工具侧序列化和搜索/解析闭合。整理如下便于按图索骥事件流lane_events.rsLaneEventName、LaneEventStatus事件名与归一化状态枚举LaneEventMetadata承载seq、timestamp_ms、provenance、指纹等元数据LaneEventBuilder链式构建事件并自动计算终端指纹compute_event_fingerprint、dedupe_terminal_events、reconcile_terminal_events终端事件指纹、去重与对账三件套报告契约report_schema.rsCanonicalReportV1、ReportClaim、NegativeEvidence、FieldDelta规范化报告的四个核心载体ConsumerCapabilities、ReportProjectionV1能力声明与派生投影canonicalize_report、project_report、report_schema_v1_registry规范化、投影、自描述注册表工具侧序列化tools/src/lib.rsAgentOutput.lane_eventsagent 输出中的事件向量persist_agent_terminal_state终止状态持久化写入 finished/failed/blocked 事件write_agent_manifest写出前先执行dedupe_superseded_commit_events归一化maybe_commit_provenance从结果文本提取 commit provenance 并追加lane.commit.created事件搜索/解析闭合辅助summarize_messagescompact.rsgrep_search_impl/build_grep_content_outputfile_ops.rsLane 事件契约机器可信任的第一层表面G004 契约指南docs/g004-events-reports-contract.md将 lane 事件流定义为 Stream 2 首个“机器可信任”的表面。消费者读取LaneEvent时应遵守以下不变量event是类型化事件名。当前实现覆盖四大类核心 lane 生命周期lane.started、lane.ready、lane.blocked、lane.red、lane.green、lane.finished、lane.failed、分支健康branch.stale_against_main、branch.workspace_mismatch、对账lane.reconciled、lane.superseded、lane.closed、ship 溯源ship.prepared、ship.commits_selected、ship.merged、ship.pushed_main。源码中LaneEventName枚举通过#[serde(rename ...)]锁定线格式测试canonical_lane_event_names_serialize_to_expected_wire_values对 21 个事件名逐一断言序列化结果见 lane_events.rs 测试模块。status是归一化状态自动化应优先使用它而非自由文本detail。LaneEventStatus以snake_case序列化涵盖running到closed共 11 个状态。metadata.seq、metadata.timestamp_ms与终端指纹是排序/去重钩子。消费者应使用终端对账输出而不是对矛盾的终端事件爆发做二次上报。metadata.provenance、environment_label、emitter_identity、confidence_level区分实时 lane 真相、测试流量、健康检查/回放输出与传输层证据。EventProvenance枚举定义了live_lane、test、healthcheck、replay、transport五种来源测试event_provenance_round_trips_through_serialization锁定其线格式。metadata.session_identity与metadata.ownership把事件绑定到会话、工作区、工作流范围、owner 与 watcher 动作。WatcherAction枚举明确标注act/observe/ignore——watcher 不应处理 ownership 声明为observe或ignore的事件。最小消费规则只要存在结构化事件pane 文本只作为佐证面板抓取不得覆盖带匹配 session/workflow ownership 的高置信度类型化事件。终端事件指纹与对账的源码实现worker-1 任务 1 提交f45f05e的核心是终端事件指纹使用稳定的 SHA-256 派生规范化 JSON。源码中compute_event_fingerprint将{event, status, data}序列化为规范化 JSON 后取 SHA-256 前 8 字节的十六进制作为去重指纹便捷构造函数LaneEvent::finished、LaneEvent::failed在构建时自动附加指纹with_data在事件为终端事件时自动刷新指纹with_terminal_fingerprint。测试convenience_terminal_events_attach_and_refresh_fingerprints验证对已带指纹的 finished 事件追加 payload 后指纹必然变化——因为 payload 变化意味着“可执行状态”变化。dedupe_terminal_events基于指纹集合去重测试tool_style_finished_events_dedupe_after_payload_is_added证明两条 detail 不同但 data 相同的 finished 事件指纹一致、去重后只剩一条。reconcile_terminal_events处理乱序按seq排序、重复终端事件按指纹跳过、传输死亡后的不确定性分类为EventTerminality::Uncertainty最终包装为lane.reconciled以及completed - idle - error - completed抖动。此外dedupe_superseded_commit_events按canonicalCommit/commit键折叠被 supersede 的 commit 事件——该函数在 tools/src/lib.rs 的write_agent_manifest中被强制调用确保写入 manifest 的事件流已归一化。Report schema v1 契约规范化事实记录 派生投影G004 报告契约的核心主张是报告应被当作“规范化事实记录 可选投影”即使消费者只收到降级视图语义也必须保留。worker-1 任务 2 提交3989fc0落地了这一契约契约要点如下每个报告载荷声明 schema 版本与稳定报告身份/内容哈希identity.report_ididentity.content_hash。断言被标记为fact、hypothesis或其他声明证据类携带置信度与来源引用。负证据是一等公民not observed在检查范围内未观察到、checked and absent已检查且缺失与redacted被脱敏是三种不同状态。字段增量FieldDelta命名字段、前值/状态、新值/状态、归属以及增量来源源内容、投影、降级或脱敏策略。投影携带回溯源canonical report id / content hash并命名投影视图、能力集、schema 版本、脱敏策略与确定性渲染输入。脱敏溯源显式化没有脱敏/降级/源缺失理由的字段缺失不足以让自动化消费者推断底层事实不存在。最小消费规则将 canonical 身份与投影元数据一起存储只有 canonical 内容哈希或声明的投影输入发生变化才可将两个投影作为状态变化比较。规范化与投影的源码实现report_schema.rs 中REPORT_SCHEMA_V1 claw.report.v1DEFAULT_PROJECTION_POLICY_V1 claw.report.projection.v1。canonicalize_report强制 schema 版本、按 id/field 排序 claims/negative_evidence/field_deltas计算内容哈希排除 identity 自身的自引用并在report_id为空时生成report-{content_hash}。report_schema_v1_registry返回自描述注册表声明 8 个字段identity.report_id、identity.content_hash、claims[].kind、claims[].confidence、claims[].evidence、negative_evidence[]、field_deltas[]、projection.provenance.redactions[]并写明兼容性语义“additive fields are compatible; missing required fields are breaking”。project_report按ConsumerCapabilitiesschema 版本集合、字段族集合、max_sensitivity投影不支持的字段族被整体省略并记入omitted_field_families超过消费者max_sensitivity的 claim 会被脱敏Secret类直接省略并记录 redaction 溯源其余敏感类将text替换为redacted、清空evidence并记录original_hash只要发生降级schema 不支持、字段族省略或任何脱敏provenance.downgraded置为trueprojection_id是对{view, provenance, payload}的稳定哈希保证同输入可复现。测试projections_are_deterministic_and_record_redaction_provenance验证同一输入两次投影结果相等、redaction 路径正确claims[1].text被转换、claims[2]被省略capability_negotiation_omits_unsupported_field_families验证仅声明claims字段族的消费者收到omitted_field_families [negative_evidence, field_deltas]的降级投影。Fixture 说明tests/fixtures/report_schema_v1/README.md确认代码内 fixtureruntime::report_schema::tests::fixture_report覆盖 fact/hypothesis/置信度标签、带检查表面与查询窗口的负证据、字段级增量归属、canonical 报告 id 内容哈希、确定性投影/脱敏溯源以及消费者能力协商与降级投影。能力协商与一致性Conformance混合版本消费者是 Stream 2 推广期的预期常态契约要求协商而非静默丢字段消费者声明支持的 schema 版本、字段族、投影视图、脱敏状态、降级语义与 fixture/conformance 套件版本。生产者保留一份 canonical 全保真报告仅携带downgraded_for_compatibility元数据时输出降级投影。确定性投影输入 schema 版本 消费者能力集 投影策略版本 脱敏策略版本 canonical 内容哈希。一致性验证应区分“语法接受”与“语义正确”尤其针对redactedvsmissing、陈旧 vs 当前投影、负证据、approval-token 重放状态。最小消费规则旧消费者可以接受降级投影但必须将其呈现为能力限制而非把省略字段当作 canonical 缺失。Approval-token 与策略阻塞契约独立 lane虽然 approval-token 链由 worker-2 拥有契约指南仍将其纳入同一“结构化事件/报告家族”读者应了解其边界策略阻塞命名类型化原因、策略来源、actor 范围、被阻塞动作与安全回退路径。Approval token 命名审批 actor、策略例外、动作、仓库/worktree/分支/commit 范围、过期时间与允许使用次数。Token 消费记录消耗 token 的确切动作与范围重放、范围扩张、过期与撤销应浮出类型化策略错误。委托溯源保持附着另一个 worker/lane 执行被批准动作时执行者必须能证明哪个审批工件授权了该例外。最小消费规则诸如 approved 的散文不是可执行审批。要求结构化 token并在执行前验证其未被消费且精确限定在目标动作上。当前验证证据可复现的质量门禁验证映射文档记录了截至 worker-1 提交完成时的实测结果从rust/目录执行命令结果cargo test -p runtime lane_events -- --nocapturePASS46 个 lane-event 测试cargo test -p runtime report_schema -- --nocapturePASS4 个 report-schema 测试cargo check -p runtimePASScargo clippy -p runtime --all-targets -- -D warningsPASS任务 4 闭合批之后cargo test -p runtime -- --nocapturePASS531 个单元测试、12 个集成测试、doc-tests 通过cargo test -p tools lane_event_schema_serializes_to_canonical_names -- --nocapturePASS1 个定向 tools 契约测试任务 4 提交7fff4c4是“严格 runtime clippy 闭合批”覆盖 compact/file_ops/policy/sandbox/integration tests——这正是验证映射中 Pinpoint 关闭批所有权对应的五个文件面。测试命令中--nocapture用于观察测试中的序列化输出便于人工核对线格式。Leader 集成验证计划五步门禁多 worker 并行开发后Leader 需要按固定序列完成集成验证文档原样保留可直接执行检查 worker 提交git log --oneline --decorate --max-count8。重跑聚焦契约cd rust cargo test -p runtime lane_events -- --nocapturecd rust cargo test -p runtime report_schema -- --nocapturecd rust cargo test -p tools lane_event_schema_serializes_to_canonical_names -- --nocapture重跑 runtime 质量门禁cd rust cargo check -p runtimecd rust cargo clippy -p runtime --all-targets -- -D warningscd rust cargo test -p runtime -- --nocapture若与 worker-2 的 approval-token 工作合并额外运行 worker-2 的定向 approval-token 测试并检查 runtime/src/lib.rs 是否存在导出冲突。若与 worker-3/4 的文档或 harness 工作合并重跑其命名回归 harness并执行git diff --check。集成风险与已知边界验证映射文档明确列出了四条集成风险理解它们可避免合并时的常见错误runtime/src/lib.rs导出块是共享的。合并时应保持 lane-event 与 report-schema 导出都足够有序、可读避免冲突后出现重复或乱序导出。tools/src/lib.rs将 lane 事件序列化进 agent manifest终端指纹的变化会有意影响带 payload 的 finished/failed/superseded/merged/closed 事件的metadata.event_fingerprint——不要将此视为回归而是契约行为。report_schema.rs目前只定义可复用契约与代码内确定性 fixture尚未把报告发射接入 CLI/status 表面。这意味着该模块是“契约先行”消费侧接线属于后续工作。ROADMAP approval-token §§4.38-4.40 是独立 lane不要把 worker-1 的报告 schema 当作审批工件同样全工作区检查可能包含无关的慢速/依赖提供方测试本流已验证的本地门禁是 runtime 上述定向 tools 测试。文档维护规则契约指南最后给出了三条维护纪律也是理解文档与代码对应关系的钥匙ROADMAP Phase 2 是产品需求来源docs/g004-events-reports-contract.md 是契约阅读指南两者共同构成“source of truth”锚点表lane 事件、报告 schema、approval-token、能力协商四列各指向 ROADMAP 章节、当前实现文件与消费者指引。Rust 类型名与事件名必须与 lane_events.rs 对齐公开事件名或元数据语义变化时同一变更中需同步更新契约文档。report-schema 示例/fixture 需与指南对齐fixture 更新应解释有意的 schema 或投影变化。结合验证映射与契约文档可得出完整结论G004 工作流以“类型化事件 规范化报告 显式降级溯源”为核心把 lane 状态机、报告投影与审批工件统一进同一结构化家族而验证映射文档则保证这一契约在并行开发与合并时始终可复现、可审计。【免费下载链接】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),仅供参考