diff --git a/.github/workflows/dependency-audit.yml b/.github/workflows/dependency-audit.yml index 5d23b43..4cdf920 100644 --- a/.github/workflows/dependency-audit.yml +++ b/.github/workflows/dependency-audit.yml @@ -3,17 +3,7 @@ name: Dependency audit on: push: branches: [main] - paths: - - pyproject.toml - - web/package.json - - web/package-lock.json - - .github/workflows/dependency-audit.yml pull_request: - paths: - - pyproject.toml - - web/package.json - - web/package-lock.json - - .github/workflows/dependency-audit.yml schedule: - cron: "19 3 * * 1" workflow_dispatch: diff --git a/README.md b/README.md index c1fb4de..8c513cd 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ ![SFTGuard confirmatory dashboard](docs/assets/sftguard-confirmatory-dashboard.png) -SFTGuard catches a narrow set of expensive-to-discover pipeline mistakes before -an adapter is released: malformed chat records, conflicting or leaked examples, -credential-shaped text, broken EOS handling, prompt tokens included in loss, and -answer-destroying truncation. It then gates paired base-versus-adapter scores -against explicit target and retention budgets. +I built SFTGuard to catch a narrow set of expensive-to-discover pipeline +mistakes before an adapter is released: malformed chat records, conflicting or +leaked examples, credential-shaped text, broken EOS handling, prompt tokens +included in loss, and answer-destroying truncation. It then gates paired +base-versus-adapter scores against explicit target and retention budgets. It runs locally, emits content-addressed JSON, and returns `PASS`, `FAIL`, or `ABSTAIN`. Missing evidence never becomes a silent pass.