Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## Summary

<!-- What changes, and why is it needed? -->

## Evidence

<!-- Paste the exact commands and concise outputs that support completion claims. -->

- [ ] `python -m pytest -q`
- [ ] Relevant CLI example or regression case

```text
command:
output:
```

## Scope and limitations

<!-- Note anything intentionally not verified, deferred, or out of scope. -->

94 changes: 94 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: CI

on:
push:
branches: [main]
pull_request:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.9", "3.12", "3.13"]

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install package and test dependencies
run: python -m pip install -e ".[dev]"

- name: Run tests
run: python -m pytest -q

- name: Verify CLI exit-code contract
shell: bash
run: |
neo-evidence-gate examples/good.md
if neo-evidence-gate examples/bad.md; then
echo "examples/bad.md unexpectedly passed" >&2
exit 1
fi

evidence-gate:
name: Dogfood evidence gate on PR description
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install local package
run: python -m pip install .

- name: Check PR description
env:
PR_BODY: ${{ github.event.pull_request.body }}
shell: bash
run: printf '%s' "$PR_BODY" | neo-evidence-gate -

package:
name: Build and inspect distribution
runs-on: ubuntu-latest

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install packaging tools
run: python -m pip install build twine

- name: Build distributions
run: python -m build

- name: Check package metadata
run: python -m twine check dist/*

15 changes: 11 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# neo-evidence-gate

[![CI](https://github.com/Yesol-Pilot/neo-evidence-gate/actions/workflows/ci.yml/badge.svg)](https://github.com/Yesol-Pilot/neo-evidence-gate/actions/workflows/ci.yml)

**An honesty linter for completion claims.** It flags lines that say a task is
*done* — `DONE`, `PASS`, `READY`, `VERIFIED`, `fixed`, `works now`, `shipped` —
when there is **no evidence** next to the claim.
Expand Down Expand Up @@ -35,10 +37,12 @@ turned into a command you can run.
## Install

```bash
pip install neo-evidence-gate
python -m pip install "git+https://github.com/Yesol-Pilot/neo-evidence-gate.git@21330b9"
```

Requires Python 3.9+. No third-party runtime dependencies.
The project is not published on PyPI yet. The commit pin above keeps installs
reproducible until the first package release. Requires Python 3.9+. No
third-party runtime dependencies.

## Use

Expand Down Expand Up @@ -75,9 +79,11 @@ for f in result.findings: # [] (nothing unsupported)

```yaml
- name: Evidence gate on the PR body
env:
PR_BODY: ${{ github.event.pull_request.body }}
run: |
pip install neo-evidence-gate
printf '%s' "${{ github.event.pull_request.body }}" | neo-evidence-gate -
python -m pip install "git+https://github.com/Yesol-Pilot/neo-evidence-gate.git@21330b9"
printf '%s' "$PR_BODY" | neo-evidence-gate -
```

### As a pre-commit hook
Expand Down Expand Up @@ -133,3 +139,4 @@ option. Contributions are accepted under the same terms.

`neo-evidence-gate` is part of [Neo Genesis](https://neogenesis.app), where the
same principle governs the agent runtime itself: no `DONE` without evidence.

Loading