@codehero0x0/reown-codex
v0.1.1
Published
Evidence-backed Ownership Maps and handoff views for Codex Desktop using IDEA MCP.
Maintainers
Readme
ReOwn
AI writes the diff. ReOwn makes it yours.
ReOwn 是面向 Codex Desktop 的本地代码所有权移交插件。它把一个边界明确的代码变化整理为经过 Evidence 校验的 Ownership Map,帮助工程师理解行为变化、运行路径、状态、副作用、失败状态以及后续修改位置。
完整 Markdown Ownership Map 是默认结果。Ownership Canvas、Trace、Why 与 Ownership Check 都建立在同一份已发布 Map 上,不会建立第二套事实。
Before / After
Before:AI 修改了订单处理入口和保存路径,工程师面对 Diff 仍要自行回答“行为从什么变成什么、请求经过哪里、失败后是什么状态、下一次从哪里改”。
After:$reown 默认分析当前 Working Tree,先输出简短 Ownership Brief,再交付完整 Map。Map 中每条重要结论链接到 Observed、Declared 或 Inferred Evidence;发布后输入 canvas呢、为什么这样设计、失败会怎样 或 从哪里改,只会续接同一份当前 Map。这个例子描述产品交付,不是尚未执行的真人效果结论。
首次使用只需掌握四个概念:
- Change:当前 Working Tree,或显式指定的 commit / branch Diff;
- Map:Change 的唯一权威、Evidence-linked 模型;
- Canvas:Map 的只读交互视图,不创造新事实;
- Check:可选的理解验证,不阻塞正常开发。
安装
无需克隆 ReOwn 仓库。直接让 Codex 执行以下自然语言请求:
帮我从 npm 安装并配置 @codehero0x0/[email protected]Codex 将运行:
npx --yes @codehero0x0/[email protected] setupSetup CLI 会在 Codex 环境中创建独立的 reown-npm Marketplace,其插件来源为 npm Registry,然后安装并启用 ReOwn。安装后先在 /hooks 中审查 Hooks 并自行决定是否信任,再新建 Codex 任务,使插件、Skill 与 Hooks 按新版本重新加载。首次使用请调用 $reown、ReOwn Map,或明确说明 Use ReOwn Map to take over the current change;裸插件 mention 不保证执行 Skill。
安装生命周期 CLI
所有命令支持稳定的 --json 输出;失败会在 stderr 返回包含错误代码、说明和处理动作的 JSON,并以非零状态退出。
npx --yes @codehero0x0/[email protected] doctor --json
npx --yes @codehero0x0/[email protected] status --json
npx --yes @codehero0x0/[email protected] update --version 0.1.1 --json
npx --yes @codehero0x0/[email protected] data status --repository "$(pwd)" --json
npx --yes @codehero0x0/[email protected] data clear --repository "$(pwd)" --json
npx --yes @codehero0x0/[email protected] uninstall --keep-data --jsondoctor 检查 Node、Codex CLI、Marketplace、插件版本、Hooks 可发现性与人工信任动作,以及 IDEA MCP 配置;它不会要求安装时 IDEA 已经打开。status 同时报告本地数据概况。update 只接受明确版本,本版本为 0.1.1。
uninstall 只移除 reown@reown-npm 与 reown-npm Marketplace,默认保留 PLUGIN_DATA。只有显式传入 --delete-data 才删除数据;添加 --repository <path> 可把删除限制在该仓库。data clear 必须明确使用 --repository <path> 或 --all,不会推断删除范围。
审查并信任 Hooks
安装后在 Codex 中打开 /hooks,检查 ReOwn 的六个生命周期 Hook,再由用户决定是否信任。Hooks 默认执行插件内 hooks/hooks.json 指向的本地脚本,用于:
- 识别编码任务并保存 Task Envelope;
- 第一次写操作前记录 Git Baseline;
- 记录文件变化、有限命令摘要和明确的 Decision Breadcrumb;
- Stop 时静默记录 Worthiness;
- Compact 时保存有限摘要;
- Session 结束时记录状态并执行保留策略。
所有 Hooks 的成功路径都保持静默:不向普通对话注入上下文、不阻断回答、不主动提示 ReOwn,只把 Evidence 写入 PLUGIN_DATA,供用户之后调用 ReOwn Map 时读取。Hooks 不调用模型、不构建或运行项目、不执行测试和调试、不扫描整个仓库、不发起网络请求;错误时 Fail Open,不阻断正常开发。关闭 Capture 后仍可手动调用 ReOwn Map。
IDEA MCP 前置条件
IDEA MCP 是强制依赖。运行 ReOwn Map 前必须满足:
- IDEA 正在运行;
- 目标仓库已经在 IDEA 中打开;
- 项目索引完成;
- IDEA MCP 已连接;
- IDEA 返回的项目路径与目标仓库一致。
任一条件不满足,ReOwn 会停止并提示打开 IDEA、加载项目、等待索引或启用 MCP。它不会改用文本搜索、Git-only 或内置 Parser 降级分析。
用户已授权时,ReOwn 可以通过 IDEA MCP 读取全部项目代码和索引,并按 Ownership Map 所需证据构建、运行、测试、调试或读取相关运行时信息。插件同时打包本地 ReOwn Runtime MCP,专门负责 ReOwn Session、Capture、Ownership Map、状态与设置,并复用唯一的 PLUGIN_DATA V2 Change/current 存储;Runtime 不读取或解析源码、不调用 IDEA MCP,也不是 IDEA MCP 的降级替代。ReOwn 不打包 Java/TypeScript Parser 或语言服务器。
使用
插件公开三个英文 Skill:ReOwn Map、ReOwn Canvas、ReOwn Help。$reown 继续作为 ReOwn Map 的直接显式入口;空参数立即分析当前项目的 Working Tree,无需补充任务描述。附加描述只用于指定 commit、分支或文件范围。明确表达接管或理解当前改动的自然语言也可以进入 ReOwn Map,普通代码问答不会触发。
$reown
ReOwn Map: analyze commit <sha>
Use ReOwn Map to take over the current change
ReOwn Canvas
ReOwn Help如果当前 Working Tree 没有变化,ReOwn 会明确说明没有可分析的变化,并提示可选的 commit 或分支写法,而不是要求用户重新描述一个泛化任务。
ReOwn Map 先通过 IDEA MCP 确认 IDEA、项目、索引、连接和项目路径,再调用本地 Runtime MCP 建立 Change Snapshot、读取 Capture、发布并设置当前 Ownership Map。IDEA MCP 提供符号、调用、测试、构建、运行或调试 Evidence;Runtime MCP 执行发布、路径、行号、符号、测试、Observed Claim 与 Diff Hash 校验。任一 IDEA 前置条件不可确认都会停止,不会使用 Git-only 或文本搜索降级。
成功发布后先显示完全由已发布 Map 投影的简短 Ownership Brief,再返回独立完整 Markdown。之后可以用 canvas呢、为什么这样设计、失败会怎样、从哪里改 等短句续接当前仓库的当前 Map。ReOwn Canvas 会先通过 Runtime get_current_map 读取当前已发布、未 Stale 的 Map,再把返回的 repository、完整 map 与进程绑定的 canvasTicket 原样交给唯一的 open_canvas render tool,由它返回 bundled MCP App resource;不调用通用 Visualize,也不生成独立 HTML。Map 缺失、来自其他仓库或已经 Stale 时拒绝消费并提示重新运行 ReOwn Map;宿主不渲染 MCP App 时,structured content 和完整 Markdown 仍可独立使用。
Ownership Check 默认关闭且不阻塞开发。Quick Check 只更新 Review Status,不生成 Ownership Claim;self-declared Claim 只来自用户明确声明,verified Claim 必须包含 Micro Change 或其他验证 Evidence。Micro Change 只返回任务,ReOwn 不代替用户修改业务代码。
本地数据与隐私
个人产物只写入 Codex 提供的 PLUGIN_DATA,不污染业务仓库。默认保留 14 天、每个仓库最多 20 个 ReOwn Session,并可通过 ReOwn Help 查看 Settings 或清理当前仓库记录进行管理。
ReOwn 默认不保存完整命令输出,拒绝保存常见环境文件、密钥与证书,并对 API Key、Bearer Token、私钥和常见云密钥脱敏。插件不启用遥测,不引入 Codex 与 IDEA MCP 正常处理之外的数据外传,不包含远程 Backend、额外账号或第三方分析服务。
交付内容
.codex-plugin/plugin.json:插件 Manifest;.mcp.json与dist/mcp/server.js:自包含的本地 ReOwn Runtime MCP;skills/reown/:ReOwn Map 与按需加载的 Evidence、Map、后续意图 References;skills/reown-canvas/:只读当前 Map 的 ReOwn Canvas;skills/reown-help/:调用、状态、Settings 与排障入口;hooks/与dist/hooks/:可审查的 Hook 配置与运行脚本;dist/scripts/:兼容现有自动化的 Core CLI 入口;公共 Skills 使用 Runtime MCP 与 IDEA MCP;assets/:Codex 插件图标和亮/暗色 Logo;benchmarks/:14 个 V1 接管任务、统一 Rubric 与结果报告。
项目源码、测试与 Benchmark Runner 统一使用 TypeScript;安装态执行编译后的 JavaScript。
验证环境与限制
安装态产品契约在 macOS 26.6.2、Node.js 20.20.2、npm 10.8.2 和 Git 2.55.0 下以
deterministic protocol mode 运行。它从本 checkout 的 0.1.1 npm tarball 安装到隔离环境,
使用全新 Git 仓库、受控 Codex CLI 协议适配器、受控 IDEA stdio MCP 和安装后的 bundled Runtime
MCP;验证 setup/doctor/status/update/uninstall、数据生命周期、静默且零仓库外污染的 Hooks、五种
IDEA fail-closed 情况、Map/current/Stale、黄金意图连续性,以及 Canvas resource/structured
projection/完整 Markdown fallback。该过程不读取或改写用户插件状态,也没有发布或覆盖 npm Registry。
确定性产品契约不会用 intent 直接调用冒充 Agent。仓库另提供 opt-in 的
REOWN_LIVE_AGENT=1 npm run test:live-agent:它使用当前 checkout 的 npm tarball、隔离
CODEX_HOME、新的真实 Codex Agent 任务、受控 IDEA MCP 和 exec resume 验证入口、fail-closed、
Map 发布与 current Map 连续性;缺少认证时输出机器可读 blocker,默认测试不调用模型。
2026-08-24 使用 codex-cli 0.149.0-alpha.4.1 的隔离 live run 已通过上述场景;该结果是
Agent 工具事件与 PLUGIN_DATA current 指针的机器断言,不是 intent 直接调用。
本地 stdio MCP App resource 的 Codex Desktop UI 渲染仍无法从 codex exec 自动观察;协议级资源、
structured Canvas 和完整 Markdown fallback 已验证。真人 TTO、Prediction、Localization、Failure 与
Mutation 指标均为 N/A。
