Files
16gagent/test/fixtures/baseline-evolution/threshold-stability-report.json
2026-06-06 10:40:48 +08:00

259 lines
8.5 KiB
JSON

{
"generatedAt": "2026-06-04T19:58:33.249Z",
"thresholds": {
"warn": 20,
"fail": 50
},
"baselineVersions": [
"v1",
"v2",
"v3"
],
"deltaLevels": [
5,
10,
20,
30,
50,
70
],
"results": [
{
"baseline": "v1",
"deltaPct": 5,
"status": "pass",
"blockers": 0,
"warnings": 0,
"blockerDetails": [],
"warningDetails": []
},
{
"baseline": "v1",
"deltaPct": 10,
"status": "pass",
"blockers": 0,
"warnings": 0,
"blockerDetails": [],
"warningDetails": []
},
{
"baseline": "v1",
"deltaPct": 20,
"status": "warn",
"blockers": 0,
"warnings": 2,
"blockerDetails": [],
"warningDetails": [
"Active Candidate Count: baseline=28 → candidate=34 (增加 21.43%,超过警示阈值 20%)",
"Archived Candidate Count: baseline=8 → candidate=10 (增加 25%,超过警示阈值 20%)"
]
},
{
"baseline": "v1",
"deltaPct": 30,
"status": "warn",
"blockers": 0,
"warnings": 5,
"blockerDetails": [],
"warningDetails": [
"Bloc Count: baseline=6 → candidate=8 (增加 33.33%,超过警示阈值 20%)",
"Cycle Count: baseline=7 → candidate=9 (增加 28.57%,超过警示阈值 20%)",
"Candidate Count: baseline=36 → candidate=47 (增加 30.56%,超过警示阈值 20%)",
"Active Candidate Count: baseline=28 → candidate=36 (增加 28.57%,超过警示阈值 20%)",
"Archived Candidate Count: baseline=8 → candidate=10 (增加 25%,超过警示阈值 20%)"
]
},
{
"baseline": "v1",
"deltaPct": 50,
"status": "fail",
"blockers": 1,
"warnings": 4,
"blockerDetails": [
"Cycle Count: baseline=7 → candidate=11 (增加 57.14%,超过严重阈值 50%)"
],
"warningDetails": [
"Bloc Count: baseline=6 → candidate=9 (增加 50%,超过警示阈值 20%)",
"Candidate Count: baseline=36 → candidate=54 (增加 50%,超过警示阈值 20%)",
"Active Candidate Count: baseline=28 → candidate=42 (增加 50%,超过警示阈值 20%)",
"Archived Candidate Count: baseline=8 → candidate=12 (增加 50%,超过警示阈值 20%)"
]
},
{
"baseline": "v1",
"deltaPct": 70,
"status": "fail",
"blockers": 5,
"warnings": 0,
"blockerDetails": [
"Bloc Count: baseline=6 → candidate=10 (增加 66.67%,超过严重阈值 50%)",
"Cycle Count: baseline=7 → candidate=12 (增加 71.43%,超过严重阈值 50%)",
"Candidate Count: baseline=36 → candidate=61 (增加 69.44%,超过严重阈值 50%)",
"Active Candidate Count: baseline=28 → candidate=48 (增加 71.43%,超过严重阈值 50%)",
"Archived Candidate Count: baseline=8 → candidate=14 (增加 75%,超过严重阈值 50%)"
],
"warningDetails": []
},
{
"baseline": "v2",
"deltaPct": 5,
"status": "pass",
"blockers": 0,
"warnings": 0,
"blockerDetails": [],
"warningDetails": []
},
{
"baseline": "v2",
"deltaPct": 10,
"status": "pass",
"blockers": 0,
"warnings": 0,
"blockerDetails": [],
"warningDetails": []
},
{
"baseline": "v2",
"deltaPct": 20,
"status": "warn",
"blockers": 0,
"warnings": 2,
"blockerDetails": [],
"warningDetails": [
"Candidate Count: baseline=38 → candidate=46 (增加 21.05%,超过警示阈值 20%)",
"Archived Candidate Count: baseline=8 → candidate=10 (增加 25%,超过警示阈值 20%)"
]
},
{
"baseline": "v2",
"deltaPct": 30,
"status": "warn",
"blockers": 0,
"warnings": 5,
"blockerDetails": [],
"warningDetails": [
"Bloc Count: baseline=6 → candidate=8 (增加 33.33%,超过警示阈值 20%)",
"Cycle Count: baseline=7 → candidate=9 (增加 28.57%,超过警示阈值 20%)",
"Candidate Count: baseline=38 → candidate=49 (增加 28.95%,超过警示阈值 20%)",
"Active Candidate Count: baseline=30 → candidate=39 (增加 30%,超过警示阈值 20%)",
"Archived Candidate Count: baseline=8 → candidate=10 (增加 25%,超过警示阈值 20%)"
]
},
{
"baseline": "v2",
"deltaPct": 50,
"status": "fail",
"blockers": 1,
"warnings": 4,
"blockerDetails": [
"Cycle Count: baseline=7 → candidate=11 (增加 57.14%,超过严重阈值 50%)"
],
"warningDetails": [
"Bloc Count: baseline=6 → candidate=9 (增加 50%,超过警示阈值 20%)",
"Candidate Count: baseline=38 → candidate=57 (增加 50%,超过警示阈值 20%)",
"Active Candidate Count: baseline=30 → candidate=45 (增加 50%,超过警示阈值 20%)",
"Archived Candidate Count: baseline=8 → candidate=12 (增加 50%,超过警示阈值 20%)"
]
},
{
"baseline": "v2",
"deltaPct": 70,
"status": "fail",
"blockers": 5,
"warnings": 0,
"blockerDetails": [
"Bloc Count: baseline=6 → candidate=10 (增加 66.67%,超过严重阈值 50%)",
"Cycle Count: baseline=7 → candidate=12 (增加 71.43%,超过严重阈值 50%)",
"Candidate Count: baseline=38 → candidate=65 (增加 71.05%,超过严重阈值 50%)",
"Active Candidate Count: baseline=30 → candidate=51 (增加 70%,超过严重阈值 50%)",
"Archived Candidate Count: baseline=8 → candidate=14 (增加 75%,超过严重阈值 50%)"
],
"warningDetails": []
},
{
"baseline": "v3",
"deltaPct": 5,
"status": "pass",
"blockers": 0,
"warnings": 0,
"blockerDetails": [],
"warningDetails": []
},
{
"baseline": "v3",
"deltaPct": 10,
"status": "pass",
"blockers": 0,
"warnings": 0,
"blockerDetails": [],
"warningDetails": []
},
{
"baseline": "v3",
"deltaPct": 20,
"status": "warn",
"blockers": 0,
"warnings": 1,
"blockerDetails": [],
"warningDetails": [
"Cycle Count: baseline=9 → candidate=11 (增加 22.22%,超过警示阈值 20%)"
]
},
{
"baseline": "v3",
"deltaPct": 30,
"status": "warn",
"blockers": 0,
"warnings": 5,
"blockerDetails": [],
"warningDetails": [
"Bloc Count: baseline=7 → candidate=9 (增加 28.57%,超过警示阈值 20%)",
"Cycle Count: baseline=9 → candidate=12 (增加 33.33%,超过警示阈值 20%)",
"Candidate Count: baseline=46 → candidate=60 (增加 30.43%,超过警示阈值 20%)",
"Active Candidate Count: baseline=36 → candidate=47 (增加 30.56%,超过警示阈值 20%)",
"Archived Candidate Count: baseline=10 → candidate=13 (增加 30%,超过警示阈值 20%)"
]
},
{
"baseline": "v3",
"deltaPct": 50,
"status": "fail",
"blockers": 2,
"warnings": 3,
"blockerDetails": [
"Bloc Count: baseline=7 → candidate=11 (增加 57.14%,超过严重阈值 50%)",
"Cycle Count: baseline=9 → candidate=14 (增加 55.56%,超过严重阈值 50%)"
],
"warningDetails": [
"Candidate Count: baseline=46 → candidate=69 (增加 50%,超过警示阈值 20%)",
"Active Candidate Count: baseline=36 → candidate=54 (增加 50%,超过警示阈值 20%)",
"Archived Candidate Count: baseline=10 → candidate=15 (增加 50%,超过警示阈值 20%)"
]
},
{
"baseline": "v3",
"deltaPct": 70,
"status": "fail",
"blockers": 5,
"warnings": 0,
"blockerDetails": [
"Bloc Count: baseline=7 → candidate=12 (增加 71.43%,超过严重阈值 50%)",
"Cycle Count: baseline=9 → candidate=15 (增加 66.67%,超过严重阈值 50%)",
"Candidate Count: baseline=46 → candidate=78 (增加 69.57%,超过严重阈值 50%)",
"Active Candidate Count: baseline=36 → candidate=61 (增加 69.44%,超过严重阈值 50%)",
"Archived Candidate Count: baseline=10 → candidate=17 (增加 70%,超过严重阈值 50%)"
],
"warningDetails": []
}
],
"summary": {
"totalScenarios": 18,
"falsePositives": 0,
"falseNegatives": 0,
"thresholdBoundaryCorrect": {
"at20": true,
"at50": true
},
"conclusion": "✅ Thresholds are stable. No false positives or false negatives detected."
}
}