research-project-orienter
Quickly orient an AI assistant inside a research workspace without
scanning the whole repository. Reads the .research/ manifest files
written by research-context-compressor and produces a single
in-conversation orientation memo.
Part of the research-hub skill pack; works alongside Zotero, Obsidian, and NotebookLM workflows but does not require any of them.
This skill is fast and read-only. If .research/ doesn't exist yet,
defer to research-context-compressor first.
When to use
Trigger phrases:
- "Understand this research project before helping me."
- "Summarize this repo's research question, data, experiments, and outputs."
- "Build a context map for this paper/project."
- "Orient me in this codebase."
- "What is this repo about?"
Not for:
- Detailed code review — that's a code task.
- Generating new manifests — use
research-context-compressorfirst. - Literature review — use
literature-triage-matrix.
Inputs
Read in this order:
.research/project_manifest.yml— top-level orientation. Required..research/experiment_matrix.yml— experiment status. Read if present..research/data_dictionary.yml— datasets. Read if present..research/decisions.md— recent ADRs. Read last 5 if present..research/open_questions.md— known unknowns. Read all..research/run_log.md— last 3 entries for context.
Do not read source code, data files, or PDFs unless the manifest points you at a specific path AND the user's question requires it.
What if .research/ doesn't exist?
Tell the user:
This project doesn't have a
.research/manifest yet. I can create one first (loadsresearch-context-compressorskill, takes ~30 seconds and writes 3 small YAML files), or I can fall back to scanning the repo directly (slower, more tokens). Which?
Don't auto-fall-back — ask first. If they pick "scan", read README.md +
docs/ + the top-level entrypoint, and produce the memo from that, but
caveat: "this orientation came from a one-shot scan; for more reliable
future sessions, run research-context-compressor once."
Output: orientation memo
Single message in this exact structure:
## Project orientation: <project_name>
**Research question**: <one sentence from manifest>
**Stage**: <current_stage> · **Last updated**: <last_updated>
**Datasets** (<count>):
- `<name|id>`: <purpose|description; "(no description)" if both absent>
- ...
**Experiments** (<count>, by status):
- <status>: <id> — <hypothesis or method, one line; "(no hypothesis)" if both absent>
- ...
**Entrypoints**:
- `<path>` — <one-line purpose> # if list form (`main_entrypoints`)
- `<key>: <path>` # if object form (`entrypoints` map)
- ...
**Recent decisions** (<count>):
- <date>: <decision title>
**Open questions** (<count>):
- <question text>
- ...
**Evidence artifacts**:
- `<path>` — supports claim/figure
- ...
**Suggested next action**: <based on current_stage>
Length budget: ~200-400 tokens for typical project. Don't pad.
Token-saving behavior
- The whole point of this skill is to save tokens. If you find yourself
reading > 5 files outside
.research/, stop and tell the user the manifest is incomplete — they should refresh withresearch-context-compressor. - Cache-friendly: the orientation memo is identical between sessions if the manifests don't change. Future sessions can paste it back as context.
What NOT to do
- Don't summarize the manuscript —
paper-memory-builderdoes that. - Don't compare papers —
literature-triage-matrixdoes that. - Don't propose code changes — that's a separate task.
- Don't invent missing fields. If
research_questionis empty in the manifest, say "no research question recorded; please add one to .research/project_manifest.yml" rather than guessing. - Don't read PDFs in
data/oroutputs/unless directly asked.
微信扫一扫