# aiming-lab/autoresearchclaw architecture

> Architecture diagram of the GitHub repository aiming-lab/autoresearchclaw, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-06-21). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aiming-lab/autoresearchclaw
- Repository: https://github.com/aiming-lab/autoresearchclaw

## Overview

1. **Overall shape**
   - AutoResearchClaw is a Python 3.11+ research orchestration system that turns a topic into a paper through a staged pipeline.
   - The core product is the `researchclaw` package; everything else supports the pipeline with adapters, sandboxes, domain profiles, UI, and benchmarking.

2. **Primary control plane: the pipeline**
   - The main execution path lives under `researchclaw/pipeline/`.
   - It is a 23-stage workflow grouped into scoping, literature discovery, synthesis, experiment design/execution, analysis, writing, and finalization.
   - This is the central backbone for any architecture diagram: nearly all subsystems plug into or are called by this pipeline.

3. **Pipeline inputs and configuration**
   - Configuration comes from YAML and env vars (`config.researchclaw.example.yaml`, `prompts.default.yaml`, domain profiles, credentials loaders).
   - The configuration determines model provider, domain, experiment mode, export target, HITL policy, and optional bridges such as MetaClaw/OpenClaw.
   - Domain-specific profiles under `researchclaw/domains/profiles/` steer the pipeline for ML, biology, chemistry, physics, HEP, neuroscience, etc.

4. **Research intelligence layer**
   - Literature and web discovery are separate from experiment execution.
   - `researchclaw/literature/` handles arXiv, OpenAlex, Semantic Scholar, novelty, trends, verification, and caching.
   - `researchclaw/web/` provides crawler/search/PDF extraction/scholar access, and `researchclaw/knowledge/` stores extracted entities, relations, and queryable research memory.

5. **Experiment generation and execution**
   - Experiment work is split across `researchclaw/experiment/` and `researchclaw/agents/`.
   - `code_searcher`, `benchmark_agent`, `figure_agent`, and `benchmark_agent` create runnable code, select datasets/baselines, and generate publication figures.
   - The pipeline can run experiments in multiple backends: local sandbox, Docker, SSH remote, Colab, or specialized domain sandboxes.

6. **Domain execution boundaries**
   - Domain adapters in `researchclaw/domains/adapters/` decide how the pipeline executes for a field.
   - Most domains use generic/Python-based execution, but some have specialized paths:
     - biology uses COBRApy-style metabolic workflows,
     - chemistry can use RDKit,
     - HEP routes through ColliderAgent/Magnus-style physics tooling,
     - statistics uses simulation-study workflows.
   - This domain boundary matters because it changes the runtime, toolchain, and artifact shape of experiment stages.

7. **Human-in-the-loop and copilot flow**
   - `researchclaw/hitl/` is a substantial subsystem that can pause, branch, approve, reject, guide, or collaborate on the pipeline.
   - It is exposed through CLI, WebSocket, and MCP adapters, and interacts with stage gates and SmartPause/cost guardrails.
   - Diagram-wise, this is an overlay on the main pipeline: it intercepts selected stages rather than replacing the pipeline itself.

8. **LLM and agent backends**
   - `researchclaw/llm/` abstracts model access, including openai-compatible providers and ACP agent backends.
   - The system can also delegate to external CLI agents via ACP/OpenClaw-compatible paths.
   - Prompting is domain-aware via `researchclaw/prompts/`, and skills from `researchclaw/skills/` plus `.claude/skills/` are injected to guide the model behavior.

9. **Quality, verification, and anti-fabrication**
   - Several subsystems act as guards rather than generators:
     - `researchclaw/assessor/` scores papers and recommends venues,
     - `researchclaw/experiment/validator.py` and `verified_registry.py` enforce evidence-backed outputs,
     - `researchclaw/pipeline/experiment_diagnosis.py` and `experiment_repair.py` detect and repair failed experiments,
     - citation verification and claim checking prevent fabricated references or numbers.
   - These are important boundaries: generated content is not trusted until it passes validation.

