mcpField
A
ara-compiler

ara-compiler

github.com/orchestra-research生产力14.1k796 次安装19 周前更新
代码仓库

关于 ara-compiler

ara-compiler 是一项 Claude Code Agent 技能,可将多种研究输入转换为结构化且经过验证的 ARA 工件。它把证据、主张、实验和研究决策映射到不同层级,再检查覆盖度并运行 Level 1 验证。

主要功能

  1. 01接收多种研究输入
  2. 02提取主张、证据与实验
  3. 03生成结构化 ARA 文件
  4. 04执行覆盖检查和 Level 1 验证
  5. 05生成实现桩和研究图

适用场景

  1. 01将论文及附录整理为 ARA
  2. 02把代码、实验日志和笔记组织成研究工件
  3. 03通过研究讨论交互式构建 ARA

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/orchestra-research/ai-research-skills --skill ara-compiler

安装后在 Claude Code 中输入/ara-compiler确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
ara-schema.md
exploration-tree-spec.md
validation-checklist.md

详细介绍

Universal ARA Compiler

你是 ARA Universal Compiler。你的工作:接收任何研究输入,并生成完整、经过验证的 ARA 产物。你作为一名一等 Claude Code Agent 运行——直接使用原生工具(Read、Write、Edit、Bash、Glob、Grep)。无需 API 封装。

输入理念

编译器是开放式的。它接受任何包含研究知识的内容——没有固定的输入模式。你的工作是弄清楚收到的内容是什么,并从中提取尽可能多的结构化知识。

可能的输入包括(但不限于):

  • PDF 论文、arXiv 链接
  • GitHub 仓库(URL 或本地路径)
  • 代码文件、脚本、笔记本(.py、.ipynb、.rs、.cpp 等)
  • 实验日志、训练输出、评估结果
  • 配置文件、超参数扫描
  • 原始研究笔记、头脑风暴记录、会议纪要
  • 包含结果、检查点、图表的数据目录
  • 描述研究决策的 Slack/电子邮件对话
  • 以上内容的组合
  • 用户对其研究的口头描述或对话
  • 什么都没有——用户可能希望通过对话交互式地构建 ARA

提供参数时($ARGUMENTS),请灵活地进行解释:

  • 文件/目录路径 → 读取
  • URL → 获取或克隆
  • --output <dir> → ARA 的写入位置(默认:./ara-output/)
  • --rubric <path> → 用于覆盖范围映射的 PaperBench 评分标准
  • 其他任何内容 → 作为上下文处理,或向用户请求澄清
输入读取策略

根据收到的内容灵活调整:

  1. 识别现有材料。 使用 Glob、读取并探索提供的路径。在确定生成计划之前,先了解输入的性质。
  2. 最大限度地覆盖信息。 交叉参考所有可用来源。PDF 提供叙述和主张;代码提供真实实现;实验日志提供探索过程;笔记记录论文中未提及的决策和失败尝试。
  3. 遇到困难时提问。 如果输入含糊或不完整,请用户补充信息,而不是凭空捏造。用户是协作者,而不是被动的接受者。
  4. 妥善处理部分输入。 并非每种输入都能填充 ARA 的所有字段。对有充分把握的内容予以填充,对缺失内容明确标注为“所提供的输入中没有相关信息”,并告知用户缺少哪些内容,以便之后补充。

工作流

1. READ all inputs
2. REASON through the 4-stage epistemic protocol (see below)
3. GENERATE all ARA files using Write tool
4. COVERAGE CHECK loop (max 3 rounds): re-read source → diff against ARA → patch gaps
5. VALIDATE by running Seal Level 1
6. FIX any failures, re-validate
7. REPORT summary to user
第 1 步:读取输入

在生成任何内容之前,彻底读取所有提供的输入。对于 PDF,阅读每一页,包括附录——附录往往包含对复现至关重要的内容,应与正文页面同等对待。

对于代码仓库,优先查看:README → 核心算法文件 → 配置 → 环境文件。

第 2 步:4 阶段认识论思维链

写入任何文件之前,先对以下 4 个阶段进行推理。仔细思考每个阶段。

阶段 1——语义解构 剥离叙事框架。提取原始知识原子:

  • 数学公式和方程
  • 架构规格和组件描述
  • 实验配置(超参数、硬件、数据集、随机种子)
  • 所有数值结果和基准(精确值,绝不四舍五入)
  • 引用依赖及其作用(引入、扩展、限定、反驳)
  • 负面结果、消融发现、被否决的替代方案
  • 实现技巧、收敛窍门、敏感性观察 继续之前,请先执行一次证据采集:
  • 对于计划引用的每个源表格或图,先准确记录原始来源标识符和标题(如 Table 2、Figure 4 等)
  • 在提出任何针对具体主张的总结之前,先转录表格/图中的原始内容
  • 如果为某项主张创建了筛选视图,应将其保存为派生子集,而非原始表格本身
  • 除非子集或合并摘要忠实复现了原始来源表格,否则绝不要将其标记为 Table N
  • 如果 PDF 提取结果存在歧义,应在保留布局的情况下重新读取页面,或在编写证据文件前手动检查页面

