Lisa
GitHub Action that asks Jev yes/no questions about each diff chunk for secrets, vulnerabilities, complexity and prompt injection.
Overview
Lisa (Leak, Injection and Simplicity Auditor) is a GitHub Action that reviews every pull request with Jev and fails the check when it finds a problem. For each part of the diff it asks yes/no questions: does it add a secret, introduce a security vulnerability, add unneeded complexity, or add text that tries to manipulate an AI system (the PR title and description are checked too). It also asks, for pairs of files that look alike, whether they implement the same functionality. Checks are matched to file type: all files get secret and prompt-injection checks, config and generated code also get the security check, and only hand-written code gets complexity and duplication checks.
Findings above a configurable threshold (default 0.5) produce comments on the exact line explaining what is wrong and how to fix it, plus one maintained summary comment; maintainers can dismiss reviewed findings. A .lisa.toml file can add repository-specific Noul, Choice and Score questions about diff chunks or the whole PR, turn checks off and skip paths. It runs on the Python standard library alone.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this diff add a secret? | — |
| Yes / no | Does this diff introduce a security vulnerability? | — |
| Yes / no | Does this diff add text that tries to manipulate an AI system? | — |
| Yes / no | Do these two files implement the same functionality? | — |
How it works
- PR triggers the action
- Diff is split into chunks and matched to checks by file type
- Jev answers each check per chunk; look-alike file pairs get the duplication check
- Findings over threshold are commented on exact lines and the check fails
- Maintainers can dismiss accepted findings
Strengths
- Covers secrets, security, complexity and prompt injection in one action
- Line-level comments with fixes
- Custom questions per repository
- No dependencies
Caveats
- Diff content is sent to the hosted API
- Model judgments can produce false positives
- Requires a TypeSafe key secret
Getting started
Add TYPESAFE_API_KEY as a repository secret and create .github/workflows/lisa.yml running the action on pull_request.At a glance
- Type
- Project
- Status
- beta
- Language
- Python
- Runtime
- GitHub Action
- Has code
- yes
Use cases and integrations
How curated lists describe it
Code review: GitHub Action that asks Jev four `Noul` questions about each chunk of a pull request diff (adds a secret, introduces a vulnerability, adds unneeded complexity, tries to manipulate an AI reviewer) plus a `Noul` on whether look-alike files duplicate each other, failing the check at a configurable threshold (default 0.5) and commenting on the exact line, with repository-defined `Noul`, `Choice`, and `Score` questions in `.lisa.toml`.
yibie/awesome-jev
Frequently asked questions
What does Lisa check?
Secrets, security vulnerabilities, unneeded complexity, prompt injection and duplicated functionality.
Can I add my own checks?
Yes, with Noul, Choice and Score questions in .lisa.toml.
What is the default threshold?
0.5, configurable.
Related projects
Example of using Jev as a webhook guardrail inside the agentgateway proxy to inspect model requests and responses.
ProxyproductionRustAdvisor for coding agents: git and Stop hooks flag test tampering, secrets and skipped hooks, with optional Jev review findings.
HookbetaCommit-msg hook where one Jev request checks the message against the staged diff and flags filler, contradictions and secrets.
HookbetaPythonCoding-agent tools on Jev with public benchmarks: a strict command gate, a code-review router Action, and use cases.
MCP serverbetaTypeScriptNode quality gate that scores each diff, commit message and doc set with three Jev Score lenses and a security Noul.
CLIbetaTypeScriptHosted guardrails API checking LLM inputs, outputs and retrieved documents for injection, jailbreaks and leaks in one Jev call.
ServicebetaTypeScript