REPOSITORY
metafarmers/fruit-robot-validation Private
[참조 MVP] 적과·적심 로봇 통합검증 — 인지·접근·작업·복귀 시나리오와 제품 기준선의 재현성을 확인하는 참조 검증 자산입니다.
https://git.agrithing.ai/metafarmers/fruit-robot-validation.git 7b9733d feat: 적과·적심 로봇 통합검증 구체 MVP 구현
f93f075 ci: add static dynamic and evidence gates
3ea79da feat: add executable institution reference MVP
a4765d3 docs: define product role and interface contract
2 items · feat/concrete-mvp-v2
·/ asw_component/component.py
python · 1.1 KB · fe9f6c4 Download
from __future__ import annotationsREQUIRED = set(["FRUIT-THIN-01","FRUIT-PINCH-01","FRUIT-SAFE-01"])def execute(payload: dict) -> dict: results = [] seen = set() for scenario in payload.get("scenarios", []): scenario_id = str(scenario.get("id", "")) seen.add(scenario_id) actual, limit = float(scenario.get("actual", 0)), float(scenario.get("limit", 0)) operator = scenario.get("operator") passed = actual <= limit if operator == "lte" else actual >= limit if operator == "gte" else False results.append({"id": scenario_id, "actual": actual, "limit": limit, "operator": operator, "passed": passed}) missing = sorted(REQUIRED - seen) passed_count = sum(item["passed"] for item in results) accepted = bool(results) and not missing and passed_count == len(results) return {"component": "metafarmers/fruit-robot-validation", "accepted": accepted, "status": "VERIFIED" if accepted else "BLOCKED", "target": "validation", "verdict": "PASS" if accepted else "FAIL", "passed": passed_count, "total": len(results), "missingRequired": missing, "results": results}