Skip to content

HawHello/AgenticResearchWiki

Repository files navigation

English | 简体中文

Agentic Research Wiki

An Agent-native project wiki for AI research / long-horizon projects.

A forkable Markdown wiki skeleton + CLAUDE.md that lets your Agent know your project as well as you do.

✨ One-sentence prompt, and the Agent is off

"Process the st3 data into gop, run 8-GPU parallel, create the matching launch script, docs and records."

—— What's the project background? What are st3 and gop? Where do the previous launch scripts live? Where should the docs go?

No need to re-declare context in every prompt — the Agent knows this project as well as you do!

One-sentence prompt example

We built a wiki framework for research projects, plus a CLAUDE.md / AGENTS.md that tells the Agent how to read it — readable by both humans and Agents.

Given a prompt, the Agent reads CLAUDE.md, enters through Overview.md, finds the matching Data / Training / Eval Overview, assembles paths, configs and naming conventions, then writes scripts, launches jobs, and writes records back to the corresponding docs.

✨ Auto write-back once a task completes:

Write-back example after task completion

🎯 The pain points this solves

When you're using Claude Code / Codex-style Agents to modify code or kick off training:

  1. To make the Agent do one thing, you first spend several minutes writing a long prompt, pasting context piece by piece —— what the project is about, where the data is, which previous training script to reference, the naming rules, which directory the config files live in…… The actual instruction is short. Writing all of that is exhausting, and easy to miss pieces.
  2. Data / training / eval are usually scattered across different repos, checkpoints live somewhere on the cluster, and the Agent has no single entry point to find them.
  3. Running multiple Agents in parallel on the same project gets messy fast: your brain context-switches between tasks and the error rate spikes.
  4. Come back a few weeks later and you can't remember how run-7 and run-9 differ —— never mind expecting the Agent to remember.

The root cause is the same: the Agent has no persistent project context — every conversation starts from zero.

💡 The solution

Build one Obsidian wiki repo per research project, plus a CLAUDE.md / AGENTS.md telling the Agent how to read it:

  • Docs are linked with wiki-style [[ ]] links, with Overview.md as the single entry point.
  • Each doc is length-bounded; the Agent does progressive disclosure — read on demand, instead of drowning in the whole project up front.
  • After the Agent finishes a task, it writes back data batches, training records, and eval results into the corresponding docs, so next time it doesn't need to be explained again.

Below is an actual screenshot of this repo's Obsidian Graph View (filenames redacted). Overview sits at the center, radiating out via [[ ]] links into Data / Training / Eval and other partitions — forming a real document graph that the Agent walks from the single entry point and drills into any sub-task on demand.

Document graph centered on Overview (Obsidian Graph View)

📁 Repository layout

This repo is itself an abstract skeleton you can clone and rewrite for your own project:

Overview.md               # Single entry: background, goals, methods, task navigation
CLAUDE.md / AGENTS.md     # Agent read/write conventions (Claude Code / Codex / ...)
Storyline/                # Long-form narrative split from Overview: Introduction / RelatedWork / Target
Data/                     # Data tasks (DataOverview + Records/)
Training/                 # Training tasks (TrainingOverview + Records/)
Eval/                     # Eval tasks (EvalOverview + Records/)
ExperimentalTracks/       # Unconverged side tracks (includes abandoned/ archive)
ResearchNotes/            # Background research, comparisons, decision rationale (read on demand)
Shared/                   # Cross-task technical notes (env, cluster, general tools, ...)
skills/                   # Bundled Skills (import-notes, project-doc-update)
zh-CN/                    # Full Chinese mirror of the wiki above

This is a generic framework that fits most AI research projects and can be lightly tailored to your own.

🌐 Language versions

  • English (default, at the repo root): README.md, Overview.md, CLAUDE.md, AGENTS.md, Data/, Training/, Eval/, ...
  • Simplified Chinese (full mirror): README.zh-CN.md at the root, and the full wiki mirror under zh-CN/ (zh-CN/Overview.md, zh-CN/CLAUDE.md, zh-CN/Data/, zh-CN/Training/, zh-CN/Eval/, ...).

If you fork this repo and only work in one language, you can delete the other version.

🚀 Quick start

  1. Fork / clone this repo
  2. Open it in your Markdown editor of choice (Obsidian recommended — see "Editor choices" below)
  3. Rewrite Overview.md and the Overviews under Data/ / Training/ / Eval/ for your project
  4. Point your Agent at CLAUDE.md / AGENTS.md in this repo
  5. Start using one-sentence prompts

Editor choices

Obsidian is not a hard dependency. All docs here are plain Markdown; [[ ]] is just a wiki-style link syntax that many tools parse:

  • Obsidian (recommended): native [[ ]], backlinks, graph view
  • VSCode with Foam or Markdown Links
  • Logseq / Dendron / SiYuan or any other [[ ]]-aware notes tool
  • Plain text editors: the Agent treats [[ ]] as plain-text search anyway, so vim / nano works too

