From 5187a7635b93f6b965b3535f350ef0d5871ebc31 Mon Sep 17 00:00:00 2001 From: hyeokjun32 Date: Mon, 1 Jun 2026 16:43:25 +0900 Subject: [PATCH] docs: clarify Lab role boundaries --- README.ko.md | 10 ++++++++++ README.md | 10 ++++++++++ tests/test_ci_doc_guards.py | 29 +++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) diff --git a/README.ko.md b/README.ko.md index 201622e..e0524ca 100644 --- a/README.ko.md +++ b/README.ko.md @@ -37,6 +37,16 @@ InferEdgeOrchestrator operation feed - Runtime Intelligence smoke chain: Orchestrator operation context → EdgeEnv telemetry history/regression → AIGuard deterministic evidence → Lab-owned deployment risk report - Local Studio: inference validation을 브라우저에서 확인하는 local-first workflow UI +## 역할 경계 한눈에 보기 + +| 영역 | Lab이 담당하는 일 | Lab이 담당하지 않는 일 | +|---|---|---| +| Validation decision | compare/evaluate/report/API/job workflow와 최종 `deployment_decision`을 생성한다. | Forge build, Runtime execution, EdgeEnv registry, AIGuard diagnosis policy, Orchestrator scheduling을 소유하지 않는다. | +| Forge / Runtime evidence | metadata, manifest, worker response, Runtime result, validation evidence를 ingest하고 정렬한다. | `metadata.json`, `manifest.json`, Runtime `result.json`, compare output contract를 임의 변경하지 않는다. | +| EdgeEnv regression evidence | comparability, regression, telemetry coverage, replay gap을 deployment risk context로 표시한다. | EdgeEnv registry/comparability ownership을 재계산하거나 comparability-first gate를 우회하지 않는다. | +| AIGuard / Orchestrator evidence | optional deterministic diagnosis와 supplemental operation context를 Lab-owned report에 보존한다. | AIGuard/Orchestrator를 final decision owner로 만들거나 production remote execution/control-plane readiness를 주장하지 않는다. | +| Local Studio / API | local-first evidence replay, in-memory job, reviewer workflow UI를 제공한다. | production SaaS, DB/queue/auth/billing/upload service, cloud dashboard가 되지 않는다. | + ## What Makes InferEdge Different? InferEdge는 단순 benchmark tool이 아닙니다. diff --git a/README.md b/README.md index 5d3f31a..b3c85bb 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,16 @@ Language: English | [한국어](README.ko.md) - Runtime Intelligence smoke chain: Orchestrator operation context -> EdgeEnv telemetry history/regression -> AIGuard deterministic evidence -> Lab-owned deployment risk report - Local Studio: interactive workflow UI for inference validation +## Role Boundary At A Glance + +| Area | Lab owns | Lab does not own | +|---|---|---| +| Validation decision | Compare/evaluate/report/API/job workflow and final `deployment_decision` | Forge build, Runtime execution, EdgeEnv registry, AIGuard diagnosis policy, or Orchestrator scheduling | +| Forge / Runtime evidence | Ingests and aligns metadata, manifest, worker response, Runtime result, and validation evidence | Mutate `metadata.json`, `manifest.json`, Runtime `result.json`, or compare output contracts | +| EdgeEnv regression evidence | Renders comparability, regression, telemetry coverage, and replay gaps as deployment risk context | Recompute EdgeEnv registry/comparability ownership or bypass the comparability-first gate | +| AIGuard / Orchestrator evidence | Preserves optional deterministic diagnosis and supplemental operation context in Lab-owned reports | Make AIGuard/Orchestrator final decision owners or claim production remote execution/control-plane readiness | +| Local Studio / API | Provides local-first evidence replay, in-memory jobs, and reviewer workflow UI | Become production SaaS, DB/queue/auth/billing/upload service, or cloud dashboard | + ## What Makes InferEdge Different? InferEdge is not a benchmark tool. diff --git a/tests/test_ci_doc_guards.py b/tests/test_ci_doc_guards.py index 0fc10e1..384e891 100644 --- a/tests/test_ci_doc_guards.py +++ b/tests/test_ci_doc_guards.py @@ -45,3 +45,32 @@ def test_validate_changed_files_fails_for_unexpected_tracked_file(): assert "unexpected tracked files" in str(exc_info.value) assert "Roadmap.md" in str(exc_info.value) + + +def test_readmes_expose_lab_role_boundaries(): + root = Path(__file__).resolve().parents[1] + readme = (root / "README.md").read_text(encoding="utf-8") + readme_ko = (root / "README.ko.md").read_text(encoding="utf-8") + + assert "Language: English | [한국어](README.ko.md)" in readme + assert "언어: [English](README.md) | 한국어" in readme_ko + + for required in [ + "## Role Boundary At A Glance", + "final `deployment_decision`", + "Mutate `metadata.json`, `manifest.json`, Runtime `result.json`", + "bypass the comparability-first gate", + "Make AIGuard/Orchestrator final decision owners", + "production SaaS, DB/queue/auth/billing/upload service, or cloud dashboard", + ]: + assert required in readme + + for required in [ + "## 역할 경계 한눈에 보기", + "최종 `deployment_decision`", + "`metadata.json`, `manifest.json`, Runtime `result.json`", + "comparability-first gate를 우회하지 않는다", + "AIGuard/Orchestrator를 final decision owner로 만들거나", + "production SaaS, DB/queue/auth/billing/upload service, cloud dashboard", + ]: + assert required in readme_ko