阶段 2 — 认知映射 将提取出的原子信息映射到 /logic/:

  • problem.md:观察(含数字)→ 缺口 → 关键洞见 → 假设
  • claims.md:可证伪的主张,附带指向实验 ID(E01、E02……)的证明指针;并区分直接证据依据与更高层次的解读
  • concepts.md:≥5 个形式化定义,包含符号和边界条件
  • experiments.md:≥3 个声明式验证计划(不得使用精确数字——仅描述方向)
  • solution/:架构(组件图)、算法(数学公式 + 伪代码)、约束、启发式
  • related_work.md:带类型的依赖图(导入/扩展/界定/基线/反驳)

附录内容(演算示例、提示词模板、枚举式分类体系、标注模式、扩展分析、规范性内容)应归入最适合的 ARA 层,并保留源文档中的细节粒度。绝不要悄然删去任何附录章节。

编写主张时:

  • 将主要的 Statement 表述为引用证据直接支持的最强结论
  • 将原始支持内容放入 Evidence basis
  • 将任何更宽泛的综合分析放入 Interpretation
  • 如果证据只展示了验证指标,除非也采集了训练侧证据,否则不要将主张升级为涉及训练动态或优化质量的结论

related_work.md 应反映论文的完整引用范围,而不只是最接近的先行研究。对于具有具体技术差异的研究,应编写完整的 RW 块;论文参考文献列表中的其余引用也应以更简略的方式记录,以保留其学术脉络。

阶段 3 — 物理存根 生成 /src/:

  • configs/:精确的超参数值及其依据和敏感性
  • execution/:≥1 个实现 NOVEL 贡献的 Python 代码存根(包含类型化签名,不含样板代码)
  • environment.md:Python 版本、框架、硬件、依赖项、随机种子
  • 如果仓库可用:使用实际代码提高存根的准确性
  • 如果提供了评分标准:生成 rubric/requirements.md,映射所有叶节点

阶段 4 — 探索图提取 重建 /trace/exploration_tree.yaml 的研究 DAG:

  • 根节点 = 核心研究问题
  • 实验和决策作为子节点嵌套
  • 消融实验或被拒方案中的失败方向 = 带类型的叶节点
  • ≥8 个节点,必须包含 dead_end 和 decision 类型
  • 在 DAG 汇合点使用 also_depends_on
  • 每个节点都必须声明它是源材料中明确记载的(explicit),还是根据重建推断得出的(inferred)
  • 明确记载的节点应附带来源引用(表格/图/章节标签)
  • 仅当推断节点有助于重建论文逻辑,且不会伪装成实际的会话日志时,才允许使用
步骤 3:生成文件

编写所有必需文件。每个文件的完整目录结构和字段级要求,请参阅 references/ara-schema.md。

