关于 ara-compiler
ara-compiler 是一项 Claude Code Agent 技能,可将多种研究输入转换为结构化且经过验证的 ARA 工件。它把证据、主张、实验和研究决策映射到不同层级,再检查覆盖度并运行 Level 1 验证。
主要功能
- 01接收多种研究输入
- 02提取主张、证据与实验
- 03生成结构化 ARA 文件
- 04执行覆盖检查和 Level 1 验证
- 05生成实现桩和研究图
适用场景
- 01将论文及附录整理为 ARA
- 02把代码、实验日志和笔记组织成研究工件
- 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.mdexploration-tree-spec.mdvalidation-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 评分标准- 其他任何内容 → 作为上下文处理,或向用户请求澄清
输入读取策略
根据收到的内容灵活调整:
- 识别现有材料。 使用 Glob、读取并探索提供的路径。在确定生成计划之前,先了解输入的性质。
- 最大限度地覆盖信息。 交叉参考所有可用来源。PDF 提供叙述和主张;代码提供真实实现;实验日志提供探索过程;笔记记录论文中未提及的决策和失败尝试。
- 遇到困难时提问。 如果输入含糊或不完整,请用户补充信息,而不是凭空捏造。用户是协作者,而不是被动的接受者。
- 妥善处理部分输入。 并非每种输入都能填充 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、Assumptionslogic/claims.md— Claims(C01、C02……),每项均包含 Statement、Status、Falsification criteria、Proof、Evidence basis、Interpretation、Dependencies、Tagslogic/concepts.md— ≥5 个 concepts,每项均包含 Notation、Definition、Boundary conditions、Related conceptslogic/experiments.md— ≥3 个 experiments(E01、E02……),每项均包含 Verifies、Setup、Procedure、Metrics、Expected outcome(仅方向性!)、Baselines、Dependencieslogic/solution/architecture.md— 含输入/输出的组件图logic/solution/algorithm.md— 数学公式 + 伪代码 + 复杂度logic/solution/constraints.md— 边界条件和局限性logic/solution/heuristics.md— Heuristics(H01、H02……),每项均包含 Rationale、Sensitivity、Bounds、Code ref、Sourcelogic/related_work.md— Related work(RW01、RW02……),每项均包含 DOI、Type、Delta、Claims affectedsrc/configs/training.md— 超参数及其 Value、Rationale、Search range、Sensitivity、Sourcesrc/configs/model.md— 模型/架构配置src/execution/{module}.py— ≥1 个带类型签名的代码框架src/environment.md— Python 版本、框架、硬件、依赖项、随机种子trace/exploration_tree.yaml— 研究 DAG(≥8 个节点,嵌套 YAML)evidence/README.md— 索引表,将每个证据文件映射到相应 claimsevidence/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:修复并迭代
针对每项验证失败:
- 阅读失败文件
- 进行有针对性的编辑(优先使用 Edit,而非完全重写,以保留正确内容)
- 所有修复完成后重新验证
通常经过 2~3 轮即可收敛。
步骤 7:报告
打印摘要:
- 工件位置
- 文件数量和总大小
- 验证结果(通过/失败及详情)
- 关键统计:声明、实验、启发式、概念、树节点和证据文件的数量
关键规则
- 精确数字:从来源复制的所有数值必须完全一致,绝不取整或近似
- 不得臆造:绝不编造来源材料中没有的声明、结果或启发式
- 实验不得包含精确数字:
experiments.md仅包含方向性/相对预期结果。精确数字应放在evidence/中 - 每项声明都要有证明:Proof 字段引用实验 ID(E01、E02),而不是文件路径
- 跨层绑定:声明 ↔ 实验 ↔ 证据 ↔ 代码引用必须全部对应
- 失败路径很重要:包含失败的方法、被否决的替代方案和消融实验发现
- “Not specified”:如果确实无法获得某项信息,写明 "Not specified in paper",绝不猜测
- 不得伪造来源标签:除非忠实复现原始来源对象,否则绝不要将派生子集称为
Table N或Figure N - 不得合成追踪历史:不得编造所提供输入中未明确记载的决策、失败路径或实验;如果某段过程是推断得出的,应标记为 inferred,或直接省略
- 措辞受证据限制:不得使用超出证据支持力度的强硬措辞;应区分直接观察与解读
参考文件
如需详细的架构规范,请按需加载:
- references/ara-schema.md — 完整的 ARA 目录架构,以及每个文件的字段格式
- references/exploration-tree-spec.md — 详细的探索树 YAML 规范及示例
- references/validation-checklist.md — 所有 Seal Level 1 检查项(验证器检查的内容)