Related Issue Finder (yt-issue-reviewer)
A run-on-demand CLI that helps a team lead find related issues across a YouTrack instance — probable duplicates, issues about the same feature/root cause, and issues with overlapping subject matter worded differently — so they can be merged, recognized, and consolidated.
📖 Documentation: https://yt-issue-reviewer.readthedocs.io/
Privacy & boundaries (non-negotiable)
- Read-only against YouTrack. This tool never links, merges, tags, or closes issues.
- Self-hosted Ollama only for embeddings and optional labels. Issue content never leaves infrastructure you control; there is no third-party hosted-AI fallback.
- All YouTrack access goes through the
youtrack_clipackage (theytCLI).
How it works
- Ingest issues via
ytand cache them locally in SQLite (Datasette-friendly). - Embed title+description via Ollama, caching vectors on
(issue_id, content_hash, model)so unchanged issues are never re-embedded. - Score relatedness = weighted blend of semantic cosine similarity + local structural signals (shared tags, reporter overlap, temporal proximity).
- Group high-scoring pairs into ranked groups (existing YouTrack links excluded).
- Report ranked groups with human-readable evidence; optionally add a flag-gated, generated one-line label per group.
Quickstart
uv sync
uv run yt-issue-reviewer doctor --ollama-host http://<host>:11434
uv run yt-issue-reviewer analyze --project PROJ --state open --min-score 0.6 --db ./yir.db
uv run yt-issue-reviewer show --db ./yir.db # re-display a stored run, offline
datasette ./yir.db # browse results externally
Prerequisites: uv, an authenticated youtrack-cli, and a
reachable self-hosted Ollama with nomic-embed-text pulled. Full walkthrough in the
quickstart.
Documentation
Full docs are hosted at https://yt-issue-reviewer.readthedocs.io/.
| Doc | What it covers |
|---|---|
| Installation | Prerequisites and install |
| Quickstart | Zero → first analysis |
| CLI reference | Every command, flag, and exit code |
| Configuration | Env vars + config.toml with defaults |
| Architecture | The hybrid scoring pipeline |
| Privacy & security | What leaves your infra (nothing) |
| Releasing | Tag-driven PyPI release process |
| Contributing | The just check gate and PR workflow |
The Markdown/RST sources live in docs/; the full spec, plan, and contracts live
under specs/001-related-issue-finder/.
Development
just --list # all developer recipes
just check # the exact CI gate: ruff, ruff format, ty, pytest, zizmor
See CONTRIBUTING.md. Licensed under the MIT License.
Metadata
Release files for yt-issue-reviewer 0.3.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| yt_issue_reviewer-0.3.10.tar.gz | 256.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| yt_issue_reviewer-0.3.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 290.2 kB
Release files / yt_issue_reviewer-0.3.10.tar.gz
| Download URL | yt_issue_reviewer-0.3.10.tar.gz |
|---|---|
| Size | 256.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
13fb7f910e34ff6f6b823b133c80dda6978c34cb94938147f41ac625933c634e
|
|
BLAKE2b-256 checksum How to use checksums |
a9adc3b178ef2e5286247740fa2aace8442124c6313b378697bb8000d1ebf93d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.
Transparency logRelease files / yt_issue_reviewer-0.3.10-py3-none-any.whl
| Download URL | yt_issue_reviewer-0.3.10-py3-none-any.whl |
|---|---|
| Size | 33.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
83efbce96cd27efb07dba43abea5e46cb2c194ca6a9e0c9aaacf1b211996c4cf
|
|
BLAKE2b-256 checksum How to use checksums |
1e90a3910ad77186e83580104dc91b2875a15ef8874dc1dfb135668d7ef2376f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.
Transparency log