![]() |
![]() |
Table of contents
ResearchTools is an AI-assisted toolbox for researcher-professors and graduate students. It finds and fixes what's wrong before a reviewer, a thesis committee, or a grant panel does:
- Literature reviews, paper and thesis audits, BibTeX cleanup, reviewer responses, submission packages: the academic writing side.
- Code, PCB, and 3D CAD design review, with a dashboard to watch the agents work, and log them.
- A local-model-backed dev loop that keeps the heavy generation off your cloud bill.
Full pitch, the 2026 roadmap, and this manual's own conventions: docs/manual/00-purpose.md.
Never let an LLM do your work for you. Use it to improve your work, find your weaknesses, and help you improve yourself. Never use these tools to conduct a formal or professional assessment, and do not let the tool make decisions for you. Use at your own risk.
This file is the entry point only. The manual is split into chapters under docs/manual/,
the same way Architecture.md is already split into layers instead of kept
as one flat file — this keeps each topic at a readable size instead of one 1300-line page.
| Without | With ResearchTools |
|---|---|
| Catch a missing reference or a broken hypothesis flow after the reviewer does | An auditor scores the manuscript first, against the same ScholarEval rubric a committee uses |
| Re-read a cited paper's abstract/contribution/futureworks/statistics and hope the citation says what you think it says | extract-contributions checks the citing sentence against the paper's own stated contribution |
| Receive a thesis, an article or a talk as a PDF with no LaTeX source and re-type it before it can be audited | pdf2md converts it with mineru to markdown (the UQAC thesis layout, or one document for an article or a talk) and measures what the conversion lost against a second reader of the PDF |
| Burn cloud tokens on routine docstrings and refactors | local-writer / local-coder push that generation to a local model, for free |
Know whether a coding task should run on the cloud, through local-coder, through aider, or on a switched session |
A plan header names executor, tier and the review bounds, plan_contract.py checks it, two hooks enforce it, and the process has a flowchart (chapter 11) |
| Guess which local model fits your GPU | opt-local-vram-llm tunes the LLM's context window for the card, and opt-local-stt-vram scores speech-to-text models beside that LLM (word error, live-caption speed, VRAM) in one table |
| Catch a committed secret but not a committed real name (a student, a co-author, an account path) | A global git privacy guard (pre-commit/pre-push, every repository) scans the diff against both betterleaks' secret rules and a machine-local deny list of real names, extended for each new student and never leaving the machine |
Not a replacement for judgment — a second pair of eyes that never gets tired of checking.
The rt-observe dashboard watching a live session: hook flow, fan-out to the two memories
(Obsidian vault, graphify graph), and a spawned subagent, all on loopback with no external
service. A push-to-talk voice panel (hold P) lets you ask it a question about this toolkit's
own memory out loud, answered by the local LLM through the vault daemon's ask queue and spoken
back in two parts: the vault answer first, then a code-structure note from the matched
project's own graphify graph when its vault folder names a repo:. Full walkthrough:
docs/manual/10-rt-observe-dashboard.md.
git clone https://github.com/LARi-UQAC/ResearchTools.git
cd ResearchTools
.\setup.ps1 -All -Personal # config + Claude links + all tool mirrors
.\setup.ps1 -InstallPython # optional: .venv-skills, .venv-docs and .venv-pdf2md (in the main clone)
.\setup.ps1 -Update # update an existing installation in one command (try -Update -Preview first); see manual chapter 01Full install steps (junctions, other-tool mirrors, prerequisites table): docs/manual/01-installation.md.
Two memories back this toolkit, and neither is read or written directly: the Obsidian vault
(what was learned, across every project) and the graphify code graph in graphify-out/
(what this repository's code IS right now). Both are reached only by dispatching the
local-writer agent. The graph's own state is read-only via
scripts/audit/check-graph-health.ps1. Full design:
docs/manual/06-skills.md.
At a glance — commands drive agents, agents draw on skills, and both memories are reached
only through local-writer (detail: 06-skills.md):
graph LR
U["You"] -->|"/command"| CC["Your Harness"]
CC --> AG["Agents"]
AG --> SK["Skills"]
SK --> EXT[("Scopus / Gemini /<br/>Copilot APIs, etc.")]
AG -->|"dispatch local-writer"| VAULT[("Obsidian vault<br/>what was learned")]
AG -->|"dispatch local-writer"| GRAPH[("graphify graph<br/>what the code is")]
| # | Chapter | Covers |
|---|---|---|
| 00 | Purpose & overview | Mission, 2026 roadmap, manual conventions |
| 01 | Installation | setup.ps1 / install.ps1 / install-junctions.ps1, prerequisites, the install steps, updating a machine |
| 02 | Profiles & environment | Domain profiles, API keys, and every Python library of .venv-skills, .venv-docs and .venv-pdf2md (generated tables) |
| 03 | Token management | Output modes, /slim /concis /focus /ctx, switching the session identity |
| 04 | Commands | All slash commands |
| 05 | Agents | All agents, local delegation, loop engineering |
| 06 | Skills | All 25 skills, the two memories |
| 07 | Hooks and guards | Every hook the toolkit declares: guards before a tool call, scanners, session hooks, git hooks |
| 08 | Rules and conventions | The rules R0 to R38 and the five files that hold them |
| 09 | Harnesses and mirrors | Claude Code, Copilot, OpenCode, Continue, Aider and Codex: what each receives, mirror-policy.json, session adapters |
| 10 | rt-observe & dashboard | Mirror matrix, /rt-dashboard, the voice panel |
| 11 | Local coding and the cloud | Which executor runs a coding task (cloud, local-coder, aider, a switched session), the plan header, review bounds, size ceilings, the flowchart |
| 12 | PCB design, mixed signals | Placeholder, to be written |
| 13 | 3D CAD design, CNC, 3D printing | Placeholder, to be written |
| 14 | Aider nightly pipeline | aider-setup, the student aider-kit.zip, vs. local-coder |
| 15 | Security audit and guards | SkillSpector scan of all 25 skills, the global git privacy guard (deny list of real names + secret rules, every repo), the optional billed pull-request review workflow |
| 16 | Maintenance, checks and CI | The green stamp, run-all-checks, finish-branch, the verifiers, the workflows, publishing this site |
| 17 | ThesisTracker integration | The sibling repository, NEW_ARCHITECTURE.md, the form-service boundary |
| 18 | File locations | Directory tree summary, machine-local files |
Relationship diagrams and the 7-layer execution architecture for this repository: Architecture.md. The architecture shared with the sibling repository ThesisTracker (form catalogue, twenty-two-unit delivery plan) is a separate file, NEW_ARCHITECTURE.md — see chapter 17 above; do not confuse the two.
One canonical .claude/ source, mirrored everywhere below (detail:
05-agents.md):
ResearchTools is source-available under PolyForm Noncommercial 1.0.0: free to use, copy, and modify for any noncommercial purpose, including academic and research use. It is not an OSI-approved "open source" licence (OSI requires permitting commercial use), so it is described here as source-available rather than open source.
Commercial use — any use intended for or directed toward commercial advantage or monetary compensation — needs a separate written licensing agreement with the copyright holder before use begins. Contact martin_otis@uqac.ca to discuss terms.
v0.1.0 and earlier were released under the MIT License; that release is unaffected and keeps its original terms. The cut-over to PolyForm Noncommercial took effect in the commit that introduced this LICENSE file.
If this toolkit is useful to you, a star helps others find it. Ask for my book (French version): Vibe Design. 30$ contribution via:


