fai-xunit-test — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited fai-xunit-test (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Create maintainable .NET tests that balance speed, isolation, and behavioral confidence.
| Pattern | Use Case |
|---|---|
| Fact | Single deterministic scenario |
| Theory + InlineData | Parameterized coverage |
| Collection fixtures | Shared expensive setup |
| WebApplicationFactory | API integration tests |
public class PriceServiceTests
{
[Theory]
[InlineData(1000, 0.10, 900)]
[InlineData(2000, 0.25, 1500)]
public void ApplyDiscount_ReturnsExpectedValue(decimal amount, decimal rate, decimal expected)
{
var service = new PriceService();
var result = service.ApplyDiscount(amount, rate);
Assert.Equal(expected, result);
}
}var repository = new Mock<IOrderRepository>();
repository.Setup(r => r.GetByIdAsync("A1")).ReturnsAsync(new Order("A1"));public class OrdersApiTests : IClassFixture<WebApplicationFactory<Program>>
{
private readonly HttpClient _client;
public OrdersApiTests(WebApplicationFactory<Program> factory)
{
_client = factory.CreateClient();
}
[Fact]
public async Task GetOrder_Returns200()
{
var response = await _client.GetAsync("/api/orders/A1");
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}
}| Check | Pass Condition |
|---|---|
| Unit test speed | Fast local execution |
| Determinism | No random/fuzzy timing failures |
| Coverage | Critical paths covered |
| Integration confidence | Key endpoints validated |
| Issue | Cause | Fix |
|---|---|---|
| Flaky tests | Time/network dependence | Use fake clock and local test doubles |
| Slow suite | Too many integration tests | Move logic checks to unit layer |
| Brittle tests | Over-mocking internals | Assert outcomes, not internals |
# Example verification sequence
npm run lint
npm test
npm run build{
"quality_gate": {
"required": true,
"min_score": 0.8,
"block_on_failure": true
}
}| Control | Requirement |
|---|---|
| Secret handling | No plaintext secrets in repo |
| Access model | Least privilege role assignments |
| Logging | Redact sensitive data before persistence |
| Auditability | Keep immutable trace of critical actions |
| Symptom | Likely Cause | Recommended Action |
|---|---|---|
| Validation gate failures | Threshold too strict or wrong baseline | Recalibrate using a fixed reference dataset |
| Unexpected regressions | Missing scenario coverage | Add targeted regression tests and rerun |
| Production-only issues | Environment mismatch | Diff environment config and identity settings |
| Slow recovery during incidents | Unclear ownership/runbook steps | Add explicit owner and sequence in runbook |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.