10. **Persistence and memory**
   - State is persisted in multiple layers:
     - run artifacts in `artifacts/`,
     - knowledge base entries in `researchclaw/knowledge/`,
     - long-term memory in `researchclaw/memory/`,
     - collaboration/cross-run sharing via `researchclaw/collaboration/` and optional MetaClaw bridge.
   - This creates a feedback loop where prior runs influence future runs through lessons, skills, and cached retrieval.

11. **Output/export layer**
   - Final deliverables are produced by `researchclaw/templates/` and `researchclaw/report.py`.
   - Outputs include Markdown paper drafts, BibTeX, LaTeX conference papers, charts, reviews, verification reports, and archived experiment results.
   - `researchclaw/overleaf/` adds sync/formatting support for LaTeX workflows, so the export boundary is a true handoff to publication tooling.

12. **Orchestration surfaces**
   - The repository exposes several entry points:
     - CLI (`researchclaw/cli.py`, `__main__.py`),
     - HTTP/server components in `researchclaw/server/`,
     - websocket broadcaster/manager for live monitoring,
     - `researchclaw/dashboard/` for metrics and progress,
     - `frontend-legacy/` as an older UI shell,
     - `website/` for public docs/marketing.
   - For architecture diagrams, these are external interaction surfaces around the same core pipeline, not separate engines.

13. **Benchmarking and reproducibility**
   - `experiments/arc_bench/` is an embedded benchmark suite with manifests, rubrics, adapters, and run/evaluation scripts.
   - It exercises the same core pipeline against controlled topics, making the repo both a product and an evaluation platform.
   - `tests/` is extensive and covers nearly every subsystem, reinforcing that the architecture is modular and contract-driven.

14. **Infrastructure dependencies**
   - The system depends materially on Docker, optional SSH/SLURM/cloud executors, LaTeX toolchains, and external scholarly APIs.
   - OpenClaw, ACP-compatible CLIs, and optional messaging/web bridges extend the system beyond a single-process tool into a distributed, human-agent collaborative platform.

Main entry points: [`researchclaw/pipeline/stage_impls/__init__.py`](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/stage_impls/__init__.py) (Stage impls), [`researchclaw/pipeline/runner.py`](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/runner.py) (Pipeline runner), [`researchclaw/hitl/__init__.py`](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/hitl/__init__.py) (HITL), [`researchclaw/report.py`](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/report.py) (Report)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Core pipeline"]
  node_researchclaw_pipeline_runner["Pipeline runner<br/>orchestrator<br/>[runner.py]"]
  node_researchclaw_pipeline_stages["Stages<br/>workflow schema<br/>[stages.py]"]
  node_researchclaw_pipeline_stage_impls["Stage impls<br/>stage handlers<br/>[__init__.py]"]
  node_researchclaw_pipeline_contracts["Contracts<br/>[contracts.py]"]
end

subgraph group_intelligence["Research intelligence"]
  node_researchclaw_literature["Literature<br/>discovery layer<br/>[__init__.py]"]
  node_researchclaw_web["Web<br/>crawl/search<br/>[__init__.py]"]
  node_researchclaw_knowledge[("Knowledge graph<br/>research memory<br/>[__init__.py]")]
  node_researchclaw_trends["Trends<br/>topic mining<br/>[__init__.py]"]
end

subgraph group_execution["Execution and agents"]
  node_researchclaw_experiment["Experiment runtime<br/>sandbox runtime<br/>[__init__.py]"]
  node_researchclaw_domains_adapters["Domain adapters<br/>domain boundary<br/>[__init__.py]"]
  node_researchclaw_llm["LLM layer<br/>model access<br/>[__init__.py]"]
  node_researchclaw_prompts["Prompts<br/>prompting<br/>[__init__.py]"]
  node_researchclaw_agents["Agents<br/>agent tools<br/>[__init__.py]"]
end

subgraph group_safety["Validation and HITL"]
  node_researchclaw_pipeline_verified_registry[("Verified registry<br/>evidence registry")]
  node_researchclaw_pipeline_repair["Repair<br/>failure recovery"]
  node_researchclaw_pipeline_diagnosis["Diagnosis<br/>failure analysis"]
  node_researchclaw_pipeline_verifier["Paper verifier<br/>claim verification<br/>[paper_verifier.py]"]
  node_researchclaw_hitl(("HITL<br/>human-in-loop<br/>[__init__.py]"))
  node_researchclaw_hitl_adapters["HITL adapters<br/>interaction adapters<br/>[__init__.py]"]
