LeifDiao/codex-radar
GitHub: LeifDiao/codex-radar
一款 Codex CLI 插件,通过解析本地会话日志对用户与 Codex 的协作质量进行九维评分并生成带有可执行建议的诊断报告。
Stars: 16 | Forks: 0
# Codex Radar
🌏 [中文版](./README_zh.md) · 📖 [方法论](./docs/METHODOLOGY.md) · 🖥 [实时预览](https://leifdiao.github.io/codex-radar/) · ⚖️ [许可证](./LICENSE)
## 核心功能
**🎯 读取你真实的 Codex 会话,而非合成提示词。** Codex Radar 解析你的 agent 已经写入的真实 JSONL 文件 —— 你发送的每一个提示词、每一条 shell 命令及其退出码(包括新旧 rollout 格式)、每一次 `apply_patch` 编辑、每一次计划更新、MCP / 网络搜索 / subagent 调用。Subagent 线程会被排除(因为它们的“用户消息”是 agent 自己生成的),而 `codex exec` 批处理运行会被判定为自动化配置,而非对话。
**💬 你的 Codex 会为你写下指导建议,而不仅仅是打分表。** 一个确定性的解析器会提取事实,**并在代码中计算所有公式基线** —— 天然支持复现。随后,你自己的 Codex 模型会应用一个有界且附带证据引用的调整(根据数据置信度为 ±5/±10/±15),并撰写自由格式的诊断报告。每一项声明都引用了你真实会话中可通过 ID 寻址的证据单元。
**📋 建议是分类明确的干预措施,而非陈词滥调。** 提示词重写、工作流指南、即用型配置文件(包括生成的 `AGENTS.md` 草稿)、工具引入策略,以及完成定义(definition-of-done)流程 —— 每一条都基于引用的证据,每一条都带有一个可在你下次报告中核验的 `verifyBy` 指标。
**⚖️ 感知项目类型的权重计算。** 对一个 3 条消息的修复任务的评判标准,不同于一个包含 50 次会话的功能开发 —— 也不同于一个 200 次运行的图像 pipeline。Codex Radar 会自动对每个项目进行分类(`one-shot` / `feature-build` / `long-running` / `learning` / `automation`)并应用不同的分类权重。当某个信号确实无法评估时,该维度会被标记为 **N/A**,而不是伪造结果。
**🛠 评估你驾驭平台的能力,而不仅仅是交流方式。** 命令成功率、计划步骤完成度、基于 server 的 MCP 使用及错误率、subagent 编排生命周期(启动与实际关闭的对比)、网络调研、技能、上下文清晰度。这里的证明(Proof)意味着实际运行过的验证 —— 仅靠一句 `echo 验证` 是不算数的,而针对失败测试所做出的反应则会为你赢得积分。
**📈 每次运行都会记住上一次的结果。** 报告会保留本地历史记录 —— 第二次运行会显示分数趋势和各维度的变化值(“自上次运行以来:Proof Check +9”),通过每条建议的 `verifyBy` 形成闭环。
**🔒 100% 本地运行,零遥测。** 以只读方式访问 `~/.codex/sessions`。无需 API key,不连云端,没有网络调用。报告是经过转义的单文件 HTML,会被写入 `~/.codex-radar/reports/`。
## 报告包含的内容
让 Codex 运行该插件,你会得到一个单文件的 HTML 仪表盘,其布局就像一份指导报告 —— 先给出结论,只需点击一下即可查看证据:
**结论 (Verdict)** —— 你的 S-D 级评分和一句话见解、你正在被评判的项目画像、真实的 9 维雷达图,以及(从第二次运行开始的)分数趋势。
**核心解读 (Key Reads)** —— 以引言形式呈现的核心诊断,外加两张标题卡片:你的**最强信号**和你的**主要瓶颈**,每张卡片都固定在某个维度上,点击即可查看其评分依据。完整的协作画像和跨类别的模式解读就在下方不远处。
**行动计划 (Action Plan)** —— 最需要优先执行的建议会被重点标出,附带其引用的证据、可直接复制的提示词,以及一个可在你下次报告中核验的 `verifyBy` 指标;其余分类明确的建议(提示词重写、工作流指南、配置文件、工具引入、验证流程)会折叠成单行显示 —— 此外,如果你的项目缺少 `AGENTS.md`,还会提供一份生成好的草稿。
**评分卡 (Scorecard)** —— 三个类别区块,每个区块的评分范围为 0-100,并包含其 3 个维度:
| 类别 | 维度 |
| --- | --- |
| **Communication (沟通)** | Lock-On 瞄准力 · Scene Setting 铺场力 · Steering 校准力 |
| **Engineering (工程)** | Toolcraft 工具调度 · Architecture 工程脚手架 · Tempo 推进节奏 |
| **Outcome (结果)** | Efficiency 产出效率 · Proof Check 验证意识 · Completion 闭环完成 |
每个维度所在行都可以展开,查看其公式基线、有界且附带证据引用的调整、推理过程,以及自上次运行以来的各维度变化值。
**附录 (Appendix)** —— 默认折叠:摩擦点(频繁重试、纠正、中止的对话回合)、近期会话的深入分析、引用的证据单元,以及平台指标 —— 工具类别、基于 server 的 MCP 使用情况、subagent 编排生命周期、计划完成度、上下文清晰度、项目资产、命令成功率。
## 安装
**第 1 步** — 添加插件市场(此代码库本身就是一个 Codex 插件市场):
```
codex plugin marketplace add LeifDiao/codex-radar
```
**第 2 步** — 安装插件:
```
codex plugin add codex-radar@codex-radar-marketplace
```
**备选方案(本地检出):**
```
git clone https://github.com/LeifDiao/codex-radar.git ~/codex-radar
codex plugin marketplace add ~/codex-radar
codex plugin add codex-radar@codex-radar-marketplace
```
安装后请开启一个**新线程**,以便 Codex 加载新技能。
## 使用
Codex Radar 通过自然语言运行 —— 你无需记忆任何 slash 命令。在新线程中,输入:
```
Run Codex Radar on this project
```
1. Codex Radar 会在本地会话历史记录中检测你当前的工作目录,并询问是否要对其进行分析。
2. 进行确认,或者从最近的项目列表中选择。
3. 它会解析会话并进行评分 —— 只需几秒钟,纯 Node 运行,无需等待模型。
4. 仪表盘将被写入 `~/.codex-radar/reports/`,并打印出路径供你打开。
使用诸如 *“分析我的 Codex 协作情况”* 或 *“创建一份 Codex Radar 报告”* 这样的初始提示词也可以。
## 环境要求
- 带有插件支持功能的 **Codex CLI**
- **Node.js 18+**
- 无需 `npm install`,无需构建步骤,无需服务器
## 隐私
你的会话数据始终保留在你的机器上:
- 所有操作均在本地运行 —— 无网络调用,无需 API key,无遥测
- 对 `~/.codex/sessions`、`~/.codex/archived_sessions` 和 `~/.codex/session_index.jsonl` 的访问是只读的
- 报告会写入 `~/.codex-radar/reports/`(临时 JSON 会写入 `~/.codex-radar/temp/`)
- 项目资产检测只会检查 `AGENTS.md`、`.git` 或测试文件夹等文件是否存在 —— 绝不会读取其内容
- 报告中可能会包含你自己提示词的简短片段作为证据 —— 请将此 HTML 视为私密文件,除非你有意分享
请参阅 [PRIVACY.md](./PRIVACY.md) 获取完整的数据流向说明。
## 评分原理
**分为三层,对标 [Claude Radar](https://github.com/LeifDiao/claude-radar):**
1. **事实 + 基线** — `parse-codex-project.mjs` 对会话进行分类(interactive / automation / subagent),将工具调用及其输出进行关联(兼容新旧两种 rollout 格式),提取可量化的信号以及可通过 ID 寻址的证据层(atoms, episodes, incidents),并**在代码中计算全部 9 项公式基线**。确定性过程:相同的输入 → 相同的事实,相同的基线。
2. **调整 + 诊断** — 你自己的 Codex 模型会读取事实和 `data/rubric.json`,对每个维度应用有界且受置信度限制的调整,撰写有事实依据的观察结果、诊断报告,以及基于各维度方案生成的分类建议。
3. **渲染** — `render-report.mjs` 验证报告 schema,将其追加到本地历史记录中,注入趋势和变化值(delta),最后生成一个独立的单文件 HTML。
分析过程完全在你自己的 Codex 会话中运行 —— 该插件本身不发起任何网络调用,也不需要单独的 API key。
👉 [阅读完整方法论](./docs/METHODOLOGY.md)
## 透明的评分准则
所有的评分输入都保存在 [`plugins/codex-radar/data/rubric.json`](./plugins/codex-radar/data/rubric.json) 中:
- 9 个维度定义(English + 中文)、调整指南,以及基于各维度的建议方案
- 5 种项目画像(包括 `automation`)以及针对每种画像的分类权重表
- 基于置信度的调整上限和评级阈值(S / A / B / C / D)
想让评分符合你团队的标准吗?编辑 `parse-codex-project.mjs` 中的评分准则和可执行公式 —— 然后运行 `node --test tests/*.test.mjs`;测试固件集能确保解析器在两种 Codex rollout 格式下都保持准确可靠。
## 仓库布局
此代码库本身就是一个 Codex 插件市场。
```
codex-radar/
├── .agents/plugins/marketplace.json # Codex marketplace manifest
├── .github/workflows/test.yml # CI: syntax checks + fixture tests
├── docs/
│ ├── index.html # GitHub Pages landing page
│ ├── METHODOLOGY.md / METHODOLOGY_zh.md # scoring spec (EN + 中文)
├── tests/ # fixture-based regression suite (node --test)
└── plugins/
└── codex-radar/
├── .codex-plugin/plugin.json # plugin manifest
├── data/rubric.json # 9-dim definitions, recipes, profile weights
├── viewer/template.html # the single-file dashboard shell
└── skills/analyze/
├── SKILL.md # orchestration: detect → parse → adjust → render
└── scripts/
├── lib.mjs # shared helpers + incremental meta cache
├── signals.mjs # message classifiers, proof/exit-code extractors
├── list-codex-projects.mjs # project list: kinds breakdown + noise folding
├── compute-baseline.mjs # your per-session metric distributions (cached)
├── parse-codex-project.mjs # facts + evidence + computed baselines
└── render-report.mjs # validate → history/delta → single-file HTML
```
零运行时依赖。
## 许可证
Codex Radar 基于 **CC BY-NC 4.0** 协议发布:
- ✅ 对个人、教育、研究和任何非商业用途是**免费**的
- ✅ 欢迎**复刻 (Forking)、修改、分享** —— 请标明原始代码库并注明修改内容
- ❌ **商业用途**(打包进付费产品、在营利性公司中超出个人范围的使用、付费的 SaaS 托管、出售基于该评分的报告/分析)需要单独获取授权
**如需商业授权**,请联系:**leifdiao@gmail.com**
请参阅 [LICENSE](./LICENSE) 了解完整条款。
*专为关注 AI 协作质量的人士而打造。*
标签:AI辅助编程, Codex, MITM代理, SOC Prime, 代码质量分析, 可视化面板, 多模态安全, 开发工具