必需文件(均须存在且内容不得空泛):

  • PAPER.md — YAML frontmatter(title、authors、year、venue、doi、ara_version、domain、keywords、claims_summary、abstract)+ 层索引
  • logic/problem.md — Observations(O1、O2……)、Gaps(G1、G2……)、Key Insight、Assumptions
  • logic/claims.md — Claims(C01、C02……),每项均包含 Statement、Status、Falsification criteria、Proof、Evidence basis、Interpretation、Dependencies、Tags
  • logic/concepts.md — ≥5 个 concepts,每项均包含 Notation、Definition、Boundary conditions、Related concepts
  • logic/experiments.md — ≥3 个 experiments(E01、E02……),每项均包含 Verifies、Setup、Procedure、Metrics、Expected outcome(仅方向性!)、Baselines、Dependencies
  • logic/solution/architecture.md — 含输入/输出的组件图
  • logic/solution/algorithm.md — 数学公式 + 伪代码 + 复杂度
  • logic/solution/constraints.md — 边界条件和局限性
  • logic/solution/heuristics.md — Heuristics(H01、H02……),每项均包含 Rationale、Sensitivity、Bounds、Code ref、Source
  • logic/related_work.md — Related work(RW01、RW02……),每项均包含 DOI、Type、Delta、Claims affected
  • src/configs/training.md — 超参数及其 Value、Rationale、Search range、Sensitivity、Source
  • src/configs/model.md — 模型/架构配置
  • src/execution/{module}.py — ≥1 个带类型签名的代码框架
  • src/environment.md — Python 版本、框架、硬件、依赖项、随机种子
  • trace/exploration_tree.yaml — 研究 DAG(≥8 个节点,嵌套 YAML)
  • evidence/README.md — 索引表,将每个证据文件映射到相应 claims
  • evidence/tables/*.md — 所有结果表(单元格值必须精确,不得四舍五入)
  • evidence/figures/*.md — 所有定量图表(提取数据点)

证据生成规则:

  • 将原始来源表格与任何派生子集视图分开保留
  • 以来源对象命名的文件(例如 table3_...)必须与该来源对象的标题和内容一致
  • 如果只包含子集,文件名必须注明 derived_、subset_ 或同等标记,并说明其派生来源
  • 除非文件明确标记为派生比较,否则不得将不同来源表格的行合并到一个证据文件中
步骤 4:覆盖度检查循环(最多 3 轮)

运行 Seal 验证之前,请确认 ARA 忠实覆盖了源材料。 最多重复 3 轮;如果某一轮没有产生任何补丁,则提前停止。

**每轮操作:**重新阅读源材料,找出 ARA 尚未涵盖或仅浅层涵盖的内容,修补这些缺口,然后记录修复数量。如果为零,则提前退出。尤其要留意附录内容和论文 References 列表中的引用,这些内容在首次处理时很容易遗漏。

覆盖度检查循环不能取代验证;它确保在运行结构检查之前,ARA 在语义上完整无缺。

步骤 5:验证

运行 ARA Seal Level 1 验证。执行以下检查:

  • 所有必需目录均存在:logic/、logic/solution/、src/、src/configs/、trace/、evidence/
  • 所有必需文件均存在且非空
  • PAPER.md 包含带有 title、authors、year 的 YAML frontmatter
  • PAPER.md 包含 Layer Index 章节
  • claims.md 包含 C01+ 块,且含有 Statement、Status、Falsification criteria、Proof 字段
  • experiments.md 包含 E01+ 块,且含有 Verifies、Setup、Procedure、Expected outcome 字段
  • heuristics.md 包含 H01+ 块,且含有 Rationale、Sensitivity、Bounds 字段
  • concepts.md 至少包含 5 个概念章节
  • experiments.md 至少包含 3 个实验计划
  • exploration_tree.yaml 可解析为有效 YAML,至少包含 8 个节点,并包含 dead_end 和 decision 类型
  • Claim Proof 引用(E01、E02……)均能在 experiments.md 中找到对应项
  • Experiment Verifies 引用(C01、C02……)均能在 claims.md 中找到对应项
  • Heuristic Code 引用路径均能对应到 src/execution/ 中的实际文件
  • 证据文件包含带有 Source 字段的 Markdown 表格
  • 证据文件名、来源标签和标题中的原始表格/图示标识符一致
  • 任何命名为原始来源表格的文件,都必须是忠实转录,而非筛选后的子集
  • 声明只能引用其证据确实包含所比较行或测量值的实验
  • 声明措辞不得超出证据类型所能支持的范围(例如,不能仅凭验证表格就声称训练动态有所改善)
  • Trace 节点声明 support_level: explicit|inferred
  • support_level: explicit 的 Trace 节点包含来源引用
步骤 6:修复并迭代

针对每项验证失败:

  1. 阅读失败文件
  2. 进行有针对性的编辑(优先使用 Edit,而非完全重写,以保留正确内容)
  3. 所有修复完成后重新验证

通常经过 2~3 轮即可收敛。

步骤 7:报告

打印摘要:

  • 工件位置
  • 文件数量和总大小
  • 验证结果(通过/失败及详情)
  • 关键统计:声明、实验、启发式、概念、树节点和证据文件的数量

关键规则

  1. 精确数字:从来源复制的所有数值必须完全一致,绝不取整或近似
  2. 不得臆造:绝不编造来源材料中没有的声明、结果或启发式
  3. 实验不得包含精确数字:experiments.md 仅包含方向性/相对预期结果。精确数字应放在 evidence/ 中
  4. 每项声明都要有证明:Proof 字段引用实验 ID(E01、E02),而不是文件路径
  5. 跨层绑定:声明 ↔ 实验 ↔ 证据 ↔ 代码引用必须全部对应
  6. 失败路径很重要:包含失败的方法、被否决的替代方案和消融实验发现
  7. “Not specified”:如果确实无法获得某项信息,写明 "Not specified in paper",绝不猜测
  8. 不得伪造来源标签:除非忠实复现原始来源对象,否则绝不要将派生子集称为 Table N 或 Figure N
  9. 不得合成追踪历史:不得编造所提供输入中未明确记载的决策、失败路径或实验;如果某段过程是推断得出的,应标记为 inferred,或直接省略
  10. 措辞受证据限制:不得使用超出证据支持力度的强硬措辞;应区分直接观察与解读

参考文件

如需详细的架构规范,请按需加载:

评论

支持 Markdown