ai-research-toolkit 1.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ai_research_toolkit-1.1.0/LICENSE +29 -0
- ai_research_toolkit-1.1.0/PKG-INFO +237 -0
- ai_research_toolkit-1.1.0/README.md +206 -0
- ai_research_toolkit-1.1.0/ai_research_toolkit.egg-info/PKG-INFO +237 -0
- ai_research_toolkit-1.1.0/ai_research_toolkit.egg-info/SOURCES.txt +30 -0
- ai_research_toolkit-1.1.0/ai_research_toolkit.egg-info/dependency_links.txt +1 -0
- ai_research_toolkit-1.1.0/ai_research_toolkit.egg-info/entry_points.txt +2 -0
- ai_research_toolkit-1.1.0/ai_research_toolkit.egg-info/requires.txt +13 -0
- ai_research_toolkit-1.1.0/ai_research_toolkit.egg-info/top_level.txt +1 -0
- ai_research_toolkit-1.1.0/pyproject.toml +60 -0
- ai_research_toolkit-1.1.0/research_toolkit/__init__.py +22 -0
- ai_research_toolkit-1.1.0/research_toolkit/__main__.py +4 -0
- ai_research_toolkit-1.1.0/research_toolkit/cli.py +565 -0
- ai_research_toolkit-1.1.0/research_toolkit/documents.py +95 -0
- ai_research_toolkit-1.1.0/research_toolkit/evidence_store.py +46 -0
- ai_research_toolkit-1.1.0/research_toolkit/exporters.py +161 -0
- ai_research_toolkit-1.1.0/research_toolkit/orchestrator.py +304 -0
- ai_research_toolkit-1.1.0/research_toolkit/paths.py +49 -0
- ai_research_toolkit-1.1.0/research_toolkit/pipelines.py +697 -0
- ai_research_toolkit-1.1.0/research_toolkit/progress.py +119 -0
- ai_research_toolkit-1.1.0/research_toolkit/project_manager.py +214 -0
- ai_research_toolkit-1.1.0/research_toolkit/providers/__init__.py +43 -0
- ai_research_toolkit-1.1.0/research_toolkit/providers/base.py +88 -0
- ai_research_toolkit-1.1.0/research_toolkit/providers/crossref.py +80 -0
- ai_research_toolkit-1.1.0/research_toolkit/providers/openalex.py +82 -0
- ai_research_toolkit-1.1.0/research_toolkit/providers/semantic_scholar.py +68 -0
- ai_research_toolkit-1.1.0/research_toolkit/schemas.py +324 -0
- ai_research_toolkit-1.1.0/research_toolkit/skill_contracts.py +65 -0
- ai_research_toolkit-1.1.0/research_toolkit/source_registry.py +253 -0
- ai_research_toolkit-1.1.0/research_toolkit/validation.py +141 -0
- ai_research_toolkit-1.1.0/research_toolkit/workflow_state.py +252 -0
- ai_research_toolkit-1.1.0/setup.cfg +4 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 AI Research Toolkit contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
Upstream asset audit (2026-11-07): this repository contains no copied third-party
|
|
25
|
+
code or assets. Runtime dependencies are used under their own licenses
|
|
26
|
+
(pydantic MIT, PyYAML MIT, httpx BSD-3, pandas BSD-3, openpyxl MIT,
|
|
27
|
+
python-docx MIT, PyMuPDF AGPL-3.0 / commercial, jinja2 BSD-3, pytest MIT).
|
|
28
|
+
NOTE: PyMuPDF is AGPL-licensed. If you redistribute a closed-source product
|
|
29
|
+
built on this toolkit, review the PyMuPDF licence or swap the PDF backend.
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ai-research-toolkit
|
|
3
|
+
Version: 1.1.0
|
|
4
|
+
Summary: Local-first, skill-based research workflow toolkit for Claude Code and OpenAI Codex (10 Agent Skills + deterministic Python engine).
|
|
5
|
+
Author: Mrkomiljon
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/Mrkomiljon/AI-Research-Toolkit
|
|
8
|
+
Project-URL: Issues, https://github.com/Mrkomiljon/AI-Research-Toolkit/issues
|
|
9
|
+
Keywords: research,agent-skills,claude-code,codex,literature-review
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Topic :: Scientific/Engineering
|
|
15
|
+
Requires-Python: >=3.11
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Requires-Dist: pydantic<3,>=2.7
|
|
19
|
+
Requires-Dist: PyYAML<7,>=6.0
|
|
20
|
+
Requires-Dist: httpx<1,>=0.27
|
|
21
|
+
Requires-Dist: pandas<3,>=2.2
|
|
22
|
+
Requires-Dist: openpyxl<4,>=3.1
|
|
23
|
+
Requires-Dist: python-docx<2,>=1.1
|
|
24
|
+
Requires-Dist: pymupdf>=1.24
|
|
25
|
+
Requires-Dist: jinja2<4,>=3.1
|
|
26
|
+
Provides-Extra: dev
|
|
27
|
+
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
28
|
+
Requires-Dist: pytest-cov>=5.0; extra == "dev"
|
|
29
|
+
Requires-Dist: ruff>=0.5; extra == "dev"
|
|
30
|
+
Dynamic: license-file
|
|
31
|
+
|
|
32
|
+
# AI Research Toolkit (v1.1)
|
|
33
|
+
|
|
34
|
+
Local-first, skill-based research workflow toolkit for **Claude Code** and **OpenAI Codex**: nine specialist Agent
|
|
35
|
+
Skills plus a mandatory `research-orchestrator`, backed by a deterministic Python engine (`rtk`). It helps a researcher
|
|
36
|
+
find papers, analyze them with locators, build evidence-linked reviews, shortlist candidate gaps, structure manuscripts,
|
|
37
|
+
audit citations, check integrity, simulate peer review and track progress — **without inventing papers, results or
|
|
38
|
+
completion marks**. It is an assistant, not an autonomous researcher and not a publication guarantee.
|
|
39
|
+
|
|
40
|
+
UI languages: Uzbek, English, Russian (skills are written in English; the agent answers in your language).
|
|
41
|
+
|
|
42
|
+
## Skills
|
|
43
|
+
|
|
44
|
+
| Skill | Does | Key gate |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| `research-orchestrator` | plans a dependency-aware workflow, previews it, gets approvals, runs/delegates, checkpoints, reports what is on disk | never fabricates outputs, never bypasses human review |
|
|
47
|
+
| `literature-search` | OpenAlex/Crossref/(Semantic Scholar) search, query log, dedup, ranking, access levels | never invents articles; reports coverage |
|
|
48
|
+
| `paper-analyzer` | objective/methods/sample/outcomes/limitations with page locators and verbatim excerpts | explicit `ABSTRACT_ONLY` if no full text |
|
|
49
|
+
| `literature-review` | comparison matrix + evidence-linked synthesis | every claim linked to `ev-`/`src-` ids |
|
|
50
|
+
| `research-gap-finder` | candidate gaps, hypotheses, feasibility | candidate gap ≠ proven novelty |
|
|
51
|
+
| `manuscript-builder` | IMRaD outline, author-reviewed draft, missing-info list | no fictitious methods/results |
|
|
52
|
+
| `citation-verifier` | DOI format + resolution, mismatches, missing/unused references | metadata check ≠ claim support |
|
|
53
|
+
| `academic-integrity` | attribution/provenance audit, AI-use disclosure draft, submission checklist | no plagiarism-free certificates, no detector evasion |
|
|
54
|
+
| `peer-reviewer` | section-wise major/minor comments, revision plan, response draft | simulated; no acceptance guarantee |
|
|
55
|
+
| `research-progress` | status from artifacts on disk, blockers, next actions | no evidence-free completion marks |
|
|
56
|
+
|
|
57
|
+
## Requirements
|
|
58
|
+
|
|
59
|
+
Python 3.11+, pip, Claude Code or Codex (authenticated), internet for the free metadata APIs. Node.js only for the
|
|
60
|
+
`npx skills` route. Windows 11 / Linux tested.
|
|
61
|
+
|
|
62
|
+
## Costs and subscriptions
|
|
63
|
+
|
|
64
|
+
The toolkit itself is free (MIT) and OpenAlex/Crossref need no key or payment. What you pay for is the **agent**:
|
|
65
|
+
|
|
66
|
+
| Agent | What you need | Notes |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| Claude Code | Claude Pro or Max subscription, **or** an Anthropic API key (pay per token) | Pro has tighter hourly limits; long research sessions fit Max better |
|
|
69
|
+
| Codex | ChatGPT Plus / Pro / Business / Edu / Enterprise, **or** an OpenAI API key | sign in with `codex login` |
|
|
70
|
+
|
|
71
|
+
One agent is enough; the skills behave the same in both. Semantic Scholar is optional (free public tier, rate
|
|
72
|
+
limited; a free API key raises limits). Prices and limits change often: check claude.com/pricing and
|
|
73
|
+
openai.com/chatgpt/pricing before advising users.
|
|
74
|
+
|
|
75
|
+
## 1-minute quickstart
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# engine (no clone needed)
|
|
79
|
+
python -m pip install "git+https://github.com/Mrkomiljon/AI-Research-Toolkit.git"
|
|
80
|
+
# skills into your research folder (pick the agent you use; both is fine)
|
|
81
|
+
cd /path/to/your/research-folder
|
|
82
|
+
npx skills add Mrkomiljon/AI-Research-Toolkit -a claude-code
|
|
83
|
+
npx skills add Mrkomiljon/AI-Research-Toolkit -a codex
|
|
84
|
+
rtk --help
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Without Node.js, clone and use the Python installer instead:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
git clone https://github.com/Mrkomiljon/AI-Research-Toolkit.git
|
|
91
|
+
cd AI-Research-Toolkit
|
|
92
|
+
python -m pip install -e .
|
|
93
|
+
python scripts/install.py --agent all --scope project --project-dir /path/to/your/research-folder
|
|
94
|
+
python scripts/doctor.py
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Open Claude Code or Codex **in `/path/to/your/research-folder`** and type:
|
|
98
|
+
|
|
99
|
+
> Use research-orchestrator. Initialize my PhD research on machine learning for cotton yield prediction.
|
|
100
|
+
|
|
101
|
+
Then ask for deliverables in plain language: "Find 20 papers since 2021", "Compare these papers", "Find research gaps",
|
|
102
|
+
"Prepare my article", "Audit this manuscript", "Where am I?".
|
|
103
|
+
|
|
104
|
+
## Install with the Skills CLI (after publishing on GitHub)
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
npx skills add Mrkomiljon/AI-Research-Toolkit # interactive: choose skills and agent(s)
|
|
108
|
+
npx skills add Mrkomiljon/AI-Research-Toolkit -a claude-code # Claude Code only
|
|
109
|
+
npx skills add Mrkomiljon/AI-Research-Toolkit -a codex # Codex only
|
|
110
|
+
npx skills add Mrkomiljon/AI-Research-Toolkit --all -g # all skills, all agents, user-level
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Flags checked against `skills` 1.7.6 (`npx skills add --help`, 2026-11-07). The Python engine must still be installed
|
|
114
|
+
(`python -m pip install -e .` from a clone, or the package once published) because every skill calls `rtk`.
|
|
115
|
+
Full details, Windows PowerShell steps, update and uninstall: [docs/installation.md](docs/installation.md).
|
|
116
|
+
|
|
117
|
+
### Claude Code
|
|
118
|
+
|
|
119
|
+
Skills are read from `<project>/.claude/skills/<skill>/SKILL.md` (or `~/.claude/skills`). `python scripts/install.py
|
|
120
|
+
--agent claude --scope project --project-dir <project>` creates them. Invoke by natural language; `CLAUDE.md` in this
|
|
121
|
+
repo carries the reliability rules.
|
|
122
|
+
|
|
123
|
+
### Codex
|
|
124
|
+
|
|
125
|
+
Skills are read from `<project>/.agents/skills/<skill>/SKILL.md` (or `~/.codex/skills`). `python scripts/install.py
|
|
126
|
+
--agent codex --scope project --project-dir <project>`. `AGENTS.md` carries the same rules. No vendor-specific slash
|
|
127
|
+
syntax is required by any skill (tested).
|
|
128
|
+
|
|
129
|
+
## Watching what happens
|
|
130
|
+
|
|
131
|
+
In an interactive session (`claude` or `codex` in a terminal or the VS Code extension) you see every step live: the
|
|
132
|
+
plan preview, approval questions, each `rtk` call and the files it writes. The non-interactive forms (`claude -p`,
|
|
133
|
+
`codex exec`) print only the final answer. Either way everything is written to disk, so a second terminal can follow
|
|
134
|
+
the run:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
rtk log -p workspace/<slug> --follow # tails workflow/runs.jsonl: step_started, step_completed, blocked, ...
|
|
138
|
+
rtk status -p workspace/<slug> # stage table derived from artifacts
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Outputs are ordinary files (`.md`, `.xlsx`, `.docx`, `.json`) under the workspace; open them in VS Code or Excel/Word.
|
|
142
|
+
|
|
143
|
+
## Sample prompts
|
|
144
|
+
|
|
145
|
+
- `Use research-orchestrator. Find 15 papers on Sentinel-2 wheat yield prediction 2020-2025, then find research gaps.`
|
|
146
|
+
- `Use paper-analyzer. Analyze papers/PDFs/smith2023.pdf for the question "which features drive accuracy?"`
|
|
147
|
+
- `Use citation-verifier. Check manuscript/draft.docx against sources/references.bib.`
|
|
148
|
+
- `Use research-progress. What is done, what is blocked, what next?`
|
|
149
|
+
- Uzbek: `Use research-orchestrator. Paxta hosildorligi va ML bo'yicha 20 ta maqola top va bo'shliqlarni aniqla.`
|
|
150
|
+
- Russian: `Use research-orchestrator. Найди 20 статей о прогнозировании урожайности хлопка и пробелы в исследованиях.`
|
|
151
|
+
|
|
152
|
+
## What a run looks like (engine only, no LLM needed)
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
rtk init --workspace ./workspace --slug crop-yield --topic "machine learning crop yield prediction" --year-from 2021 --ack-cloud
|
|
156
|
+
rtk plan -p workspace/crop-yield "Find 5 papers about ML crop yield prediction since 2021 and find research gaps"
|
|
157
|
+
rtk --json run -p workspace/crop-yield # runs literature-search; next steps are host-skill steps
|
|
158
|
+
rtk status -p workspace/crop-yield
|
|
159
|
+
rtk report -p workspace/crop-yield # lists only files that exist on disk
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
`examples/agriculture-research/` contains a real run (live OpenAlex + Crossref, 2026-11-07) with 16 deduplicated,
|
|
163
|
+
DOI-bearing sources, an abstract-only example analysis with tool-verified excerpts, a matrix, status files and the
|
|
164
|
+
workflow log. See its README for what is and is not demonstrated.
|
|
165
|
+
|
|
166
|
+
## Workspace layout
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
workspace/<slug>/
|
|
170
|
+
├── project.yaml # topic, goals, years, journal, privacy, budget, limits
|
|
171
|
+
├── sources/sources.json|references.bib
|
|
172
|
+
├── papers/PDFs/ # your PDFs (git-ignored)
|
|
173
|
+
├── evidence/evidence.jsonl
|
|
174
|
+
├── literature/ analysis/ manuscript/ reviews/
|
|
175
|
+
├── progress/project-status.json|artifacts.json|research-progress.xlsx|next-actions.md
|
|
176
|
+
├── workflow/plan.yaml|runs.jsonl|history/
|
|
177
|
+
└── exports/
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Data privacy
|
|
181
|
+
|
|
182
|
+
- Artifacts, registries and PDFs stay on your disk. Metadata APIs receive only query strings and DOIs.
|
|
183
|
+
- Claude Code / Codex send prompts and the text they read to their providers; **local-first is not offline inference**.
|
|
184
|
+
- `privacy.allow_external_apis: false` in `project.yaml` (or `RTK_ALLOW_EXTERNAL_APIS=0`) forbids all outbound calls.
|
|
185
|
+
- `rtk privacy-check <files>` blocks external transmission of restricted or sensitive files until you authorize it.
|
|
186
|
+
- Never commit `workspace/`, PDFs, `.env`. See [docs/security.md](docs/security.md).
|
|
187
|
+
|
|
188
|
+
## Testing and status
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
python -m pip install -e ".[dev]"
|
|
192
|
+
ruff check .
|
|
193
|
+
rtk validate-skills --skills-dir skills
|
|
194
|
+
pytest -q
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
74 tests (unit, integration, acceptance) pass offline on Windows 11 / Python 3.11.9 (2026-11-07); CI runs them on
|
|
198
|
+
Ubuntu and Windows with Python 3.11 and 3.12. Acceptance criteria from the specification:
|
|
199
|
+
|
|
200
|
+
| # | Criterion | Status |
|
|
201
|
+
|---|---|---|
|
|
202
|
+
| 1 | multi-step request → validated plan and sequential artifacts | pass (`test_1_…`) |
|
|
203
|
+
| 2 | verified paper not re-analyzed without reason | pass |
|
|
204
|
+
| 3 | missing PDF → abstract-only / full-text claims blocked | pass |
|
|
205
|
+
| 4 | invalid DOI does not pass citation verification | pass |
|
|
206
|
+
| 5 | stops before external transmission of confidential files | pass |
|
|
207
|
+
| 6 | failed API step → partial artifacts + truthful `blocked` | pass |
|
|
208
|
+
| 7 | interruption persists state; resume skips valid steps | pass |
|
|
209
|
+
| 8 | injected instruction in a PDF does not change orchestration | pass |
|
|
210
|
+
| 9 | Claude Code and Codex run the same skill workflow | installer/manifest part passes (`test_cross_agent.py`). Conversational run verified in **Claude Code** (2026-11-07: `claude -p` with `Use research-orchestrator. Initialize … then find 3 papers` created the workspace, ran the plan and reported only on-disk files; a second run `… 10 ta maqola top va bo'shliqlarni aniqla` completed the full search → analyzer → review → gap-finder chain with 26 artifacts, all labelled ABSTRACT_ONLY/METADATA_ONLY because no PDFs were supplied). **Codex** conversational run still pending (account/model login issue on the test machine) |
|
|
211
|
+
| 10 | workflow summary matches artifacts on disk | pass |
|
|
212
|
+
|
|
213
|
+
## Known limitations
|
|
214
|
+
|
|
215
|
+
- Full texts are never downloaded; you supply PDFs. Scanned PDFs without a text layer are not OCR'd.
|
|
216
|
+
- Author-year citation matching is heuristic; use `\cite{}`, `[@key]` or `[src-…]` for reliable audits.
|
|
217
|
+
- Intent routing is keyword-based; ambiguous requests produce an empty plan and a question, by design.
|
|
218
|
+
- Semantic Scholar public tier is rate-limited; it is optional.
|
|
219
|
+
- Templates in `templates/` are starting points, not journal-specific formats. No LaTeX/pandoc pipeline yet.
|
|
220
|
+
- PyMuPDF is AGPL-licensed (see `LICENSE` note).
|
|
221
|
+
|
|
222
|
+
## Repository map
|
|
223
|
+
|
|
224
|
+
`skills/` canonical skills · `research_toolkit/` engine · `scripts/` install, doctor, init_project, validate_sources,
|
|
225
|
+
export_report, build_templates · `templates/` · `examples/agriculture-research/` · `tests/` · `docs/` (installation,
|
|
226
|
+
user-guide-uz, architecture, security) · `.github/workflows/ci.yml`.
|
|
227
|
+
|
|
228
|
+
## Releasing to PyPI (maintainers)
|
|
229
|
+
|
|
230
|
+
1. Create a PyPI API token (pypi.org → Account settings → API tokens) and store it as the GitHub secret `PYPI_API_TOKEN`.
|
|
231
|
+
2. Bump `version` in `pyproject.toml`, commit, then tag and push: `git tag v1.1.0 && git push origin v1.1.0`.
|
|
232
|
+
3. `.github/workflows/release.yml` runs lint + tests, checks the tag matches the version, builds, uploads to PyPI and
|
|
233
|
+
creates a GitHub release. Users can then `python -m pip install ai-research-toolkit`.
|
|
234
|
+
|
|
235
|
+
## License
|
|
236
|
+
|
|
237
|
+
MIT (see `LICENSE`, including the dependency licence audit note).
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# AI Research Toolkit (v1.1)
|
|
2
|
+
|
|
3
|
+
Local-first, skill-based research workflow toolkit for **Claude Code** and **OpenAI Codex**: nine specialist Agent
|
|
4
|
+
Skills plus a mandatory `research-orchestrator`, backed by a deterministic Python engine (`rtk`). It helps a researcher
|
|
5
|
+
find papers, analyze them with locators, build evidence-linked reviews, shortlist candidate gaps, structure manuscripts,
|
|
6
|
+
audit citations, check integrity, simulate peer review and track progress — **without inventing papers, results or
|
|
7
|
+
completion marks**. It is an assistant, not an autonomous researcher and not a publication guarantee.
|
|
8
|
+
|
|
9
|
+
UI languages: Uzbek, English, Russian (skills are written in English; the agent answers in your language).
|
|
10
|
+
|
|
11
|
+
## Skills
|
|
12
|
+
|
|
13
|
+
| Skill | Does | Key gate |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `research-orchestrator` | plans a dependency-aware workflow, previews it, gets approvals, runs/delegates, checkpoints, reports what is on disk | never fabricates outputs, never bypasses human review |
|
|
16
|
+
| `literature-search` | OpenAlex/Crossref/(Semantic Scholar) search, query log, dedup, ranking, access levels | never invents articles; reports coverage |
|
|
17
|
+
| `paper-analyzer` | objective/methods/sample/outcomes/limitations with page locators and verbatim excerpts | explicit `ABSTRACT_ONLY` if no full text |
|
|
18
|
+
| `literature-review` | comparison matrix + evidence-linked synthesis | every claim linked to `ev-`/`src-` ids |
|
|
19
|
+
| `research-gap-finder` | candidate gaps, hypotheses, feasibility | candidate gap ≠ proven novelty |
|
|
20
|
+
| `manuscript-builder` | IMRaD outline, author-reviewed draft, missing-info list | no fictitious methods/results |
|
|
21
|
+
| `citation-verifier` | DOI format + resolution, mismatches, missing/unused references | metadata check ≠ claim support |
|
|
22
|
+
| `academic-integrity` | attribution/provenance audit, AI-use disclosure draft, submission checklist | no plagiarism-free certificates, no detector evasion |
|
|
23
|
+
| `peer-reviewer` | section-wise major/minor comments, revision plan, response draft | simulated; no acceptance guarantee |
|
|
24
|
+
| `research-progress` | status from artifacts on disk, blockers, next actions | no evidence-free completion marks |
|
|
25
|
+
|
|
26
|
+
## Requirements
|
|
27
|
+
|
|
28
|
+
Python 3.11+, pip, Claude Code or Codex (authenticated), internet for the free metadata APIs. Node.js only for the
|
|
29
|
+
`npx skills` route. Windows 11 / Linux tested.
|
|
30
|
+
|
|
31
|
+
## Costs and subscriptions
|
|
32
|
+
|
|
33
|
+
The toolkit itself is free (MIT) and OpenAlex/Crossref need no key or payment. What you pay for is the **agent**:
|
|
34
|
+
|
|
35
|
+
| Agent | What you need | Notes |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| Claude Code | Claude Pro or Max subscription, **or** an Anthropic API key (pay per token) | Pro has tighter hourly limits; long research sessions fit Max better |
|
|
38
|
+
| Codex | ChatGPT Plus / Pro / Business / Edu / Enterprise, **or** an OpenAI API key | sign in with `codex login` |
|
|
39
|
+
|
|
40
|
+
One agent is enough; the skills behave the same in both. Semantic Scholar is optional (free public tier, rate
|
|
41
|
+
limited; a free API key raises limits). Prices and limits change often: check claude.com/pricing and
|
|
42
|
+
openai.com/chatgpt/pricing before advising users.
|
|
43
|
+
|
|
44
|
+
## 1-minute quickstart
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# engine (no clone needed)
|
|
48
|
+
python -m pip install "git+https://github.com/Mrkomiljon/AI-Research-Toolkit.git"
|
|
49
|
+
# skills into your research folder (pick the agent you use; both is fine)
|
|
50
|
+
cd /path/to/your/research-folder
|
|
51
|
+
npx skills add Mrkomiljon/AI-Research-Toolkit -a claude-code
|
|
52
|
+
npx skills add Mrkomiljon/AI-Research-Toolkit -a codex
|
|
53
|
+
rtk --help
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Without Node.js, clone and use the Python installer instead:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
git clone https://github.com/Mrkomiljon/AI-Research-Toolkit.git
|
|
60
|
+
cd AI-Research-Toolkit
|
|
61
|
+
python -m pip install -e .
|
|
62
|
+
python scripts/install.py --agent all --scope project --project-dir /path/to/your/research-folder
|
|
63
|
+
python scripts/doctor.py
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Open Claude Code or Codex **in `/path/to/your/research-folder`** and type:
|
|
67
|
+
|
|
68
|
+
> Use research-orchestrator. Initialize my PhD research on machine learning for cotton yield prediction.
|
|
69
|
+
|
|
70
|
+
Then ask for deliverables in plain language: "Find 20 papers since 2021", "Compare these papers", "Find research gaps",
|
|
71
|
+
"Prepare my article", "Audit this manuscript", "Where am I?".
|
|
72
|
+
|
|
73
|
+
## Install with the Skills CLI (after publishing on GitHub)
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
npx skills add Mrkomiljon/AI-Research-Toolkit # interactive: choose skills and agent(s)
|
|
77
|
+
npx skills add Mrkomiljon/AI-Research-Toolkit -a claude-code # Claude Code only
|
|
78
|
+
npx skills add Mrkomiljon/AI-Research-Toolkit -a codex # Codex only
|
|
79
|
+
npx skills add Mrkomiljon/AI-Research-Toolkit --all -g # all skills, all agents, user-level
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Flags checked against `skills` 1.7.6 (`npx skills add --help`, 2026-11-07). The Python engine must still be installed
|
|
83
|
+
(`python -m pip install -e .` from a clone, or the package once published) because every skill calls `rtk`.
|
|
84
|
+
Full details, Windows PowerShell steps, update and uninstall: [docs/installation.md](docs/installation.md).
|
|
85
|
+
|
|
86
|
+
### Claude Code
|
|
87
|
+
|
|
88
|
+
Skills are read from `<project>/.claude/skills/<skill>/SKILL.md` (or `~/.claude/skills`). `python scripts/install.py
|
|
89
|
+
--agent claude --scope project --project-dir <project>` creates them. Invoke by natural language; `CLAUDE.md` in this
|
|
90
|
+
repo carries the reliability rules.
|
|
91
|
+
|
|
92
|
+
### Codex
|
|
93
|
+
|
|
94
|
+
Skills are read from `<project>/.agents/skills/<skill>/SKILL.md` (or `~/.codex/skills`). `python scripts/install.py
|
|
95
|
+
--agent codex --scope project --project-dir <project>`. `AGENTS.md` carries the same rules. No vendor-specific slash
|
|
96
|
+
syntax is required by any skill (tested).
|
|
97
|
+
|
|
98
|
+
## Watching what happens
|
|
99
|
+
|
|
100
|
+
In an interactive session (`claude` or `codex` in a terminal or the VS Code extension) you see every step live: the
|
|
101
|
+
plan preview, approval questions, each `rtk` call and the files it writes. The non-interactive forms (`claude -p`,
|
|
102
|
+
`codex exec`) print only the final answer. Either way everything is written to disk, so a second terminal can follow
|
|
103
|
+
the run:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
rtk log -p workspace/<slug> --follow # tails workflow/runs.jsonl: step_started, step_completed, blocked, ...
|
|
107
|
+
rtk status -p workspace/<slug> # stage table derived from artifacts
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Outputs are ordinary files (`.md`, `.xlsx`, `.docx`, `.json`) under the workspace; open them in VS Code or Excel/Word.
|
|
111
|
+
|
|
112
|
+
## Sample prompts
|
|
113
|
+
|
|
114
|
+
- `Use research-orchestrator. Find 15 papers on Sentinel-2 wheat yield prediction 2020-2025, then find research gaps.`
|
|
115
|
+
- `Use paper-analyzer. Analyze papers/PDFs/smith2023.pdf for the question "which features drive accuracy?"`
|
|
116
|
+
- `Use citation-verifier. Check manuscript/draft.docx against sources/references.bib.`
|
|
117
|
+
- `Use research-progress. What is done, what is blocked, what next?`
|
|
118
|
+
- Uzbek: `Use research-orchestrator. Paxta hosildorligi va ML bo'yicha 20 ta maqola top va bo'shliqlarni aniqla.`
|
|
119
|
+
- Russian: `Use research-orchestrator. Найди 20 статей о прогнозировании урожайности хлопка и пробелы в исследованиях.`
|
|
120
|
+
|
|
121
|
+
## What a run looks like (engine only, no LLM needed)
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
rtk init --workspace ./workspace --slug crop-yield --topic "machine learning crop yield prediction" --year-from 2021 --ack-cloud
|
|
125
|
+
rtk plan -p workspace/crop-yield "Find 5 papers about ML crop yield prediction since 2021 and find research gaps"
|
|
126
|
+
rtk --json run -p workspace/crop-yield # runs literature-search; next steps are host-skill steps
|
|
127
|
+
rtk status -p workspace/crop-yield
|
|
128
|
+
rtk report -p workspace/crop-yield # lists only files that exist on disk
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
`examples/agriculture-research/` contains a real run (live OpenAlex + Crossref, 2026-11-07) with 16 deduplicated,
|
|
132
|
+
DOI-bearing sources, an abstract-only example analysis with tool-verified excerpts, a matrix, status files and the
|
|
133
|
+
workflow log. See its README for what is and is not demonstrated.
|
|
134
|
+
|
|
135
|
+
## Workspace layout
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
workspace/<slug>/
|
|
139
|
+
├── project.yaml # topic, goals, years, journal, privacy, budget, limits
|
|
140
|
+
├── sources/sources.json|references.bib
|
|
141
|
+
├── papers/PDFs/ # your PDFs (git-ignored)
|
|
142
|
+
├── evidence/evidence.jsonl
|
|
143
|
+
├── literature/ analysis/ manuscript/ reviews/
|
|
144
|
+
├── progress/project-status.json|artifacts.json|research-progress.xlsx|next-actions.md
|
|
145
|
+
├── workflow/plan.yaml|runs.jsonl|history/
|
|
146
|
+
└── exports/
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Data privacy
|
|
150
|
+
|
|
151
|
+
- Artifacts, registries and PDFs stay on your disk. Metadata APIs receive only query strings and DOIs.
|
|
152
|
+
- Claude Code / Codex send prompts and the text they read to their providers; **local-first is not offline inference**.
|
|
153
|
+
- `privacy.allow_external_apis: false` in `project.yaml` (or `RTK_ALLOW_EXTERNAL_APIS=0`) forbids all outbound calls.
|
|
154
|
+
- `rtk privacy-check <files>` blocks external transmission of restricted or sensitive files until you authorize it.
|
|
155
|
+
- Never commit `workspace/`, PDFs, `.env`. See [docs/security.md](docs/security.md).
|
|
156
|
+
|
|
157
|
+
## Testing and status
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
python -m pip install -e ".[dev]"
|
|
161
|
+
ruff check .
|
|
162
|
+
rtk validate-skills --skills-dir skills
|
|
163
|
+
pytest -q
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
74 tests (unit, integration, acceptance) pass offline on Windows 11 / Python 3.11.9 (2026-11-07); CI runs them on
|
|
167
|
+
Ubuntu and Windows with Python 3.11 and 3.12. Acceptance criteria from the specification:
|
|
168
|
+
|
|
169
|
+
| # | Criterion | Status |
|
|
170
|
+
|---|---|---|
|
|
171
|
+
| 1 | multi-step request → validated plan and sequential artifacts | pass (`test_1_…`) |
|
|
172
|
+
| 2 | verified paper not re-analyzed without reason | pass |
|
|
173
|
+
| 3 | missing PDF → abstract-only / full-text claims blocked | pass |
|
|
174
|
+
| 4 | invalid DOI does not pass citation verification | pass |
|
|
175
|
+
| 5 | stops before external transmission of confidential files | pass |
|
|
176
|
+
| 6 | failed API step → partial artifacts + truthful `blocked` | pass |
|
|
177
|
+
| 7 | interruption persists state; resume skips valid steps | pass |
|
|
178
|
+
| 8 | injected instruction in a PDF does not change orchestration | pass |
|
|
179
|
+
| 9 | Claude Code and Codex run the same skill workflow | installer/manifest part passes (`test_cross_agent.py`). Conversational run verified in **Claude Code** (2026-11-07: `claude -p` with `Use research-orchestrator. Initialize … then find 3 papers` created the workspace, ran the plan and reported only on-disk files; a second run `… 10 ta maqola top va bo'shliqlarni aniqla` completed the full search → analyzer → review → gap-finder chain with 26 artifacts, all labelled ABSTRACT_ONLY/METADATA_ONLY because no PDFs were supplied). **Codex** conversational run still pending (account/model login issue on the test machine) |
|
|
180
|
+
| 10 | workflow summary matches artifacts on disk | pass |
|
|
181
|
+
|
|
182
|
+
## Known limitations
|
|
183
|
+
|
|
184
|
+
- Full texts are never downloaded; you supply PDFs. Scanned PDFs without a text layer are not OCR'd.
|
|
185
|
+
- Author-year citation matching is heuristic; use `\cite{}`, `[@key]` or `[src-…]` for reliable audits.
|
|
186
|
+
- Intent routing is keyword-based; ambiguous requests produce an empty plan and a question, by design.
|
|
187
|
+
- Semantic Scholar public tier is rate-limited; it is optional.
|
|
188
|
+
- Templates in `templates/` are starting points, not journal-specific formats. No LaTeX/pandoc pipeline yet.
|
|
189
|
+
- PyMuPDF is AGPL-licensed (see `LICENSE` note).
|
|
190
|
+
|
|
191
|
+
## Repository map
|
|
192
|
+
|
|
193
|
+
`skills/` canonical skills · `research_toolkit/` engine · `scripts/` install, doctor, init_project, validate_sources,
|
|
194
|
+
export_report, build_templates · `templates/` · `examples/agriculture-research/` · `tests/` · `docs/` (installation,
|
|
195
|
+
user-guide-uz, architecture, security) · `.github/workflows/ci.yml`.
|
|
196
|
+
|
|
197
|
+
## Releasing to PyPI (maintainers)
|
|
198
|
+
|
|
199
|
+
1. Create a PyPI API token (pypi.org → Account settings → API tokens) and store it as the GitHub secret `PYPI_API_TOKEN`.
|
|
200
|
+
2. Bump `version` in `pyproject.toml`, commit, then tag and push: `git tag v1.1.0 && git push origin v1.1.0`.
|
|
201
|
+
3. `.github/workflows/release.yml` runs lint + tests, checks the tag matches the version, builds, uploads to PyPI and
|
|
202
|
+
creates a GitHub release. Users can then `python -m pip install ai-research-toolkit`.
|
|
203
|
+
|
|
204
|
+
## License
|
|
205
|
+
|
|
206
|
+
MIT (see `LICENSE`, including the dependency licence audit note).
|