2ndkauboy/Antispam Bee detection comparison

Replay a comment corpus through the current version-preparation branch and a resolved baseline release of Antispam Bee, and diff the spam/ham verdicts.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Aug 26, 2026
License
None

Pinned Snippet

workflow.ymlSHA-pinned
uses: 2ndkauboy/asb-detection-compare@fae80ff70deaff7c82a94734e4459402d97c951e # v1.9.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
php-versionPHP version to run the comparison on.8.2
baseline-refExplicit baseline tag/ref. When empty, it is resolved from the branch name.""
branchBranch name used to resolve the baseline (defaults to the triggering ref).""
plugin-dirPath to the Antispam Bee checkout / HEAD (defaults to the workspace).""
fail-on-flipsFail the job when there is at least one spam/ham flip.true
workersParallel classifier processes.2
corpus-filePath to a corpus .sql dump (defaults to the bundled fixture).""
corpus-urlURL to download the corpus from (.sql or .sql.gz). Overrides the bundled fixture. Use a secret for release runs.""
corpus-authOptional Authorization header value used when downloading corpus-url (e.g. "Bearer <token>").""
db-hostMySQL host. Use 127.0.0.1 for a service on the runner, or the service name for a container job.127.0.0.1
db-portMySQL port.3306
db-userMySQL root user.root
db-passMySQL root password.root
wp-versionWordPress core version to install. Pin it to keep published baseline snapshots valid across WordPress releases; "latest" tracks the newest.latest
use-baseline-snapshotReuse the verdict snapshot published on the baseline release instead of classifying the baseline again. Falls back to classifying when there is no usable snapshot.true
snapshot-repoRepository whose releases carry the snapshots (default: this repository).""
snapshot-saltOptional extra secret mixed into the snapshot pseudonyms. Must be identical for the run that publishes a snapshot and the runs that consume it.""
corpus-idOverride the computed corpus fingerprint (pins snapshot identity by hand).""
corpus-labelCosmetic segment in the snapshot asset name (auto: "fixture" or "private").""
max-flips-listedCap on how many individual flips are listed in the report.50
lang-apiRun a local franc-based language service and compare the LangSpam rule against it. Without this the rule stays off, because it would otherwise call a public API once per eligible comment.false
lang-api-workersProcesses for that service. The classifier calls it synchronously, so this should match `workers`; defaults to it.""
options-fileOption fixture to apply to both builds. Defaults to the bundled 3.x set, or its LangSpam variant when `lang-api` is on.""
buffer-poolInnoDB buffer pool to request from the database before classifying. The container default of 128 MB is far smaller than the working set and causes a severe slowdown part-way through a full-corpus run. Empty to leave the server untouched.1G
github-tokenToken used to look up the baseline snapshot on the release.${{ github.token }}
namedescription
baselineThe baseline tag the branch was compared against.
baseline-shaThe commit the baseline resolved to.
baseline-source"release-asset" when a published snapshot was reused, "classified" otherwise.
flipsNumber of spam/ham decision flips between baseline and HEAD.
comparedNumber of comments present on both sides.
only-in-baselineComments classified by the baseline but not by HEAD.
only-in-headComments classified by HEAD but not by the baseline.
reason-diffsSame decision, different rule — informational.
snapshot-filePath to this run's own verdict snapshot, ready to be uploaded as an artifact and later attached to the release. Empty when the snapshot may not be published.
report-markdownPath to the comparison report rendered as Markdown, ready to post as a pull-request comment. Carries an `asb-detection-compare` HTML marker so a comment can be updated in place rather than posted again per run.
baseline-snapshot-filePath to the baseline's verdict snapshot, when the baseline was a tag and had to be classified in this run. Attach it to that tag's release so later runs can reuse it. Empty when the baseline was already published or is a branch.