end

subgraph group_surfaces["Surfaces and services"]
  node_researchclaw_cli["CLI<br/>entry point<br/>[cli.py]"]
  node_researchclaw_server["Server<br/>http api<br/>[app.py]"]
  node_researchclaw_dashboard["Dashboard<br/>monitoring<br/>[__init__.py]"]
  node_researchclaw_copilot["Copilot<br/>interactive control<br/>[__init__.py]"]
  node_researchclaw_voice["Voice<br/>speech interface<br/>[__init__.py]"]
end

subgraph group_output["Output and memory"]
  node_researchclaw_collaboration["Collaboration<br/>shared state<br/>[__init__.py]"]
  node_researchclaw_memory[("Memory<br/>[__init__.py]")]
  node_researchclaw_report["Report<br/>export<br/>[report.py]"]
  node_researchclaw_templates["Templates<br/>[__init__.py]"]
  node_researchclaw_overleaf["Overleaf<br/>latex sync<br/>[__init__.py]"]
end

subgraph group_bench["Benchmarks and external"]
  node_arc_bench["ARC bench<br/>evaluation suite<br/>[README.md]"]
  node_builtin_skills["Builtin skills<br/>skill library<br/>[registry.py]"]
  node_external_agents["External agents<br/>bridges<br/>[README.md]"]
end

node_researchclaw_pipeline_runner -->|"drives"| node_researchclaw_pipeline_stages
node_researchclaw_pipeline_runner -->|"dispatches"| node_researchclaw_pipeline_stage_impls
node_researchclaw_pipeline_runner -->|"uses"| node_researchclaw_pipeline_contracts
node_researchclaw_pipeline_stage_impls -->|"queries"| node_researchclaw_literature
node_researchclaw_pipeline_stage_impls -->|"searches"| node_researchclaw_web
node_researchclaw_pipeline_stage_impls -->|"writes"| node_researchclaw_knowledge
node_researchclaw_pipeline_stage_impls -->|"selects topics"| node_researchclaw_trends
node_researchclaw_pipeline_stage_impls -->|"executes"| node_researchclaw_experiment
node_researchclaw_experiment -->|"routes through"| node_researchclaw_domains_adapters
node_researchclaw_pipeline_stage_impls -->|"invokes"| node_researchclaw_agents
node_researchclaw_agents -->|"calls"| node_researchclaw_llm
node_researchclaw_pipeline_stage_impls -->|"formats"| node_researchclaw_prompts
node_researchclaw_hitl -->|"intercepts"| node_researchclaw_pipeline_runner
node_researchclaw_hitl -->|"exposes"| node_researchclaw_hitl_adapters
node_researchclaw_hitl -->|"guards"| node_researchclaw_pipeline_verified_registry
node_researchclaw_pipeline_repair -->|"feeds"| node_researchclaw_pipeline_diagnosis
node_researchclaw_pipeline_verifier -->|"records"| node_researchclaw_pipeline_verified_registry
node_researchclaw_pipeline_stage_impls -->|"verifies"| node_researchclaw_pipeline_verifier
node_researchclaw_memory -->|"informs"| node_researchclaw_pipeline_runner
node_researchclaw_collaboration -->|"shares"| node_researchclaw_hitl
node_researchclaw_pipeline_stage_impls -->|"exports"| node_researchclaw_report
node_researchclaw_report -->|"renders"| node_researchclaw_templates
node_researchclaw_report -->|"syncs"| node_researchclaw_overleaf
node_researchclaw_cli -->|"starts"| node_researchclaw_pipeline_runner
node_researchclaw_server -->|"hosts"| node_researchclaw_pipeline_runner
node_researchclaw_dashboard -->|"subscribes"| node_researchclaw_server
node_researchclaw_copilot -->|"guides"| node_researchclaw_pipeline_runner
node_researchclaw_voice -->|"fronts"| node_researchclaw_server
node_arc_bench -->|"evaluates"| node_researchclaw_pipeline_runner
node_builtin_skills -->|"injects"| node_researchclaw_prompts
node_builtin_skills -->|"guides"| node_researchclaw_agents
node_external_agents -->|"extends"| node_researchclaw_domains_adapters
node_external_agents -->|"connects"| node_researchclaw_llm

