Spaces:
Running
Running
Commit ·
5e23899
1
Parent(s): a744d19
Use explicit risk gates for SAFE approval
Browse files- CHECKSUMS.sha256 +1 -1
- app/core/analyzer.py +5 -2
CHECKSUMS.sha256
CHANGED
|
@@ -10,7 +10,7 @@ ad56ac369ef2949200f6d45eaeeff4d77c9f5f780780975434c9e4c5aafda29b RELEASE_NOTES_
|
|
| 10 |
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 app/__init__.py
|
| 11 |
c4891fc509f38fb94d9006be910c18b7573645c11da3532c38356302d99c7e55 app/config.py
|
| 12 |
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 app/core/__init__.py
|
| 13 |
-
|
| 14 |
48c155a14807a76713edb7579076fa877587e5cff9e35f8f7d0fef35d821396f app/core/calibration.py
|
| 15 |
ecc608094af12bc17a728263a7e963bde91ea26ac2a8715101e7493735f95453 app/core/competitions.py
|
| 16 |
0545a029d7488a10cc6d3dd8d2c69c38d5b6b3246ceb34b035ed0f2b77570e49 app/core/history.py
|
|
|
|
| 10 |
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 app/__init__.py
|
| 11 |
c4891fc509f38fb94d9006be910c18b7573645c11da3532c38356302d99c7e55 app/config.py
|
| 12 |
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 app/core/__init__.py
|
| 13 |
+
f3c348363a4519ac6ab7c3a98045747e961379b62b391157cbd9db10d23be54b app/core/analyzer.py
|
| 14 |
48c155a14807a76713edb7579076fa877587e5cff9e35f8f7d0fef35d821396f app/core/calibration.py
|
| 15 |
ecc608094af12bc17a728263a7e963bde91ea26ac2a8715101e7493735f95453 app/core/competitions.py
|
| 16 |
0545a029d7488a10cc6d3dd8d2c69c38d5b6b3246ceb34b035ed0f2b77570e49 app/core/history.py
|
app/core/analyzer.py
CHANGED
|
@@ -299,6 +299,8 @@ def analyze_events(
|
|
| 299 |
reasons.append("mercado muito disperso para a seleção")
|
| 300 |
if data_quality < 0.52:
|
| 301 |
reasons.append("qualidade de dados insuficiente")
|
|
|
|
|
|
|
| 302 |
if calibrated_p < min_probability:
|
| 303 |
reasons.append("probabilidade abaixo do filtro")
|
| 304 |
if conservative < min_conservative_probability:
|
|
@@ -319,8 +321,9 @@ def analyze_events(
|
|
| 319 |
reasons.append("seleção mudou desde o último scan")
|
| 320 |
if version_conflict:
|
| 321 |
reasons.append("evento já rastreado por uma versão anterior")
|
| 322 |
-
|
| 323 |
-
|
|
|
|
| 324 |
|
| 325 |
row = {
|
| 326 |
"side": side,
|
|
|
|
| 299 |
reasons.append("mercado muito disperso para a seleção")
|
| 300 |
if data_quality < 0.52:
|
| 301 |
reasons.append("qualidade de dados insuficiente")
|
| 302 |
+
if reliability < 0.60:
|
| 303 |
+
reasons.append("confiabilidade combinada abaixo do mínimo")
|
| 304 |
if calibrated_p < min_probability:
|
| 305 |
reasons.append("probabilidade abaixo do filtro")
|
| 306 |
if conservative < min_conservative_probability:
|
|
|
|
| 321 |
reasons.append("seleção mudou desde o último scan")
|
| 322 |
if version_conflict:
|
| 323 |
reasons.append("evento já rastreado por uma versão anterior")
|
| 324 |
+
# SafeScore is a transparent ranking/label. Approval is controlled by
|
| 325 |
+
# the explicit safety gates above, avoiding a second, opaque veto over
|
| 326 |
+
# candidates that already satisfy every measurable requirement.
|
| 327 |
|
| 328 |
row = {
|
| 329 |
"side": side,
|