Deterministic-first GitHub issue triage engine
Project description
Issue Assistant
Issue Assistant is a deterministic GitHub issue triage engine designed for maintainers who want consistent, explainable signals without automation they can’t trust.
It analyzes GitHub issues and produces Markdown and JSON artifacts that help answer:
- Is this issue actionable or missing critical information?
- Does it appear to be a duplicate of existing work?
- How much maintainer effort is likely required?
- Why did the tool reach this conclusion?
All outputs are written to .issue-assistant/. Nothing is hidden, guessed, or implicit.
Why this exists
Maintainers spend a disproportionate amount of time triaging issues that are:
- missing reproduction steps, logs, or environment details
- duplicates that fragment discussion
- unclear about expected vs actual behavior
- noisy or low-signal
Issue Assistant provides a deterministic baseline for triage so humans can make faster, more consistent decisions without surrendering control.
Design principles
Issue Assistant is intentionally conservative:
- Deterministic only — no LLMs, no probabilistic output
- Explainable by construction — every outcome maps to rules and evidence
- Governance-aware — safe defaults, no surprise side effects
- Human-first — maintainers always make the final call
If a signal cannot be explained clearly, it does not exist.
Installation
Requires Python 3.10+.
pip install issue-assistant
Run locally
issue-assistant analyze \
--github-token "$GITHUB_TOKEN" \
--repo owner/name \
--output-dir .issue-assistant \
--governance-mode dry-run
This performs a full analysis and writes artifacts locally without modifying issues.
GitHub Action
Issue Assistant is available as a GitHub Action:
uses: siggmond/issue-assistant@v0.2.0
The Action is a thin wrapper around the CLI. You can use the CLI independently or rely entirely on the Action.
Typical triggers include:
- issue opened / edited / reopened
- scheduled runs (weekly digest)
Artifacts can be uploaded or committed depending on your workflow.
Governance modes
| Mode | Comments | Label suggestions | Intended use |
|---|---|---|---|
| dry-run | never | never | analysis only; safest default |
| strict | limited | no | request missing info, flag duplicates |
| aggressive | yes | yes (suggestions) | higher throughput without auto-closing |
Hard constraints:
- issues are never auto-closed
- fixes are never guessed
- maintainer decisions are never overridden
Artifacts generated
A typical run produces:
- ISSUE_SUMMARY.md / issues.json
- MAINTAINER_LOAD.md / maintainer_load.json
- EXPLAINABILITY.md / explainability.json
- per-issue playbooks and explainability JSON
Example outputs are included under docs/screenshots/.
When not to use this tool
Issue Assistant is not a good fit if you want:
- fully automated triage or auto-closing
- subjective or sentiment-based analysis
- invisible automation
- zero repository artifacts
Philosophy
Explainability is a core invariant.
If the tool cannot explain why it produced an output, that output should not exist.
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 issue_assistant-0.2.1.tar.gz.
File metadata
- Download URL: issue_assistant-0.2.1.tar.gz
- Upload date:
- Size: 43.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
263931436b1fb814c6f4ddaf19a2b6f7203134a68356f127ba57bb09d3986410
|
|
| MD5 |
608fb794c5f8bf201baf7cf28de15a91
|
|
| BLAKE2b-256 |
078a1614204159cdd82ec95937946f1476c7504deb1e8f60643c3fb85ed4a9cc
|
File details
Details for the file issue_assistant-0.2.1-py3-none-any.whl.
File metadata
- Download URL: issue_assistant-0.2.1-py3-none-any.whl
- Upload date:
- Size: 55.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17908f8885872fd8c9d8a5e5e9ca306ccb1905ef735bae0cde1c8f9cb037f9da
|
|
| MD5 |
3f40bcbaf37d87abc1a7eaa1aae243b7
|
|
| BLAKE2b-256 |
cb6594b734e35af13eb335472119f8e88bb6584cfc933fe34123a129ed242b21
|