click node_researchclaw_pipeline_runner "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/runner.py"
click node_researchclaw_pipeline_stages "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/stages.py"
click node_researchclaw_pipeline_stage_impls "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/stage_impls/__init__.py"
click node_researchclaw_pipeline_contracts "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/contracts.py"
click node_researchclaw_pipeline_verified_registry "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/verified_registry.py"
click node_researchclaw_pipeline_repair "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/experiment_repair.py"
click node_researchclaw_pipeline_diagnosis "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/experiment_diagnosis.py"
click node_researchclaw_pipeline_verifier "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/paper_verifier.py"
click node_researchclaw_hitl "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/hitl/__init__.py"
click node_researchclaw_hitl_adapters "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/hitl/adapters/__init__.py"
click node_researchclaw_literature "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/literature/__init__.py"
click node_researchclaw_web "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/web/__init__.py"
click node_researchclaw_knowledge "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/knowledge/__init__.py"
click node_researchclaw_trends "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/trends/__init__.py"
click node_researchclaw_experiment "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/experiment/__init__.py"
click node_researchclaw_domains_adapters "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/domains/adapters/__init__.py"
click node_researchclaw_llm "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/llm/__init__.py"
click node_researchclaw_prompts "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/prompts/__init__.py"
click node_researchclaw_agents "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/agents/__init__.py"
click node_researchclaw_collaboration "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/collaboration/__init__.py"
click node_researchclaw_memory "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/memory/__init__.py"
click node_researchclaw_report "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/report.py"
click node_researchclaw_templates "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/templates/__init__.py"
click node_researchclaw_overleaf "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/overleaf/__init__.py"
click node_researchclaw_cli "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/cli.py"
click node_researchclaw_server "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/server/app.py"
click node_researchclaw_dashboard "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/dashboard/__init__.py"
click node_researchclaw_copilot "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/copilot/__init__.py"
click node_researchclaw_voice "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/voice/__init__.py"
click node_arc_bench "https://github.com/aiming-lab/autoresearchclaw/blob/main/experiments/arc_bench/README.md"
click node_builtin_skills "https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/skills/registry.py"
click node_external_agents "https://github.com/aiming-lab/autoresearchclaw/blob/main/external/agents/README.md"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_researchclaw_pipeline_runner,node_researchclaw_pipeline_stages,node_researchclaw_pipeline_stage_impls,node_researchclaw_pipeline_contracts,node_arc_bench,node_builtin_skills,node_external_agents toneBlue
class node_researchclaw_literature,node_researchclaw_web,node_researchclaw_knowledge,node_researchclaw_trends toneAmber
class node_researchclaw_experiment,node_researchclaw_domains_adapters,node_researchclaw_llm,node_researchclaw_prompts,node_researchclaw_agents toneMint
class node_researchclaw_pipeline_verified_registry,node_researchclaw_pipeline_repair,node_researchclaw_pipeline_diagnosis,node_researchclaw_pipeline_verifier,node_researchclaw_hitl,node_researchclaw_hitl_adapters toneRose
class node_researchclaw_cli,node_researchclaw_server,node_researchclaw_dashboard,node_researchclaw_copilot,node_researchclaw_voice toneIndigo
class node_researchclaw_collaboration,node_researchclaw_memory,node_researchclaw_report,node_researchclaw_templates,node_researchclaw_overleaf toneTeal
```

## Components

### Core pipeline

Primary research-to-paper orchestration backbone.

- [Pipeline runner](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/runner.py): orchestrator · Main workflow entry and stage sequencing for research runs. · `researchclaw/pipeline/runner.py`
- [Stages](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/stages.py): workflow schema · Defines the staged research lifecycle and stage boundaries. · `researchclaw/pipeline/stages.py`
- [Stage impls](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/stage_impls/__init__.py): stage handlers · Implementation modules for topic, literature, synthesis, execution, analysis, writing, and review stages. · `researchclaw/pipeline/stage_impls/__init__.py`
- [Contracts](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/contracts.py): pipeline contracts · Shared data contracts and interfaces used across pipeline stages. · `researchclaw/pipeline/contracts.py`

### Research intelligence

Literature, web, knowledge, and trend subsystems that feed topic selection and synthesis.

- [Literature](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/literature/__init__.py): discovery layer · ArXiv, OpenAlex, Semantic Scholar, novelty, trends, and verification. · `researchclaw/literature/__init__.py`
- [Web](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/web/__init__.py): crawl/search · Crawler, search, PDF extraction, and scholar access for web-backed discovery. · `researchclaw/web/__init__.py`
- [Knowledge graph](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/knowledge/__init__.py): research memory · Entities, relations, query, and visualized research memory. · `researchclaw/knowledge/__init__.py`
- [Trends](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/trends/__init__.py): topic mining · Feeds, opportunity finding, and daily digests for topic selection. · `researchclaw/trends/__init__.py`

### Execution and agents

Experiment backends, agent builders, and domain-specific runtime boundaries.

- [Experiment runtime](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/experiment/__init__.py): sandbox runtime · Sandbox factories, runners, validators, and backend execution environments. · `researchclaw/experiment/__init__.py`
- [Domain adapters](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/domains/adapters/__init__.py): domain boundary · Field-specific execution paths for biology, chemistry, physics, ML, statistics, and related domains. · `researchclaw/domains/adapters/__init__.py`
- [LLM layer](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/llm/__init__.py): model access · Provider abstraction for model calls, ACP compatibility, and agent backends. · `researchclaw/llm/__init__.py`
- [Prompts](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/prompts/__init__.py): prompting · Domain-aware prompt selection and assembly. · `researchclaw/prompts/__init__.py`
- [Agents](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/agents/__init__.py): agent tools · Code search, benchmark selection, and figure generation agents used by the pipeline. · `researchclaw/agents/__init__.py`

### Validation and HITL

Human-in-the-loop controls, claim checks, and repair/verification guardrails.

- [Verified registry](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/verified_registry.py): evidence registry · Tracks evidence-backed artifacts and trusted outputs. · `researchclaw/pipeline/verified_registry.py`
- [Repair](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/experiment_repair.py): failure recovery · Diagnoses broken experiments and attempts automated repair. · `researchclaw/pipeline/experiment_repair.py`
- [Diagnosis](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/experiment_diagnosis.py): failure analysis · Detects experiment failures and classifies remediation needs. · `researchclaw/pipeline/experiment_diagnosis.py`
- [Paper verifier](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/pipeline/paper_verifier.py): claim verification · Checks paper outputs, citations, and evidence consistency. · `researchclaw/pipeline/paper_verifier.py`
- [HITL](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/hitl/__init__.py): human-in-loop · Interactive approval, branching, pausing, and collaboration overlay on pipeline stages. · `researchclaw/hitl/__init__.py`
- [HITL adapters](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/hitl/adapters/__init__.py): interaction adapters · CLI, WebSocket, MCP, and scripted interfaces for human intervention. · `researchclaw/hitl/adapters/__init__.py`

### Surfaces and services

CLI, server, dashboard, voice, and copilot entry points.

- [CLI](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/cli.py): entry point · Command-line interface for running the system. · `researchclaw/cli.py`
- [Server](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/server/app.py): http api · HTTP routes, chat, pipeline, projects, voice, and websocket management. · `researchclaw/server/app.py`
- [Dashboard](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/dashboard/__init__.py): monitoring · Metrics, collection, and progress broadcasting for live runs. · `researchclaw/dashboard/__init__.py`
- [Copilot](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/copilot/__init__.py): interactive control · Branching, feedback, and mode control for guided operation. · `researchclaw/copilot/__init__.py`
- [Voice](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/voice/__init__.py): speech interface · Voice command and transcription interface for interaction. · `researchclaw/voice/__init__.py`

### Output and memory

Reporting, templates, long-term memory, and collaboration persistence.

- [Collaboration](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/collaboration/__init__.py): shared state · Cross-run sharing, publish/subscribe, and deduplication support. · `researchclaw/collaboration/__init__.py`
- [Memory](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/memory/__init__.py): long-term memory · Embedding-backed memory, retrieval, and decay for prior runs and writing. · `researchclaw/memory/__init__.py`
- [Report](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/report.py): export · Final reporting and artifact assembly for paper outputs. · `researchclaw/report.py`
- [Templates](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/templates/__init__.py): paper templates · Conference and results-table templates for publication handoff. · `researchclaw/templates/__init__.py`
- [Overleaf](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/overleaf/__init__.py): latex sync · Formatting, sync, and conflict handling for LaTeX workflows. · `researchclaw/overleaf/__init__.py`

### Benchmarks and external

Embedded benchmark harnesses, skills, and external agent bridges.

- [ARC bench](https://github.com/aiming-lab/autoresearchclaw/blob/main/experiments/arc_bench/README.md): evaluation suite · Embedded benchmark harness for comparative evaluation and reproducibility. · `experiments/arc_bench/README.md`
- [Builtin skills](https://github.com/aiming-lab/autoresearchclaw/blob/main/researchclaw/skills/registry.py): skill library · Packaged domain, experiment, and tooling skills injected into agents and prompts. · `researchclaw/skills/registry.py`
- [External agents](https://github.com/aiming-lab/autoresearchclaw/blob/main/external/agents/README.md): bridges · Optional bridges to domain agent ecosystems such as biology, collider, and statistical research agents. · `external/agents/README.md`

## Connections

- Pipeline runner → Stages: drives · Runs the staged research workflow.
- Pipeline runner → Stage impls: dispatches · Calls stage-specific implementations.
- Pipeline runner → Contracts: uses · Shares typed data contracts across stages.
- Stage impls → Literature: queries · Discovery and novelty stages pull literature intelligence.
- Stage impls → Web: searches · Web-backed retrieval and PDF extraction support discovery.
- Stage impls → Knowledge graph: writes · Extracts entities and relations into research memory.
- Stage impls → Trends: selects topics · Topic and opportunity stages use trend signals.
- Stage impls → Experiment runtime: executes · Experiment design and execution stages launch sandboxes and runners.
- Experiment runtime → Domain adapters: routes through · Domain adapters choose runtime and toolchain boundaries.
- Stage impls → Agents: invokes · Code search, benchmarks, and figure generation support experiments and writing.
- Agents → LLM layer: calls · Agents use model backends for reasoning and generation.
- Stage impls → Prompts: formats · Stages assemble domain-aware prompts.
- HITL → Pipeline runner: intercepts · Human approvals and pauses overlay selected pipeline stages.
- HITL → HITL adapters: exposes · Interaction surfaces for CLI, WS, MCP, and scripted control.
- HITL → Verified registry: guards · Checks evidence and trust before advancing.
- Repair → Diagnosis: feeds · Diagnosis drives repair decisions.
- Paper verifier → Verified registry: records · Only validated outputs become trusted artifacts.
- Stage impls → Paper verifier: verifies · Writing and finalization stages are checked before export.
- Memory → Pipeline runner: informs · Prior runs influence future orchestration and writing.
- Collaboration → HITL: shares · Cross-run collaboration and feedback flow into HITL.
- Stage impls → Report: exports · Finalization hands artifacts to reporting.
- Report → Templates: renders · Uses publication templates for paper output.
- Report → Overleaf: syncs · Supports LaTeX handoff and Overleaf workflows.
- CLI → Pipeline runner: starts · CLI is the primary local entry point.
- Server → Pipeline runner: hosts · HTTP API and websocket services wrap pipeline execution.
- Dashboard → Server: subscribes · Monitoring data is pushed through live services.
- Copilot → Pipeline runner: guides · Copilot provides branching and guided operation.
- Voice → Server: fronts · Voice is exposed through server-side interaction.
- ARC bench → Pipeline runner: evaluates · Benchmark runs exercise the same core pipeline.
- Builtin skills → Prompts: injects · Skills feed prompting and agent behavior.
- Builtin skills → Agents: guides · Packaged skills shape agent specialization.
- External agents → Domain adapters: extends · Optional external agent ecosystems augment domain execution.
- External agents → LLM layer: connects · External agents may be reached through model-compatible paths.
