117 lines
3.3 KiB
JSON
117 lines
3.3 KiB
JSON
{
|
|
"findings": [
|
|
{
|
|
"expected": "A small buildings partition remains partial; a roads bbox cannot complete buildings coverage.",
|
|
"id": "P1-COV-001",
|
|
"observed": {
|
|
"fully_covered": true,
|
|
"matched_dataset_ids": [
|
|
"00000000-0000-4000-8000-000000000001"
|
|
]
|
|
},
|
|
"reproduced": true,
|
|
"severity": "critical",
|
|
"source": "backend/app/services/coverage_registry_service.py:481-505"
|
|
},
|
|
{
|
|
"expected": "A 100 metre buffer is projected to a metric CRS and spans roughly hundreds of metres.",
|
|
"id": "P1-CRS-001",
|
|
"observed": {
|
|
"bounds_epsg4326": [
|
|
-95.0,
|
|
-49.0,
|
|
105.0,
|
|
151.0
|
|
],
|
|
"longitude_span_degrees": 200.0
|
|
},
|
|
"reproduced": true,
|
|
"severity": "critical",
|
|
"source": "backend/app/services/vector_operations_service.py:179-203"
|
|
},
|
|
{
|
|
"expected": "Non-WGS84 input is transformed to EPSG:4326 or rejected before persistence.",
|
|
"id": "P1-CRS-002",
|
|
"observed": {
|
|
"stored_coordinates": [
|
|
150000.0,
|
|
210000.0
|
|
],
|
|
"stored_srid": 4326
|
|
},
|
|
"reproduced": true,
|
|
"severity": "critical",
|
|
"source": "backend/app/services/vector_feature_service.py:271-299"
|
|
},
|
|
{
|
|
"expected": "Only server-attested source identities can produce authoritative operational coverage.",
|
|
"id": "P1-AUTH-001",
|
|
"observed": {
|
|
"caller_controlled_source_name": "grb",
|
|
"coverage_status": "operational",
|
|
"reported_authority": "authoritative"
|
|
},
|
|
"reproduced": true,
|
|
"severity": "critical",
|
|
"source": "backend/app/api/routes/datasets.py:142-163; backend/app/services/coverage_registry_service.py:463-559"
|
|
},
|
|
{
|
|
"expected": "Validation scope is bound to immutable geometry/source/checksum evidence.",
|
|
"id": "P1-AI-001",
|
|
"observed": {
|
|
"accepted": true,
|
|
"area_name": "Mol validation bypass",
|
|
"geometry_bounds": [
|
|
-75.0,
|
|
35.0,
|
|
-74.9,
|
|
35.1
|
|
]
|
|
},
|
|
"reproduced": true,
|
|
"severity": "critical",
|
|
"source": "backend/app/services/detection_service.py:223-232"
|
|
},
|
|
{
|
|
"expected": "Renaming an Area cannot change its legal coverage-zone identity.",
|
|
"id": "P1-COV-002",
|
|
"observed": {
|
|
"canonical": {
|
|
"outside": false,
|
|
"zones": [
|
|
"flanders"
|
|
]
|
|
},
|
|
"renamed_same_geometry": {
|
|
"outside": true,
|
|
"zones": []
|
|
}
|
|
},
|
|
"reproduced": true,
|
|
"severity": "high",
|
|
"source": "backend/app/services/coverage_registry_service.py:56-65,425-447"
|
|
},
|
|
{
|
|
"expected": "PATCH /areas/{area_id} either validates and applies geometry or rejects the field.",
|
|
"id": "P1-API-001",
|
|
"observed": {
|
|
"geometry_silently_ignored": true,
|
|
"parsed_payload": {
|
|
"crs": null,
|
|
"name": "Renamed"
|
|
}
|
|
},
|
|
"reproduced": true,
|
|
"severity": "high",
|
|
"source": "backend/app/schemas/area.py:15-17; backend/app/services/area_service.py:154-171"
|
|
}
|
|
],
|
|
"purpose": "Read-only deterministic reproductions of Phase-1 contract violations.",
|
|
"schema_version": 1,
|
|
"summary": {
|
|
"all_reproduced": true,
|
|
"reproduced": 7,
|
|
"total": 7
|
|
}
|
|
}
|