Repository navigation
State what stays compatible, and test each promise - #51
Merged
Merged
Conversation
docs/COMPATIBILITY.md says what holds from one version to the next: the commands, flags and exit codes, the report format, the scoring weights and finding IDs, and the GitHub Action's inputs and outputs. It names verify, submit and benchmark as experimental and says how a score can still change. tests/test_compatibility.py checks each promise. Reports now record agentsec_version beside probe_version, so a change in scoring is visible in the report. --baseline and agentsec history note a difference in either version. A difference with nothing worse passes, as the gate always has. The README and the gate's note said it failed, and now match the code. JSON Schemas for the blast-radius report and the assert result ship in agentsec/data/, and every report in examples/ is checked against the first. Also adds agentsec --version, the experimental labels in help, PyPI classifiers, and jsonschema as a test dependency. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
| def _constructed(): | ||
| """Each finding id the scorer can emit, with the severity argument as written.""" | ||
| found = {} | ||
| for m in re.finditer(r'_f\(\s*"([A-Z]+-\d{3})",\s*(?:\(?\s*f?"(?:[^"\\]|\\.)*"\s*)+\)?,\s*([^,]+),', SCORING_SRC): |
This was referenced Nov 10, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Groundwork for 1.0: a written compatibility policy, with a test behind each promise in it.
docs/COMPATIBILITY.mdcovers:schema_version1, where fields can be added but not removed, renamed or retypedverify,submitandbenchmarkare named experimental, and their help text says so. Human-readable output, the JSON ofmatrix,combineandverify, and the Python modules are outside the promise.Tests.
tests/test_compatibility.pychecks every report inexamples/against the new schema, and checks that the schema declares every field they use. It also covers freshly written reports andassertresults, the weights, which findings have variable severity, exit codes, the Action's inputs and outputs, and each stable command's flags againsttests/fixtures/cli_surface.json. A missing command or flag fails. A new flag has to be added to the fixture.Report changes. Reports now record
agentsec_versionbesideprobe_version, because scoring lives in the package and a scoring change was not visible in a report. Reports written by earlier versions do not have the field, and--baselinetreats its absence as no change.--baselineandagentsec historynote when either version differs.A correction. The README and the gate's own note said a probe version difference fails
--baseline. Since the gate was added in #6, the code has failed only when a finding is new or more severe, and passed with a note otherwise. The README and the note now describe that, and the policy promises it.Also: JSON Schemas for the blast-radius report and the
assertresult inagentsec/data/,agentsec --version, PyPI classifiers (Development Status 4 - Beta), andjsonschemaas a test dependency. Locally 512 tests pass and 13 skip without network.🤖 Generated with Claude Code