🛠️ Bundled skills

This repo ships two ready-to-use skills under skills/:

import-notes: import existing notes

If you already have an in-flight research project, you likely have a pile of notes sitting in another notes app. This skill lets the Agent classify and file your existing notes into the right directories according to this repo's current rules, and update the indexes accordingly.

Two input modes are supported:

  • Folder: give a directory path; the Agent walks it and reads anything it can parse (.md / .txt / .pdf / .docx / web clippings…)
  • Inline prompt: paste the note content directly into the conversation

Usage: trigger /import-notes (or just tell the Agent "import these notes" / "integrate this batch"). The Agent first proposes a migration plan; you confirm, then it writes. Add "batch mode" to skip per-item confirmation. You can import in multiple passes — just rerun it when new batches arrive.

project-doc-update: maintain docs by the rules

When the Agent adds, modifies, or reorganizes project docs, it needs to follow this repo's doc-organization rules (which directory, how to name, how to link, how to archive). This skill centralizes those rules and auto-triggers whenever the Agent touches docs, keeping the wiki structure consistent.

Usage: generally no explicit invocation needed. When you ask the Agent to touch project docs (e.g. "write this eval result into the eval records" / "tidy up the stale tracks under ExperimentalTracks"), it'll apply this automatically. If you want it to forcibly sweep over the docs, say "clean up the docs following project-doc-update".

Installation (Claude Code example)

Drop all skills under skills/ into Claude Code's skills directory in one go.

User level (globally available):

mkdir -p ~/.claude/skills
cp -r skills/* ~/.claude/skills/

Project level (scoped to this repo):

mkdir -p .claude/skills
cp -r skills/* .claude/skills/

Other Agent tools that follow the SKILL.md convention (Codex, etc.) are the same — drop skills/ contents into its skills search path, or reference the SKILL.md files directly in the prompt.

❓ FAQ

Why not just write one CLAUDE.md / .cursorrules?

A single-file rule (CLAUDE.md / AGENTS.md / .cursorrules) is enough for small projects, but after a research project has been running for a while you hit three problems:

  1. Context blowup: data, training, eval, experimental tracks, research notes all crammed into one file doesn't fit in the Agent's context.
  2. No progressive disclosure: the Agent can't read only the slice relevant to the current task type. Training tasks don't need data-processing details; eval tasks don't need abandoned experimental tracks.
  3. No write-back loop: a single-file rule is a read-only "instruction", not a "project memory" the Agent can maintain incrementally.

This repo's approach: treat CLAUDE.md / AGENTS.md as Agent "navigation instructions" (where to enter, how to read, how to write), and move the actual project context into an Obsidian wiki that the Agent reads on demand and continuously writes back to.

How should the directories be organized?

The recommended multi-repo layout (also what Overview.md assumes):

{{project root}}/
├── ResearchProjectWiki/         # Docs repo (fork of this), Agent cwd defaults here
│   ├── CLAUDE.md / AGENTS.md
│   ├── Overview.md
│   ├── {{data-pipeline repo}}   # → symlinked from {{code root}}/{{data-pipeline repo}}
│   ├── {{training repo}}        # → symlinked from {{code root}}/{{training repo}}
│   └── {{eval repo}}            # → symlinked from {{code root}}/{{eval repo}}
├── {{code root}}/
│   ├── {{data-pipeline repo}}/
│   │   └── datasets/            # → symlinked from {{data root}}/processed/
│   ├── {{training repo}}/
│   │   └── outputs/             # → symlinked from {{output root}}/
│   └── {{eval repo}}/
├── {{data root}}/                   # raw data + processed artifacts
└── {{output root}}/                 # checkpoints / logs / eval results

When starting the Agent, cd into the docs repo root (ResearchProjectWiki/). CLAUDE.md will be auto-loaded by Claude Code; the Agent enters from Overview.md and walks through the symlinks to reach every code repo, dataset and output path. You don't need to bounce the Agent between code repos.

How do non-Claude-Code Agents hook in?

The wiki structure and skills here are plain Markdown, decoupled from any specific Agent tool. Mapping:

Agent tool Where to put the rules file Where to put skills / custom instructions
Claude Code Auto-reads CLAUDE.md (project root) ~/.claude/skills/ or .claude/skills/
Codex CLI Auto-reads AGENTS.md (project root) ~/.agents/skills/ or .agents/skills/
Cursor .cursor/rules/*.mdc or .cursorrules @-reference SKILL.md from the rules
Others Point to CLAUDE.md / AGENTS.md as system prompt Tell the Agent the skills/ path

For tools without a native skill mechanism, the simplest fix is to add a line to their rules file: "When maintaining docs, follow the rules in skills/project-doc-update/SKILL.md".

📄 License

MIT License — fork, modify, and use commercially at will.

About

An Agent-native Obsidian wiki + CLAUDE.md skeleton that lets Agent know your project as well as you do.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages