Assay.Net
0.2.0
See the version list below for details.
dotnet add package Assay.Net --version 0.2.0
NuGet\Install-Package Assay.Net -Version 0.2.0
<PackageReference Include="Assay.Net" Version="0.2.0" />
<PackageVersion Include="Assay.Net" Version="0.2.0" />
<PackageReference Include="Assay.Net" />
paket add Assay.Net --version 0.2.0
#r "nuget: Assay.Net, 0.2.0"
#:package Assay.Net@0.2.0
#addin nuget:?package=Assay.Net&version=0.2.0
#tool nuget:?package=Assay.Net&version=0.2.0
Assay.Net
The .NET reference implementation of AVP — the Acceptance Verification Protocol. The runtime sibling of the static doctor: it manufactures the verifier an LLM lacks, turning "is this feature done?" into "did the criteria pass?". Standalone, like xUnit.
AVP is the protocol — the language-neutral concepts (subject, criterion, oracle,
condition, verdict). Assay.Net is this package: AVP for .NET backends, a thin layer over the
neutral catalog that runs catalog-driven acceptance archetypes over a real subject (an HTTP
backend) and emits an actionable Verdict + AcceptanceScore.
It is standalone: it knows nothing of any framework. AeroFortress.Framework depends on AVP,
never the reverse — the static doctor recognizes the [AVP("id")] attribute by name to enforce that
every [Verify]/[Critical]/[Journey] production element has a matching proof.
Install
dotnet add package Assay.Net
Use
using Assay.Net;
using Assay.Net.Archetypes;
// The neutral catalog ships inside the package — no path needed.
var catalog = Catalog.LoadDefault();
var subject = new MoneyIntegritySubject(baseUrl, "/split", platformBps: 1500);
var verdict = await Runner.Run(catalog, new MoneyIntegrity(), "booking-split", subject);
// A criterion's proof is calibrated: it must PASS the correct backend AND FAIL the vulnerable one.
foreach (var r in verdict.Results)
Console.WriteLine($"{r.CriterionId}: {r.Status} — {r.Reason}");
Console.WriteLine($"acceptanceScore = {verdict.AcceptanceScore}");
Mark a verification method as the proof of a catalog criterion with [AVP("id")] — the [Fact] of
AVP, and the AVP half of the cross-layer bridge:
[AVP("split-invariant")]
[Fact]
public async Task split_is_exact_to_the_cent() { /* PASS good ∧ FAIL the escape */ }
The catalog
Catalog.LoadDefault() reads the neutral catalog.json embedded in this package (the behaviour
catalog). To verify against a specific or newer catalog, Catalog.Load(path) reads any
protocol/catalog.json from disk. The catalog is the shared source of truth both the JS
(@aerofortress/assay) and .NET implementations conform to — this adapter reads it, it never owns it.
License
MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.