CLI tool for managing a verified literature trail from AI-generated research reports
Project description
littrail
Verified literature trail for software projects.
littrail solves the problem of using AI-generated research surveys as unchecked evidence. It provides a CLI tool and workflow template that turns an AI-generated survey into a verified literature trail — with metadata confirmed against OpenAlex, reading notes, and GitHub issue candidates — all stored in Git.
Workflow
generated report -> verified catalog -> paper notes -> issue candidates -> GitHub issues
- Save an AI-generated literature survey in
research/reports/. - Add papers with verified metadata using
littrail add-paper. - Confirm metadata against OpenAlex with
littrail verify. - Write reading notes in
research/notes/<key>.md. - Draft issue candidates in
research/ideas/. - Promote to GitHub issues manually.
Installation
# One-off use (no install required):
uvx littrail --help
# For CI or team-managed projects:
uv add --group dev littrail
Development
git clone https://github.com/pillyshi/littrail
cd littrail
uv sync --group dev
uv run pytest
uv run ruff check src/ tests/
uv run pyright src/
uv build
Quickstart
littrail init
export OPENALEX_API_KEY=...
littrail add-paper --doi 10.18653/v1/D19-1404
littrail verify
littrail check
Commands
| Command | Description |
|---|---|
littrail init |
Initialise research/ workflow in current directory |
littrail add-paper --doi <DOI> |
Add paper by DOI |
littrail add-paper --openalex <ID> |
Add paper by OpenAlex ID |
littrail verify |
Verify catalog metadata against OpenAlex (read-only) |
littrail check |
Check repository consistency offline |
research/ Directory Policy
research/
README.md # Workflow documentation (Git tracked)
catalog.yaml # Verified metadata (Git tracked)
reports/ # AI-generated surveys (Git tracked)
notes/ # Per-paper reading notes (Git tracked)
ideas/ # Issue candidates (Git tracked)
pdfs/ # Local PDF cache (NOT tracked)
PDF binaries are stored in research/pdfs/ and excluded from Git via
.gitignore. This keeps the repository lightweight while preserving the
human-readable record.
API Key
littrail add-paper and littrail verify use the
OpenAlex API via pyalex.
export OPENALEX_API_KEY=your_key_here
Do not commit your API key. It is never written to catalog.yaml,
logs, or any Git-tracked file.
Design Decisions
| Decision | Choice | Reason |
|---|---|---|
| CLI framework | typer | Auto --help, type-annotation based |
| YAML library | ruamel.yaml | Preserves key order and formatting |
| Type checker | pyright (basic) | pyalex/ruamel.yaml に型スタブなし、basic mode で対応 |
verify auto-update |
No | Keeps human judgment in the loop |
| Key format | <family>-<year> |
Human-readable, suffix on collision |
MVP Non-Goals
The following are not included in this release:
- LLM API integration or automated report generation
- PDF auto-download
- PDF text extraction or citation scraping
- GitHub issue creation
- Automated note writing
- arXiv / ACL identifier input (DOI and OpenAlex ID only)
- Catalog auto-migration
- CI workflow template generation
- Plugin / MCP server packaging
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file littrail-0.1.0.tar.gz.
File metadata
- Download URL: littrail-0.1.0.tar.gz
- Upload date:
- Size: 35.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c6ebbe93ddb7ef6b4bee6db56dd7ab5f4f33b5a26ef6ef9681a28c1c7affd3d
|
|
| MD5 |
cb87284f60d8745b1e5a247e2785065f
|
|
| BLAKE2b-256 |
1d69e9f0f790582152d8d21d37deda7a802db58bfafd16903651c7fdba53eeee
|
File details
Details for the file littrail-0.1.0-py3-none-any.whl.
File metadata
- Download URL: littrail-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee4fbc91e1d6147cb741fa2c579ebeeb4c0bf104a9befe149f481c6654907a32
|
|
| MD5 |
251a1f80be53a746ed99446591b3cd33
|
|
| BLAKE2b-256 |
663b42e879f31a33878c733a25d2913e32e373c8cf6e5d75117d211fb9112837
|