콘텐츠로 이동

FDAI Console 대화

서버 측 적용 승인을 거치는 타입 선택 읽기는 대화에 승인 화면이나 암묵적 권한을 추가하지 않습니다. 후보 결과에는 현재 적격 레지스트리 상태와 인증된 정확한 근거가 필요하며 전제 조건이 없으면 보류합니다. 로컬 소비자 테스트는 Console 전면 경로, 전체 시작 구성, 데이터베이스 또는 실제 모델 검증이 아닙니다.

현재 분석기 발견된 문제는 Incident 생성과 별개로 인증된 Reader 조회 경로와 Console 웹 알림 계약을 사용합니다. 가용성 기대 상태는 구조화된 정책을 검증한 뒤, 기존 Owner 전용 Runtime Settings 경로에서 버전을 비교하고 감사 기록을 남겨 저장합니다. 발견된 문제 조회, 브라우저 채널 선택이나 기대 상태 저장은 리소스 실행, 승인 또는 보고 권한을 부여하지 않습니다.

운영자가 CLI, Teams, Slack, 웹 채팅으로 FDAI에 질문하고 요청하는 방법을 설명합니다. 별도 제품이 아닌 FDAI Console의 대화형 표면으로서 계층 아키텍처, 도구 카탈로그, LLM 계층, 세션 영속성, 도구별 RBAC, 안전 불변식, 롤아웃 상태를 정의합니다. FDAI Console은 읽기 전용 제품이 아니라 통제된 운영자 인터페이스입니다. 서버가 인가한 타입 지정 요청을 제출할 수 있지만, 관리 리소스에 대한 실행은 브라우저 밖에서 이루어지며 고위험 작업에는 계속 사람 승인이 필요합니다. 모듈 분리 후에도 제안의 주장 타입은 목적별 담당 모델에 유지합니다. 공개 보증 파사드, 생성된 CQAS 인벤토리, 정본 시각 매핑을 보존하며 요청 또는 실행 권한은 바뀌지 않습니다. 런타임 카탈로그 로더를 분리하더라도 파사드의 가져오기 이름을 보존하며, 사람 보고 관계, 승인 경로, RBAC 또는 Console 요청 계약은 변경하지 않습니다. Rule 활성화 테스트를 담당 Core 및 Operator 서비스 테스트 묶음에 등록하는 변경은 테스트 선택만 바꾸며 보고 관계나 승인 권한을 부여하지 않습니다. Console 카탈로그나 deck 표현 계약을 변경한 뒤 질문은행과 CQAS 산출물을 다시 생성하는 작업은 원본 결속값만 갱신하며 질문 신원, 보고 권한 또는 대화 실행 권한을 바꾸지 않습니다. 규칙 카탈로그의 규칙 열에는 출처 계층과 규칙 ID가 정확히 일치하는 상세 정보의 읽기 쉬운 제목을 표시합니다. 제목이 없거나 공백뿐이면 규칙 ID를 표시합니다. 목록의 표시만 바꾸며 상세 패널, 출처 정보, 다른 열, 필터링, 선택 동작과 정규 ID는 그대로 유지합니다. ID 및 액세스 검토 컨트롤은 서버가 검증한 principal을 사용해 제출 전에 자기 검토를 비활성화합니다. 다른 Owner는 추가 검토 메모 없이 요청을 결정할 수 있습니다. 원래 요청 사유, 검토자 신원, 결정 및 시각은 계속 감사 기록에 남으며 승인만으로 공급자를 변경하지 않습니다. Push 방향 (시스템 → 사람) 알림은 channels-and-notifications.md에 있고, 운영 화면과 요청은 console-operations-ko.md에 정의되며 SPA는 project-structure.md § 콘솔/에 있습니다. 근거 출처 이력, 스트림 복구, localization 및 아키텍처 지도 복원력은 console-evidence-and-resilience-ko.md가 소유합니다. Login 초기화는 역할이 할당된 principal의 접근을 검증된 App 역할에서 도출하고 선택적 access-request 변환 결과를 요구하지 않으며, 역할이 없을 때 해당 변환 결과가 사용 불가이면 접근을 계속 차단합니다. 로컬 개발의 독립 서비스 어댑터는 모델 서술에만 Azure CLI를 사용할 수 있고 provider-read 또는 실행 권한은 없습니다. 온톨로지는 하나의 exact-release 레지스트리 변환 결과에서 검토된 의미 모델과 카탈로그 토폴로지를 제공합니다. 런타임 인스턴스는 보안 receipt를 기반으로 하는 별도의 목적 범위 컨텍스트 스냅샷에만 표시됩니다. 인스턴스 화면은 출처 후보 회계, 범위가 제한된 응답 수, 집중 그래프 항목, Inspector 전용 관계, IAM 전용 관계를 분리하여 레이아웃 생략이 프로바이더 근거 누락처럼 보이지 않게 합니다. Fleet 출처 행은 (source, scope_digest) 신원을 사용하고 각 불투명 범위 다이제스트를 표시하며 여러 클러스터 상태를 행 하나로 축약하지 않습니다. 화면이 보이는 동안 인증된 인벤토리 무효화 SSE 스트림을 사용하고 커밋된 watermark를 받으면 선택한 인스턴스를 즉시 다시 검증합니다. 교차 출처 재현은 범위가 제한된 Last-Event-ID 요청 헤더를 명시적으로 허용합니다. SSE를 사용할 수 없으면 단조 증가 시계를 기준으로 다음 15초 fallback 폴링까지 남은 시간을 표시하며 브라우저 복귀 시에도 즉시 다시 확인합니다. 새로고침 실패 시 마지막으로 검증된 응답을 유지하고 프로바이더 상태를 텍스트가 있는 의미 배지로 표시합니다. SSE와 폴링은 인벤토리 관측을 대체하거나 관계 완전성을 높이지 않습니다. 인시던트 주의 컨트롤은 마운트 중 제출하지 않으며, 명시적으로 클릭할 때마다 인시던트에 결속된 새 대화를 열고, 증적에 결속된 플래너 중단 시 모델 연결 또는 의미 런타임 복구 단계를 현지화해 표시합니다. 서버 검증 결과가 있으면 참조가 0개인 경우까지 그 근거 참조만 인용 출처로 사용하며, 검증 결과가 없을 때만 화면 맥락을 인용합니다.

Workflow Builder 저장은 이제 커밋된 Operator 레코드를 반환합니다. 비공개 초안과 바인딩은 영속 리비전을 포함하고 요청 principal 의 Mine 또는 My automations projection 에만 나타나며, Built-in 정의는 계속 카탈로그에서 시드되고 읽기 전용으로 유지됩니다. 로컬 Console은 다른 출처에서 Operator API를 호출하므로, Operator의 CORS 정책은 리비전을 확인하는 모든 변경 요청이 보내는 If-Match 헤더를 허용합니다. 허용하지 않으면 브라우저 사전 요청이 Operator에 도달하기 전에 이 저장을 차단합니다. 커밋된 리비전은 X-FDAI-Revision 응답 헤더로 전달되며, Operator의 CORS 정책은 이 헤더를 노출합니다. Console은 이 헤더에서 초안 리비전을 읽고, 헤더가 없으면 저장을 실패로 처리합니다. 배포된 Console은 api://<fdai-api-guid>/access 범위를 요청하지만, Operator와 Document Ingestion API는 발급된 v2 액세스 토큰을 fdai-api 클라이언트 ID로 검증합니다. 이 값이 토큰의 aud이기 때문입니다. 배포는 이 클라이언트 ID를 오디언스로 기록하므로 로그인이 잘못된 오디언스로 실패하지 않습니다. 테넌트 API, approval bot, 사람 역할 그룹은 계속 공유합니다. 각 설치는 완전한 대상 바인딩에서 자신의 Console SPA 등록을 파생하므로 해당 배포 runner는 그 설치의 Static Web Apps redirect와 고정된 loopback redirect만 소유합니다. redirect 등록은 남아 있는 legacy SPA 이름 또는 정확한 대상 바인딩 SPA 이름만 허용하며, 그 밖의 표시 이름은 Graph 쓰기 전에 실행을 중단합니다. Console 텍스트는 WCAG 2.1 AA 대비를 충족합니다. 보조 텍스트와 상태 텍스트 역할은 각 표면에서 4.5:1 이상을 유지합니다. 표의 행 버튼은 세부 영역이 렌더링된 동안에만 aria-controls로 그 영역을 참조하며, 가로로 스크롤될 수 있는 표는 Scope 축 표처럼 포커스할 수 있는 이름 있는 영역을 선택적으로 사용합니다. 등록된 55개 경로 전체를 대상으로, 실행 중인 Console에 동일한 CSS를 주입하여 인증된 Browser Entra axe-core 점검을 한 차례 수행해 이 규칙이 해결하는 대비 문제를 찾았습니다. aria-controls 변경은 단위 테스트로 확인하고, 스크롤 영역 선택 사용에는 아직 자동 테스트가 없으며, 사람의 보조 기술 검토는 별도입니다. 지식 > GitHub는 이제 통제된 읽기 전용 연결 절차를 제공합니다. 변경 컨트롤은 SPA ID 토큰이 아니라 /iam/self가 반환한 현재 사용자의 서버 검증 역할을 사용합니다. IAM 조회가 실패하거나 사용자 신원이 일치하지 않으면 변경을 허용하지 않습니다. Owner는 별칭, 저장소 위치, 자격 증명 참조 및 예상 버전을 제출합니다. HTTP 202는 검증 완료가 아닌 대기 상태를 의미합니다. 공급자 검증 후 명시적인 새로 고침으로 Core가 저장한 출처 정보를 읽습니다. 새 소스의 스캔은 별도 Owner 활성화 요청 전까지 비활성 상태입니다. 지식 연결 해제는 독립적으로 부여된 스캔 권한을 유지합니다. Console은 자격 증명 값을 받거나 색인 완료를 주장하거나 표시 데이터 준비 상태를 소스 접근 권한으로 바꾸지 않습니다.

의미 결과 핸들 참조는 Core가 발급한 불투명 토큰만 영속 턴과 함께 보관하고 다음 의미 요청에서 최근 참조를 최대 네 개까지 돌려보냅니다. Operator에 행 본문을 노출하거나 사람 보고 경로를 바꾸거나 Console 실행 권한을 부여하지 않습니다. 생성된 계약 view가 롤아웃에 안전한 핸들 참조 스키마 버전을 추가할 수는 있지만, 브라우저와 Operator는 여전히 행 신원, 행 본문 또는 모델에 보이는 핸들 payload를 받지 않습니다. Operator Rule 점검 결과 요약은 분모를 T0 디스패치에서 도출하는 Forseti의 최신 완전한 버전 2 baseline 커버리지와 그 커버리지가 다이제스트하는 결과에서만 평가된 Console 상태를 수락합니다. 버전 1 완료 기록만으로는 더 이상 인정하지 않습니다. 커버리지가 불완전하면 제한 코드와 함께 평가되지 않음으로 반환하고, 저장된 완전한 요약은 더 새 세대가 완료될 때까지 읽을 수 있습니다. Controls 상세는 활성 규칙 집합에 없는 규칙처럼 각 프레임워크 요구 사항의 서버 소유 제한 코드를 읽기 쉬운 영어와 한국어로 보여 줍니다. Promotion gates 화면은 측정된 준비 상태 표시 데이터와 영속 승격 레지스트리를 결합하고 operator_override 모드, 운영자 증언 게이트 스냅샷, 읽기 전용 권한 출처를 표시하지만 승인이나 실행 권한은 부여하지 않습니다. 또한 별도의 영속 capability_recall: 레코드를 결합하고 ActionType 신원을 검증하며, 활성 recall을 shadow로 강제하고 해당 행을 승격 준비 완료 수에서 제외한 뒤 범위가 제한된 recall 사유를 표시합니다. 거버넌스의 기능 카탈로그는 FDAI가 선언한 기능을 보여 주는 읽기 전용 디렉터리입니다. 행에서 대화형 컨트롤이 아닌 부분을 선택하면 인접한 상세 패널이 열리고, 기능 ID는 명시적인 키보드 버튼으로 유지됩니다. 기본 목록에는 신원, 범주, 부작용 클래스, 필요 역할만 표시하고 페이지당 선언을 20개로 제한하며 검색, 필터, 정렬, 페이지, 선택 상태를 URL에 보존합니다. 상세 패널은 카탈로그 선언을 런타임 가용성, 프로바이더 바인딩, 실행 권한과 구분합니다. 선언은 누락된 런타임 측정을 채우거나 실행 권한을 부여하지 않습니다. 현재 principal의 최소 역할 충족 여부는 서버가 검증한 IAM 변환 결과에서만 가져오며 이 조회에 실패하면 사용할 수 없는 상태로 유지합니다. 기능별 링크는 기존 Console에서 가장 구체적인 화면으로 이동합니다. 변경 부작용이 있는 선언은 별도의 승격 게이트 화면에도 연결하지만 ActionType 매핑을 주장하지 않습니다. 카탈로그 구현 형태, 공식 출처, 원본 참조, 구현 참조는 보조 출처 세부 정보로 유지합니다. 정책 관리도 제품 프로필로 게이트됩니다. Operator API는 canonical 제품 프로필이 policy-administration 추가 기능을 선택할 때만 POST /policy/revisions를 등록하고, 이 경로는 Mimir에 타입 지정 요청만 게시합니다. 프로필 JSON이 없거나 잘못되면 경로가 없거나 시작이 실패하며, 브라우저 쪽 정책 작성자나 실행 자격 증명을 만들지 않습니다. Outcome Assurance 상세 화면은 기존 Operating outcomes, Control assurance, Verticals 정보 아키텍처를 재사용합니다. 인증된 /kpi/outcome-assurance 변환 결과만 읽고, 누락되거나 오래된 출처 상태를 사용 불가로 보존하며, 요청, 승인, 승격 또는 실행 권한을 추가하지 않습니다. 적응형 답변 근거는 Core가 만든 허용 목록 기반 변환 결과인 ModelEvidenceView로 모델 경계를 넘습니다. 원시 조회 표, 프로바이더 본문, 핸들, 보관된 스냅숏 셀은 답변 작성 또는 검토 모델 호출에 들어가지 않습니다. 검증된 답변 작성은 공유 명제 계약과 기본값이 꺼진 작성자/검토자 포트를 Core 뒤에 추가합니다. 승격되기 전까지 Console 답변은 현재 검증된 경로를 계속 사용합니다. 검증된 데이터 대체 표현은 스칼라 결과와 전송용 표를 구분합니다. 완전하고 그룹화되지 않은 단일 개수는 한 행 표나 전송 행 회계 없이 간결한 검증 값으로 표시합니다. 그룹화되었거나 불완전하거나 잘렸거나 여러 행인 결과는 기존 표와 한계 설명을 유지하며, 그룹화된 집계는 개수 앞에 그룹 필드를 Core 답변 행에서 선행 열로 표시합니다. 관측 작업 타임라인의 각 최종 요약 표시는 세부 기록과 같은 세로 흐름선의 중심에 맞춥니다. 이 정렬은 표현만 바꿉니다. Run Record는 의도적으로 본문을 보관하지 않은 모델 추적과 메시지 0개를 전달한 프로바이더 요청을 구분합니다. 본문을 보관하지 않은 추적은 요청 및 응답 본문을 보관하지 않았음을 표시하면서 요청과 응답 해시, 시간, 사용량, 프롬프트 계층 및 비공개 처리 횟수는 유지합니다. 근거 단계 회계는 고유한 근거 분기와 독립 관측 읽기를 각각 한 번만 계산하며, 실시간 모델 호출 진행 상황은 근거로 계산하지 않습니다. Run Record 요약과 지표는 측정된 경우 입력 토큰 중 프로바이더가 보고한 캐시 비중도 보여 주며, 복원한 과거 턴도 기록된 사용량과 모델 시간을 유지합니다. 턴 전체 모델 호출 합계는 Run Record 요약과 프로바이더 레인에만 표시합니다. 검증된 답변을 렌더링한 출처만 표시하는 답변 생성 단계에는 이 합계를 반복해서 표시하지 않습니다.

운영 > 알림 품질은 다시 생성한 TypeScript 계약 뷰로 서명된 결과 1.1.0과 그 안의 공급자 중립 계획 1.1.0을 디코딩합니다. 브라우저는 direct_api를 보존된 계약 메타데이터로만 표시합니다. 공급자 어댑터를 선택하거나 로컬 Terraform 계획을 승인으로 취급하거나 관리 리소스 실행 권한을 얻지 않습니다. 요청 이력은 인증된 미출시 1.0.0 결과를 legacy_contract_retired 사유와 함께 unconfirmed로 표시하며 그 내용은 렌더링하지 않습니다.

Command Deck의 진행 중인 턴에 대한 후속 입력, 모드 점검 및 대화 취소는 처리 중인 대화 입력 모드를 따릅니다. 크기가 제한되고 형식을 엄격히 검증한 동일 세션의 Operator 조회 결과를 확인한 뒤에만 조작 기능을 사용할 수 있고, 그렇지 않으면 사용 불가 상태로 유지되며 후속 입력 영역도 숨겨지므로 유휴 입력창에 사용 불가 안내가 계속 표시되지 않습니다. 조회 결과를 확인한 뒤에도 로컬 턴이 진행 중이거나, 조회 결과가 진행 중인 턴이나 대기 중인 후속 입력을 보고하거나, 확인된 조작 기능의 실패를 알려야 할 때만 이 영역이 표시됩니다. 로컬 중지 명령은 별개이며 이 조작 기능으로 작업이나 승인을 취소할 수 없습니다. 계정 메뉴는 완료된 redirect에서 선택한 Entra 계정을 MSAL active account로 유지합니다. 전체 경로 이동과 다시 로드한 뒤에도 안정적인 account id로 정확히 같은 캐시 신원을 복원합니다. 캐시 계정이 여러 개이고 active 선택이 없으면 첫 번째 principal의 역할을 표시하지 않고 다시 명시적으로 선택하도록 요구합니다. Command Deck은 출처에 결합된 테스트 맥락 후보를 표시하지만 이를 승인된 범위 또는 정책 선택지로 취급하지 않습니다. 별도의 인증된 명령 증적 조회는 요청한 principal 본인의 전달 및 과거 감사 적용만 보여 주며 현재 승인 상태는 평가되지 않습니다. 검토된 principal-사례 매핑과 독립적인 증적이 갖춰지기 전까지 브라우저는 제안, 독립 검토, 철회 조작을 제공하지 않습니다. Operator는 수락한 각 테스트 맥락 명령 옆에 본문 없는 인증 증적을 멱등 요청 digest와 분리해 보관하므로 독립 검증기가 사람 principal을 다시 확인할 수 있습니다. 이 증적은 브라우저 조작이나 권한을 추가하지 않습니다. 검증기가 명시적 거부 유형을 기록하면 보류된 판정의 테스트 맥락 결정은 그 유형을 밝히고 거부 기록 digest를 인용하며, Console은 이로 인해 새 조작을 얻지 않습니다. 사례 이력 문서와 점진적 대화 문서를 참고하세요. Settings > Integrations에서는 합성 자리 표시자를 사용한 검토된 Calm Slate 인시던트 열림 이메일을 미리 볼 수 있습니다. Operator Service는 디자인 시안과 동일한 패키지 HTML을 로드하고, Console은 샌드박스가 적용된 프레임에 표시하여 760 CSS 픽셀 캔버스 안에 640 픽셀 데스크톱 이메일 시트를 가운데 정렬하며 축소 데스크톱과 모바일 너비에서 가로 잘림 없이 재배치합니다. Owner는 상용 클라우드 Teams Workflows URL 한 개를 저장하고 범위가 제한된 진단으로 고정된 합성 Adaptive Card 한 건을 전송할 수도 있습니다. FDAI는 공급자 테스트 전에 endpoint를 암호화하고 다시 읽어 검증합니다. 응답은 저장 버전 메타데이터와 테스트 수락 상태를 분리해 보고하므로 테스트 카드가 거부되어도 성공한 저장 상태는 지워지거나 숨겨지지 않습니다. 바인딩을 저장한 뒤에는 URL 입력란을 비워 둔 채 서버에 저장된 값으로 다시 테스트할 수 있으며 비밀번호와 같은 URL은 브라우저에 노출되지 않습니다. 저장된 workflow를 구분할 수 있도록 메타데이터에는 workflow id의 마지막 8자와 endpoint SHA-256 digest의 첫 12자만 포함합니다. 호스트, 전체 경로, query, 서명은 포함하지 않습니다. 배포 환경은 전용 Key Vault 시크릿과 버전이 지정된 이 시크릿 하나만 쓸 수 있는 Managed Identity를 사용합니다. 로컬 프로필은 비공개 서비스 DSN에서 도메인을 분리하여 파생한 키로 값을 암호화하고 루프백 Operator 데이터베이스에는 암호문만 저장합니다. Contributor, Approver 및 Owner 역할은 새로고침 후 no-store 응답으로 configured, 바인딩 버전, endpoint 식별자, 관찰 시각, 검증된 저장 시각만 받습니다. URL은 반환하거나 입력란에 다시 채우지 않습니다. Reader와 BreakGlass 역할은 visible: false만 받습니다. 시크릿을 저장하거나 바인딩 메타데이터를 읽어도 승인이나 실행 권한이 생기지 않으며 알림 런타임이 이 바인딩을 참조하는 시점은 배포에서 계속 제어합니다. Teams A1 안내는 보호된 FDAI 준비와 프로바이더가 호스팅하는 테넌트 동의, Teams 앱 설치 및 최종 배포 승인을 구분하며 client secret을 입력받지 않습니다. Owner 전용 작업은 보호된 plan을 위한 revisioned 권한 없는 제안을 영속화하며 프로바이더 또는 배포 성공을 주장하지 않고 영속 요청 상태만 표시합니다. Settings > Integrations에는 Core의 forecast-history 행도 상태, 모드, 출처, 사유와 함께 표시됩니다. 기본 펼침 제어에서 네 가지 원본 읽기 경로의 연결, 완전성 확인 지점의 한계, 전제 조건을 구분해 표시하며 연결만으로 완전한 이력이라고 판단하지 않습니다. 런타임 정책에는 기존 Owner 전용 개정 번호 검사 API를 사용하는 forecast.history_collection.enabled 설정이 있습니다. 기본값은 꺼짐이고 변경 시 감사 기록이 남으며 배포 변수로 설정할 수 없습니다. 현재 개정 번호는 실제 생산자와 수집기의 읽기를 제어하고, 근거 반환 전 다시 확인하므로 진행 중 설정이 바뀌면 결과를 버립니다. 전제 조건이 부족하면 재시작이나 새 권한 부여 없이 활성화를 차단합니다. 완전성 확인 지점이나 독립 근거가 부족하면 채점 준비 상태는 계속 미완료이며, 수집을 켰을 때만 관찰 모드를 표시합니다. 이 행은 채점 권한이나 실행 권한을 부여하지 않습니다. 자세한 내용은 케이스 히스토리 소유 문서를 참고하세요. Settings > Models는 포인터 또는 키보드 포커스에서 범위가 제한된 변환 결과 선조회를 시작하고 성공한 결과를 인증된 API 클라이언트 안에서만 60초 동안 하나로 합쳐 재사용합니다. 명시적인 카탈로그 새로고침, 충돌 복구, 변경 뒤 조회는 최신 결과를 가져오며 브라우저 저장소와 공유 HTTP 캐시는 사용하지 않습니다. Settings > Runtime policies는 공유 런타임 설정 허용 목록의 모든 항목을 현지화된 레이블 및 도움말과 함께 표시합니다. 로컬 읽기 전용 구체화도 그룹별 부분 집합이 아니라 같은 전체 키 집합을 변환합니다. Owner는 리비전과 감사가 적용되는 Operator API를 통해서만 설정을 관리할 수 있으며 구체화된 변환 결과에서는 관리할 수 없습니다. 이 섹션에서는 Owner가 적극적인 T2 답변 복구를 제어할 수 있습니다. 모든 환경에서 기본적으로 비활성화하며, 승격 근거가 있을 때만 감사되는 override로 활성화합니다. 감사되는 리비전을 저장하면 Core를 재시작하지 않고 이후 대화형 읽기 턴에 적용됩니다. 이 컨트롤은 Golden 캠페인, 액션 초안, 범위 또는 권한 부여 차단, 실행 경로에서 T2를 활성화할 수 없으며 온톨로지 또는 근거 검증을 완화하지 않습니다. 선택적 Console 변환 결과에서는 타입이 지정된 404, 501, 명시적으로 분류된 source-gate 503 응답을 사용 불가 상태로 표시합니다. Operator API는 범위가 제한된 family-operation 변환 결과 부재를 Console에 전달하기 전에 이 구조화된 JSON 계약으로 정규화합니다. 분류되지 않은 503은 변환 결과 부재로 표시하지 않고 운영 오류로 유지합니다. 인증 실패, 예기치 않은 전송 또는 500 응답, 디코더 실패도 확인할 수 있는 오류로 유지합니다. Cost Governance는 런타임 디코딩과 현지화된 레이블에 버전이 지정된 CostReadinessReason 전체 어휘를 사용합니다. 따라서 일부 근거와 범위가 제한된 잘림 상태를 읽을 수 있게 유지하면서 알 수 없는 사유는 계속 확인할 수 있는 오류로 처리합니다. Settings > Integrations > Document OCR에서는 Owner가 프로세스로 격리된 로컬 한국어 및 영어 OCR을 선택하거나 Azure Document Intelligence를 요청할 수 있습니다. 저장하면 적용 권한 없이 수정 버전과 다이제스트로 보호되는 정책 및 보호된 계획 요청을 생성합니다. 패널은 배포 후 실제 상태 확인으로 확정한 공급자를 표시하고 계획 요청 재시도를 지원하며, 로컬 OCR 전환과 Azure 리소스의 명시적 제거를 분리합니다. 태그 canary는 Console 변경 표면 밖에 있습니다. Console은 모드, 승인, 전달, rollback, 독립 확인 결과를 표시할 수 있지만 대상이나 값을 선택하거나 ActionType을 승격하거나 dev gateway를 호출할 수 없습니다. 컨트롤 보기에서는 카탈로그 존재와 의미 매핑을 범위별 평가, 적용 가능성, 충족 상태와 구분합니다. WAF 체크리스트는 변경 불가능한 워크로드 근거와 함께 고정된 정의 59개를 모두 표시하고, 인접한 CAF 보기는 담당자, 주기, 승인된 예외, 근거 제한 사항과 함께 방법론 및 랜딩 존 영역 15개를 표시합니다. 어떤 보기에서도 브라우저가 규정 준수를 계산하거나 근거를 쓰지 않습니다. 규칙 화면은 승인된 카탈로그 작업공간 계층을 따릅니다. 권위 있는 요약 지표와 필터 다음에 220 CSS 픽셀 너비의 카탈로그 보기 레일과 범위가 제한된 상세 표를 배치합니다. 레일은 서버가 제공한 전체, 활성, 수집 및 컨트롤 목적지만 사용하며, 시안의 합성 예외나 관찰 모드 정확도 값을 복사하지 않습니다. 두 카탈로그 보기는 같은 레일을 두 그룹으로 나누어 표시합니다. 탐지 규칙 그룹은 T0가 리소스 구성 하나에 대해 평가하는 규칙이고, 프레임워크 평가 그룹은 규칙 결과를 문서, 메트릭, 훈련, 승인과 함께 종합하며 수정 권한이 없는 평가입니다. WAF 컨트롤의 규칙 요구 사항은 해당 규칙 상세로 연결되고, 선별된 규칙의 상세는 GET /best-practices의 읽기 전용 rule 필터로 해당 규칙을 인용하는 Azure WAF 컨트롤을 표시합니다. Console은 응답이 같은 rule_filter를 되돌려줄 때만 이 목록을 표시하고, 그렇지 않으면 필터되지 않은 카탈로그를 보여 주는 대신 인용 정보를 사용할 수 없다고 표시합니다. 이 인용은 카탈로그 탐색이므로 규칙 활성화나 컨트롤의 적용 가능성, 평가, 충족 상태를 바꾸지 않습니다. WAF 컨트롤 세부 정보는 최신 범위별 규칙 커버리지 기록의 상태와, 각 규칙 요구 사항에 대해 서버가 소유한 대상, 준수, 위반, 검토 대기, 결과 없음 개수와 활성화 상태도 보여 줍니다. Operator는 그 기록이 현재 baseline에 속할 때만 수치를 붙이며, 그렇지 않으면 수치가 오래되었거나 사용할 수 없는 이유를 표시합니다. 수치는 요구 사항을 설명할 뿐 상태를 바꾸지 않습니다. 1,500 CSS 픽셀 이하에서 프레임워크 컨트롤 표는 자체 열 너비를 사용합니다. 제목 열은 38%, 상세 화살표 열은 32 CSS 픽셀이며 규칙 카탈로그 표의 위치 기반 열 너비는 적용되지 않습니다. WARA 표는 권고 제목을 먼저 표시하고 리소스 종류와 GUID 앞부분을 보조 텍스트로 표시하며, 영향도, 매핑, 평가, 충족 상태를 각각 별도 열로 표시합니다. MCSB v1 표는 구현 커버리지 옆에 서버 소유 평가 열과 요약을 추가하고, 서랍에는 각 요구 사항의 근거 역할과 상태를 나열합니다. 760 CSS 픽셀 이하에서는 평가 표시가 커버리지 아래에 쌓입니다. 컨트롤 보기의 KPI 행은 카드 수와 관계없이 전체 너비를 채웁니다. 760 CSS 픽셀 이하에서는 컨트롤 표가 보조 열을 숨기고 제목 열을 58%로 두어 화면 너비에 맞추므로 가로 스크롤 없이 상태를 볼 수 있습니다. 규칙 카탈로그 표는 스크롤 가능한 최소 너비를 유지합니다. 규칙을 선택하면 카탈로그를 다시 마운트하지 않고 URL로 복원할 수 있는 대화 상자를 열며, Escape 또는 브라우저 뒤로 가기로 닫으면 원래 규칙 상세 버튼으로 초점을 되돌립니다. 규칙별 결과 프로바이더가 연결되지 않은 경우, 카탈로그에 있는 규칙은 운영 503 대신 빈 결과 목록과 evaluated: false를 반환합니다. 알 수 없는 규칙은 계속 404를 반환합니다. 지식 > 문서는 새로 고친 뒤 컬렉션 범위가 적용된 문서 목록을 제한된 개수로 복원합니다. 정확히 같은 이름의 기록은 파일 행 하나로 묶고 운영자가 이력을 열 때만 권한이 있는 불변 버전을 불러오며, 업로더 신원과 액세스 구성원은 이 변환 결과에서 제외합니다. 변경되지 않은 통제 지식 업로드는 준비 완료 버전을 재사용하고, 콘텐츠가 달라지면 후속 버전을 만듭니다. 미리 보기, 다운로드, 삭제는 선택한 버전을 대상으로 하며 삭제해도 이전 버전을 암묵적으로 다시 활성화하지 않습니다. 컬렉션을 바꾸면 다음 권한 적용 읽기 전에 이전 행을 지우며, 문서나 컬렉션 권한을 부여하지 않고 로딩, 사용 불가, 오류, 빈 상태를 서로 구분합니다. 사용할 수 없는 문서 작업은 키보드로 초점을 이동하여 그 사유를 확인할 수 있지만 활성화 처리기가 없으므로 작업을 실행할 수 없습니다. 인증된 변환 결과 판독기는 드라이버 자리 표시자와 식 그룹화를 명시적으로 유지하여 저장된 데이터가 SQL 구문 분석 오류로 가려지지 않게 합니다. 실시간 상태 요약과 문서 식별 행은 1440, 993, 390 픽셀 너비에서 주 콘텐츠 안으로 재배치됩니다. 필수 리포트 변수는 오퍼레이터가 변수 집합의 일부를 입력하기 전까지 오류가 아닌 초기 입력 안내로 유지됩니다. 리포트 화면은 승인된 근거 작업공간 계층을 따릅니다. 동적 카탈로그, 출처 및 렌더러 요약, 선언된 변수 컨트롤, 템플릿 선택, 렌더링된 위젯 캔버스, 확인 가능한 출처 이력을 순서대로 제공합니다. 개수와 상태는 서버 카탈로그, 레지스트리 및 렌더링 묶음에서만 가져옵니다. Console은 시안 값을 복사하거나 렌더링 누락을 0으로 바꾸지 않습니다. 렌더링 대기, 렌더링된 위젯 0개, 부분 또는 사용 불가 근거, 합성 근거를 구분합니다. 축소 너비에서는 카탈로그를 캔버스 위로 옮기고 모바일 폼, 탐색 및 펼침 컨트롤의 조작 영역은 가로 넘침 없이 최소 44 CSS 픽셀을 유지합니다.

온톨로지 ObjectType 상세는 빈 섹션마다 이유를 설명합니다. 수명주기가 없는 타입은 검토된 수명주기 분류를 보여 주고, 사용할 수 없는 런타임 근거 원본은 원본 사유 코드와 함께 알려진 원인을 표시하며 권한을 부여하거나 수치를 만들어 내지 않습니다.

대시보드는 로딩, 부분 완료 및 사용 불가 상태에서도 범위가 제한된 서비스 상태 답변을 보존합니다. 일반 인벤토리 데이터로 대체하지 않고 의미 변환 결과의 정확한 리소스 식별자, 근거 시각 및 공급자 제한을 표시합니다. Service Health 이벤트 범주, 활성 상태, 심각도 및 원본 완전성에는 locale별 표시어를 사용하며 공급자 권고 제목은 근거 원문 그대로 유지합니다. 인벤토리 무효화 epoch가 바뀌면 인증된 스냅샷 재조회가 성공해야 새 스트림 커서를 승인합니다. 실패, 시간 초과 또는 신원 변경으로 취소된 조회는 구독을 재개하지 않습니다. 이 읽기 전용 재설정은 인시던트, 승인, 첨부 파일 또는 평가 재생의 권한을 바꾸지 않습니다. Resource 상태 및 Resource Health 대화 보증 준비 상태는 모든 인벤토리 객체가 아니라 상태 값과 상태 사실 메타데이터를 모두 가진 Resource 하위 집합을 사용합니다. 이 경계는 질문 선택만 제한하며, 사용할 수 없는 근거를 숨기거나 Console 조회 범위를 넓히지 않습니다. Overview는 권위 있는 변환 결과의 기존 503 메시지 두 가지인 authoritative Operator projection is unavailable과 authoritative projection is unavailable을 선택적 출처의 명시적인 사용 불가 상태로 인식합니다. 자율성 측정을 제공할 수 없어도 사용 가능한 기본 KPI는 유지하고, 전체 페이지를 오류로 대체하지 않고 근거를 사용할 수 없다고 표시합니다. 측정 완전성 한도는 계속 적용하며, 이 표시는 잘린 근거를 측정값으로 바꾸거나 일반 서비스 503을 선택적 실패로 취급하지 않습니다. 측정 출처 정보에 합성 여부 표시를 선언하지 않은 이벤트가 있으면 Overview는 근거를 실측 대신 관측값, 출처 미검증으로 표시합니다. 이 레이블은 이동 구간 관측을 뜻하며 배포된 런타임의 인증을 뜻하지 않습니다. 영역별 성과 및 운영 성과 화면은 귀속 정보가 누락되어도 영역 행을 유지하고 정식 관측 이벤트 분모를 보존하며, 스키마 버전이 있는 전송 계약을 통해 근거 없음과 측정된 0을 구분합니다. 각 성과 상세 화면은 선택한 지표의 표본 수를 사용하고 이벤트 분모를 별도로 유지하며, 서버가 작성한 원본 누락, 불완전, 원본 맥락 충돌 또는 미귀속 근거 사유를 브라우저에서 추론하지 않고 표시합니다. 대표 카드와 비교표 모두 측정 구간에 비용 이벤트가 한 건 이상 관측된 경우에만 절감액 0을 표시합니다. 실시간 복원력과 비용 거버넌스 상세 링크는 정규 필터를 유지합니다. 승격 가드에는 영역 필드가 없으므로 변경 안전은 오해를 줄 수 있는 필터 없이 해당 근거 화면을 엽니다. Sample 링크는 운영 필터를 포함하지 않으며, 데이터 모드를 전환하면 다음 출처가 응답하기 전에 표시 상태가 로딩으로 돌아갑니다. Sample KPI와 자율성 테스트 데이터는 실시간 응답과 같은 디코더 불변 조건을 통과합니다. 네이티브 비교표는 키보드 탐색을 지원하고 320 CSS 픽셀 너비까지 범위가 제한된 가로 스크롤을 유지합니다. 하나의 정규 선언 타입과 개수 항목을 식별한 스키마 읽기는 인접한 매니페스트, 선언 및 관계 의도를 서버 소유 principal 매니페스트 개수 계획으로 수렴시킵니다. 이 경로는 두 번째 모델을 요청하거나 실행 권한을 부여하지 않습니다. 읽을 수 있는 선언 목록 판단도 복수 선언 종류와 available, queryable, readable이 분리되거나 결합된 기계 필드로 전달되면 정본 종류 하나를 보존합니다. Core는 발화 키워드로 경로를 선택하지 않고 현재 principal 매니페스트를 사용하며, 이 간결한 경로는 추가된 부정·이력·속성 요구를 버릴 수 없습니다. Core에 패키징된 개발 진단 모듈은 명시적으로 활성화된 로컬 소유자 전용 Unix 소켓만 제공하며 Console, Operator HTTP 또는 권한 경로를 추가하지 않고 회귀 검사는 Operator 서비스 테스트 모음이 계속 담당합니다. Core 패키지 페이로드 계약은 Console 의존 조립을 제어하는 런타임 제품 프로필 모듈도 선언합니다. Core wheel은 자체 상태에 사용하는 프로세스별 시작 관측 모듈도 명시적으로 소유합니다. 이 수집원의 패키징은 모든 인스턴스의 준비 상태를 입증하지 않으며 Console 전송 필드나 권한을 추가하지 않습니다. 결과 semantic operation은 aggregate를 유지합니다. Presentation compiler는 표준 operation과 value 필드를 보존하여 독립 oracle이 표시된 count를 검증할 수 있게 합니다. 카탈로그 토폴로지는 결정적인 exact-release 좌표를 보존하면서 처음 진입할 때 범위가 제한된 900 ms spring-settle 효과를 한 번 사용합니다. 조작하면 효과가 끝나고 동작 감소 설정에서는 효과를 건너뜁니다. Workflow Builder는 검토된 게시 정의 계층을 사용합니다. 권위 있는 출처와 리비전, 선택한 워크플로 사실 4개, 검토 컨트롤, 220 CSS 픽셀 카탈로그 레일, 순서가 지정된 계약 경로 및 310 CSS 픽셀 검사기로 구성됩니다. 선택적인 사용자 정의 및 Python 작업 기능 읽기를 사용할 수 없어도 이용 가능한 기본 제공 카탈로그는 숨기지 않으며, 필수 카탈로그나 ActionType 팔레트가 실패하면 오류를 명확히 표시합니다. 사용자 범위의 영속 Process 이력은 계속 워크플로 상태 전용으로 표시하고 구조 검증을 실제 기반 환경 변경 미리 보기로 제시하지 않습니다. 선택한 워크플로 사실은 작성된 승인 단계와 사람 승인 승인이 필요한 ActionType을 따로 집계하고, 고정된 검증 결과 대신 검토된 카탈로그 상태를 보고합니다. 카탈로그 필터는 텍스트, ActionType 범주, 단계 종류를 지원합니다. 계약 경로에는 읽기 쉬운 UTC 일정, 병렬 분기, 결정 결과, 실패 및 보상 경로가 표시되며, 사용자 범위의 실행 이력은 시작 컨트롤 없이 각 Process를 해당 저널로 연결합니다. 패널 내 선택과 URL 기반 작성 모드는 라우트를 다시 마운트하지 않고 브라우저 이력을 갱신하므로 필터가 유지되고 뒤로 가기가 이전 상태를 복원합니다. 디자이너는 인터뷰를 현지화하고 검색 가능한 ActionType 선택기를 제공하며, 표시된 모든 워크플로를 섀도 초안 사본으로 열어 비공개 저장 전에 다시 검증할 수 있습니다. Workflow apps는 수명 주기 상태 색상을 사실대로 매핑하고 실행을 상태별로 필터링합니다. 에이전트 활동은 행이 영속 감사 근거를 기반으로 할 때만 상관관계를 추적 화면에 연결합니다. 인벤토리 스캔, 온톨로지 변환 결과 및 현재 상태 읽기 상관관계는 감사 추적 링크 없이 식별자로 표시합니다. 일치하는 감사 단계가 없는 수동 조회는 운영 실패가 아니라 중립적인 사용 불가 상태로 표시합니다. Huginn discovery 상태에서 projection의 not_bound와 cursor, backpressure 또는 source-health의 not_observed는 정상 근거와 구분합니다. Console 변환 결과는 해당 정규 제한 사항을 표시할 수 있지만 출처 점검 통과로 추론하지 않습니다. 추적 화면은 최근 탐색, 상관관계 조회, 순서가 있는 단계, 선택한 근거, 액션 시도 및 전체 감사 타임라인을 operator-audit-log의 읽기 전용 화면으로 제공합니다. 응답 상관관계는 요청과 일치해야 하고 순번과 선택 필드는 엄격히 해석하며, 결합된 단계는 행위자, 원본 이벤트와 상관관계, 항목 해시 및 정규 작업 값을 보존합니다. 승인은 명시적 승인 기록만으로 판단하며 전달과 통지는 승인을 뜻하지 않습니다. 서버가 추적이 500건 제한 안에 있음을 입증한 경우에만 완전하다고 표시하고 탐색 표본은 항상 최근 기록으로 구분합니다. 판단, 액션 시도, 근본 원인 및 독립 효과 요약은 순서가 있는 단계와 일치해야 하며, 불일치하면 변환 결과를 사용하지 않습니다. 상관관계 조회 도구막대는 일반 문서 흐름에 남아 화면과 함께 스크롤되므로 타임라인이나 근거 내용을 덮지 않습니다. 현지화와 반응형 표시는 레이블과 배치만 바꿀 수 있고 정규 값, 시각, 출처 이력, 권한 및 최신 상태와 최종 상태의 구분을 유지합니다. 에이전트 활동은 시간 순서가 있는 작업 및 인계 근거를 소유합니다. URL로 복원할 수 있는 역할 및 소유권 대화 상자에는 고정 보고 트리, 소유 객체 유형, 권한 경계 및 선택한 에이전트 요약만 표시합니다. 대화 상자는 활동 필터를 유지하고 Back 또는 Escape로 닫히며 선택한 역할을 필터가 적용된 Trajectories로 연결합니다. 커밋된 에이전트 SVG 마스크는 모달이 body 수준 포털을 통해 렌더링될 때도 색상을 유지하므로 포털 격리 때문에 역할 식별 표시가 사라지지 않습니다. /pantheon은 공유할 수 있는 역할 전용 fallback입니다. 두 조직 화면 모두 인시던트 타임라인, 워크플로 또는 대화 기록을 렌더링하지 않습니다. 실시간 활동, 영속 감사 상위 기록 및 펼친 감사 대화에는 독립된 한도를 적용하므로 대화를 펼쳐도 명시적으로 가져온 운영 활동 500건이 제거되지 않습니다. 브라우저는 영속 활동을 일괄 병합하고 각 로그 출처를 한 번의 일괄 정렬로 제한합니다. 행이 늘어날 때마다 앞부분 전체를 반복 정렬하지 않으며, 범위가 제한된 전체 결과와 필터 의미는 바뀌지 않습니다. 새로 추가된 재생 이외의 행에는 중립적인 전체 행 배경색을 적용하고 3초에 걸쳐 사라지게 합니다. 최초 행, 보존 데이터 재생, 필터링 및 내용이 바뀌지 않은 재렌더링은 강조하지 않습니다. 모션 감소 모드에서는 같은 제한 시간 동안 배경색을 정적으로 유지합니다. 로그는 공유 패널 제목, 압축형, 레이블 및 캡션 역할을 사용하며 텍스트를 11 CSS 픽셀 캡션 하한보다 작게 표시하지 않습니다. 키보드로 명시적 새로 고침을 실행하면 범위가 제한된 읽기가 끝난 뒤 해당 버튼으로 초점을 되돌립니다. 기본 보기는 Trajectories입니다. 보존된 영속 감사 레코드를 상관관계별로 기록 순서대로 묶고, 에이전트 경로, 경과 시간, 단계 수와 에이전트 전환 수, 여섯 수명 주기 단계, 긴 유휴 구간을 압축하는 에이전트별 trajectory 맵, 각 단계에 기록된 입력, 출력, 판단 필드, 대화 턴 및 감사 식별 정보를 표시합니다. 기록이 없는 단계는 추론하지 않고 기록 없음으로 유지하며, 최근 기록 결과를 완료 주장 없이 표시하고, 모델 추론은 표시하지 않습니다. 이 보기는 표현용 투영이며 정식 trajectory 내보내기가 아닙니다. 상관관계가 없는 레코드는 활동 로그에 남습니다. trajectory 선택, 레이블이 있는 추적 작업 및 활동 로그에서 보기는 별도 조작 요소로 유지합니다. 폐기된 view=waterfall URL은 Trajectories를 열고 step=<seq>는 해당 감사 단계를 엽니다. Live는 현재 제어 루프와 소스 읽기 카드를 최대 15개까지 최신 항목 우선의 선택 가능한 페이지 흐름 하나에 표시하면서 각각의 판단, 근거 및 실행 의미를 구분합니다. 명시적으로 선택한 deep link는 이 한도 안에 계속 표시합니다. 중앙 SSE가 현재 활동을 소유하고 Agent Activity는 명시적으로 요청하는 범위가 제한된 보존 이력 읽기로 유지됩니다. 실시간 커버리지 카드는 로딩 및 사용 불가 상태에서도 링크로 유지되고 권한을 부여하지 않는 인벤토리 묶음에서만 ARG 합계를 해석하며, 선택적 rule.findings-summary 변환 결과가 없으면 평가되지 않음으로 표시합니다. 공유 워크플로 어댑터는 이 요약을 문서 첨부나 근거 작성기로 라우팅하지 않습니다. Live 화면은 권한 범위를 출처 및 주의 상태 레일 바로 다음에 유지하고, 그 뒤에 압축된 KPI 행과 현재 활동을 배치합니다. 초당 이벤트는 60초 SSE 측정을 유지합니다. 게이트와 티어 구성은 범위가 제한된 현재 제어 루프 카드를 사용하므로 다시 연결해도 같은 화면에 이미 보이는 보존 결정이 숨겨지지 않습니다. 소스 읽기는 게이트나 티어를 만들지 않습니다. 티어 라우팅 전에 보류된 이벤트는 T0로 세지 않고 별도 미라우팅 건수로 표시하며, T1과 T2 비중이 비어 있으면 숨기지 않고 이유를 설명합니다. 이 표시 순서와 집계는 스트림, 근거 또는 권한을 바꾸지 않습니다. 인증된 /provisioning 경로는 하나의 영속 구독 초기 구성 실행을 보여주는 읽기 전용 변환 결과입니다. 완료된 단계, 리소스 검색, 최종 검증을 재생하지만 배포를 시작, 재시도, 승인 또는 변경하지 않습니다. 데이터베이스, 의미 체계, 모델, 런타임, 인벤토리, 시스템 준비 상태를 구분하고 독립 인벤토리 확인 전까지 리소스와 페이지 합계를 예상값으로 표시합니다. 모든 항목이 일치하는 최종 준비 상태 스냅샷만 100%에 도달하며, 잘못된 프레임에서도 커서를 진행하고 새 실행은 순서를 초기화하며 취소 또는 실패한 실행은 명시적으로 유지합니다. Console은 연결 전에 Operator 매니페스트가 /provision/stream을 소유하는지 확인합니다. Operator는 PostgreSQL 재생 저장소가 구성된 경우에만 이 영속 소스를 선언하고 아니면 사용 불가 사유 하나를 보고합니다. 소스 확인, 사용 불가, 다시 연결 중, 관찰되지 않음 상태를 구분하고 Sample과 Live를 전환할 때 실행별 상태를 초기화하므로 합성 근거가 Live 화면에 남지 않습니다. 환경 설정 화면은 출처별 부재 상태를 하나의 연결 끊김 레이블로 합치지 않습니다. 온보딩 근거가 없으면 선언된 필수 리소스와 역할 기준을 표시하되 준비 상태는 사용할 수 없음으로, 마지막 확인은 확인하지 않음으로 유지합니다. 현재 관측 구성 제안이 0건이면 근거 출처와 읽기 전용 경계를 설명합니다. 인벤토리 전용 또는 keepalive 스트림 이벤트만으로는 프로비저닝 실행이 있었다고 판단하지 않습니다. 실행 식별자, 단계, 진행률, 대기, 실패, 취소 또는 준비 완료 근거가 기록될 때까지 실행 없음 상태를 유지합니다. 모바일 너비에서는 Settings 오버레이가 사용권 워터마크 위에 공간을 확보하므로 영구 라이선스 안내가 작업 영역 내용을 가리지 않습니다. 운영 화면은 소스 안내에 보이는 제목을 사용하고 프로비저닝 목업의 실행 요약을 따르며, 단계, 준비 상태, 리소스를 키보드로 조작할 수 있는 보기로 구분하되 목업 전용 수명 주기 데이터는 복사하지 않습니다. Console 카탈로그나 탐색이 바뀌면 소스에 결속된 질문 bank를 먼저 갱신한 뒤 semantic-intent coverage와 CQAS 출처 이력을 갱신하여 모든 생성 아티팩트가 동일한 권위 있는 소스 digest를 유지하게 합니다. 최신 기본 브랜치 통합도 이 순서를 따랐고 질문 400개의 신원을 모두 유지했습니다. Digest만 갱신해도 런타임 권한은 바뀌지 않습니다. 최초 인벤토리 중 /provision/stream은 Operator 역할의 PostgreSQL SELECT 전용 권한을 통해 Core 소유 개수 전용 원장을 재생하며, 허용 목록 페이로드에는 구독, 리소스 또는 프로바이더 식별자가 없습니다. Console은 인벤토리 실행과 순서를 전체 초기 구성 실행과 별도로 추적하므로 새 스캔이 단계 준비 상태나 전체 진행률을 초기화할 수 없습니다. 리소스, 페이지, 프로바이더 유형, 관계, 미매핑 개체, 커버리지 공백의 상세 개수는 권위 있는 상태가 아니며 독립적으로 종결된 최종 레코드만 인벤토리 준비 상태를 나타냅니다. Console shell은 헤더에 간결한 FDAI 브랜드 락업을 유지하고, 외부는 투명하고 내부는 흰색인 정사각형 브라우저 아이콘을 사용하여 밝고 어두운 브라우저 UI에서 마크를 선명하게 유지합니다. 콘텐츠 컨테이너는 calm-slate 계층에 1 px 헤어라인 테두리를 사용하며, 장식적인 색상 상단 또는 좌측 가장자리 강조는 금지됩니다. 정적 디자인 목업 검사는 현재 탐색 분류 체계를 따르고 의미를 전달하는 선 견본과 금지된 컨테이너 가장자리 강조를 구분합니다. 기본 탐색은 콘텐츠 레이아웃에서 56 px 활동 레일만 차지합니다. 설정 이외의 그룹 버튼이나 페이지 제목의 이동 경로를 선택하면 하위 탐색기가 오버레이로 열리고, 하위 메뉴를 선택하면 닫히며, 핀을 명시적으로 고정하면 300 px 고정 영역으로 전환됩니다. 설정은 현재 경로 위에 모달 작업 영역으로 열립니다. 설정 섹션 전환은 브라우저 기록에 남기지 않으며 닫으면 변경되지 않은 기존 경로와 화면을 복원합니다. 오퍼레이터는 활동 레일의 상황에 맞는 메뉴나 접근 가능한 ... 컨트롤에서 선택적 대메뉴를 표시하거나 숨길 수 있습니다. 전체 현황, 설정, 현재 표시 중인 그룹은 숨길 수 없습니다. 전체 현황 탐색기에는 정본 Dashboard 항목 하나만 표시합니다. 안정적인 /resource-dashboard 리소스 대시보드 경로는 직접 링크를 위해 유지하되 탐색기에서는 숨깁니다. 이전 /dashboard-v2 경로는 쿼리 문자열을 보존하면서 정식 경로로 바뀝니다. Overview 페이지 헤더의 아이콘이 있는 44 CSS 픽셀 전환 링크로 이 화면을 열고, 리소스 대시보드의 반대 방향 헤더 링크로 Overview에 돌아갑니다. 리소스 대시보드 허니콤은 축 표식이 보이는 기록 상태 대표 렌즈를 기본으로 사용합니다. 초록과 빨강은 검증 가능한 긍정 값과 부정 값을 구분합니다. 황색은 전환 값과 근거 검토가 필요한 모든 ? 상태를 표시하며, 중립색과 패턴은 프로비저닝 성공을 정상 상태로 바꾸지 않으면서 기타 기록, 미제공, 적용 대상 아님을 유지합니다. 검토 필요 전체 건수는 필터 목록으로 연결되며 검토가 필요하다는 사실만으로 실패를 뜻하거나 작업 권한을 부여하지 않습니다. 운영, 서비스 응답, 가용성, 프로비저닝 및 관측 상태 렌즈도 계속 사용할 수 있습니다. 설정 편집기가 저장하지 않은 변경 사항을 보고하면 닫기 명령, Escape, 바깥 영역 선택, 다른 설정 섹션으로 이동 및 브라우저 새로 고침 전에 변경 사항을 취소할지 명시적으로 확인합니다. 검증된 프로비저닝 Succeeded는 보이는 P 축 표식과 함께 초록색 완료 표현을 사용합니다. 이 표현은 프로비저닝 완료만 보고하고 운영 정상이나 가용성을 입증하지 않으며, 일반 기록 값과 근거 부재 상태는 중립색 또는 패턴을 유지합니다. 검토된 정확한 상태 부재 조합을 가진 managed identity는 완전하고 세대로 경계가 지정된 인벤토리 페이지가 그 존재를 기록할 때만 초록색 관측됨으로 표시합니다. 축 표식은 사용하지 않으며 ID 사용 가능성, 역할 할당, 토큰 발급, 운영 정상 또는 가용성을 주장하지 않습니다. 리소스 대시보드의 각 상태 필터는 기호, 현지화된 상태 레이블 및 개수를 줄바꿈 가능한 칩 하나 안에 유지합니다. 데스크톱과 모바일 너비에서 칩은 리소스 패널 안에 머물며, 개수를 의미 표면 밖에 두거나 긴 레이블을 자르지 않습니다. 대표 렌즈는 부재 사유보다 기록된 값을 먼저 선택합니다. 트래픽 없음 서비스 응답 사유가 검증 가능한 프로비저닝 값을 가릴 수 없고, 공급자가 명시한 Unknown은 축이 표시된 중립 기록 값으로 유지합니다. 해결되지 않은 분류 또는 근거 공백만 ? 검토 필요로 남으며 실패는 별도의 빨간색 상태를 유지합니다. 헤더는 계정 ID 바로 앞에 현지화된 설명서 명령을 배치합니다. 이 명령은 운영 Console과 같은 출처의 /manuals 경로에서 엄격하게 검증한 catalog.json으로 채운 모달 우측 패널을 엽니다. 이전 빌드나 외부 Manual Studio는 VITE_MANUAL_STUDIO_URL로 이 경로를 바꿀 수 있습니다. 설치 프로그램은 같은 출처의 공유 메타데이터를 결속하고, 보호된 Static Web Apps 게시기는 포함된 카탈로그, 라이브러리 및 대표 공유 페이지를 검증합니다. 패널은 사용할 수 있는 모든 설명서를 01부터 05까지 한 번의 연속 스크롤에 순서대로 표시합니다. 단계 제목과 차분한 구분선으로 FDAI Value-to-Scale Journey를 유지하며 별도 페이지나 필터 컨트롤을 추가하지 않습니다. 각 카드는 4:5 책 표지를 중앙에 배치하고 설명서 소개만 카드 전체 폭을 사용하는 짧은 추천 문구로 아래에 표시합니다. 설명서 종류, L100부터 L400까지의 깊이, 단계, 제목, 예상 시간, 슬라이드 수는 책 표지에서만 표시하며 깊이 값이 없으면 L100을 기본값으로 사용합니다. 독립 라이브러리는 같은 정보 모델을 유지하면서 더 넓은 화면 구성을 사용할 수 있습니다. 표지 자산은 구성된 기준 경로 안에 있어야 하며, 설명서를 선택하면 HTML 슬라이드 프레젠테이션이 새 탭에서 열립니다. 별도로 호스팅하는 Manual Studio는 MANUAL_STUDIO_ALLOWED_ORIGINS에 명시된 출처의 카탈로그 읽기만 허용하고, 포함된 경로는 같은 출처를 유지합니다. 카탈로그를 사용할 수 없거나 검증할 수 없으면 그 상태를 명시적으로 표시하며 런타임 권한을 부여하지 않습니다. 인증된 active-incident 스트림은 idle Command Deck을 인시던트 선택자와 함께 열 수 있습니다. 이 선택자는 표현 힌트일 뿐이며 서버는 답변 전에 영속 인시던트와 근거를 다시 해석합니다. 하나의 Operator replica에 연결된 동시 스트림 구독자는 2초 polling 구간마다 권위 있는 인시던트 snapshot 읽기 하나를 공유하며, 인증과 재생 cursor는 연결별로 유지합니다. Tab과 Deck이 idle 상태이면 브라우저에서 인시던트를 처음 관찰할 때 localized 읽기 전용 조사 턴을 한 번 제출합니다. Browser-local 인시던트 원장은 reload 뒤 재생을 억제하며, 인시던트 배지를 누르면 명시적으로 다시 조사할 수 있습니다. 인시던트 질문이 여러 기록과 같은 정도로 일치하면 최종 답변은 plain-text 안내 대신 범위가 제한된 후보 버튼을 포함합니다. 버튼은 해당 후보의 exact 인시던트 대화를 열고 localized 읽기 전용 조사 턴을 즉시 제출합니다. 버튼 click은 운영자의 명시적인 요청입니다. 자동 active-incident 스트림 열림은 managed-resource 액션을 제출하지 않습니다.

이 문서는 pull 방향, 즉 오퍼레이터가 묻고 시뮬레이션하고 승인하는 경로를 다룹니다. Push와 pull은 같은 채널 자격 증명과 감사 계약을 공유하지만 서로 다른 통합 표면입니다. 로컬 준비에서 비공개 console/.env.local에는 브라우저 연결과 서버가 소유하는 FDAI_LOCAL_RESOURCE_GROUP 선택자만 추가할 수 있습니다. 명시적 프로세스 값이 우선하고 중복 키는 안전하게 차단하며 이 선택자는 실행 권한을 부여하지 않습니다. 로컬 준비 과정은 Terraform 상태를 읽지 않습니다. 로컬 상태 준비 캐시를 재사용하려면 실제 legacy migration과 서비스 migration 5개의 head가 모두 일치해야 하므로, 같은 Docker volume 안에서 데이터베이스를 다시 만들면 schema 준비를 다시 실행합니다.

Rules workspace는 카탈로그 출처와 배포 로컬 활성화 멤버십을 구분합니다. 선택한 Rule은 현재 PostgreSQL 세대와 변경자 이력을 표시합니다. Contributor는 영향이 없는 멤버십 요청을 제출할 수 있고, 별도의 Approver 또는 Owner가 정확한 proposal digest를 승인할 수 있습니다. 브라우저는 PostgreSQL에 직접 쓰거나 actor identity를 제공하지 않으며 enforce 또는 실행 권한을 부여하지 않습니다. 읽기 전용 rule.findings-summary는 저장된 요약이 개수를 보고한다는 이유만으로 평가 완료로 인정하지 않습니다. 행이 없으면 권위 있는 Rule 카탈로그를 읽은 뒤 evaluated: false로 유지합니다. 행이 있으면 독립적으로 검증할 수 있는 생산자가 현재 승격된 인벤토리 세대와 관측 다이제스트, 활성 Rule 카탈로그 리비전, 평가 대상 리소스의 완전한 분모, 최종 결과의 포괄 범위, 출처를 확인할 수 있는 Saga 결과 참조를 결속할 때까지 변환 결과 사용 불가로 분류된 503을 반환합니다. 평가 대상 인벤토리가 비어 있어도 발견 사항 0건을 보고하려면 완료를 입증하는 근거가 필요합니다. 읽기 실패는 행 부재로 바꾸지 않으며, 이 경계는 이전에 저장된 상태를 쓰거나 교체하지 않습니다.

고객-무관: 아래의 모든 채널 id, LLM 배포 이름, 리소스 id, 그룹 이름은 자리 표시자. 포크는 구성으로 실제 값을 공급합니다 (generic-scope.instructions.md).

Settings > Models는 현재 상태, 카탈로그 정책, 라우팅 근거, 웹 검색 정책을 네 개의 작업 중심 보기로 구분합니다. 개요는 사용할 수 있는 T1 서술 기능과 T2 mixed-model 준비 상태를 분리하고, 독립된 보조 모델이 없을 때의 운영 영향을 설명하며, 사용자별 서술기 선호를 읽기 전용 수명 주기 근거보다 먼저 표시합니다. 보조 모델 미구성 안내는 T2 차단 사유만 설명하며 T1 서술 기능을 사용할 수 있다고 단정하지 않습니다. 보기 선택기는 ArrowLeft, ArrowRight, Home, End 키와 로빙 포커스를 지원합니다. 웹 검색 공급자를 사용할 수 없으면 허용 목록 컨트롤보다 먼저 차단 사유를 설명합니다. 운영자는 정책을 미리 준비할 수 있지만 Console은 검색 요청을 실행할 수 있다고 표시하지 않습니다. Settings 모달은 데스크톱과 모바일에서 사용권 워터마크 위에 공간을 확보하며 Command Deck 맥락은 가려진 배경 경로가 아니라 현재 Models 화면을 따릅니다. 이러한 표시 및 포커스 규칙은 모델을 프로비전하거나 정책을 활성화하거나 실행 권한을 추가하지 않습니다.

운영 성과와 성과 보증 상세 보기는 근거 시각을 원시 ISO 문자열이 아니라 공용 콘솔 시각 포매터로 운영자의 시간대에 맞춰 표시합니다. 형식이 정해진 사용 불가 사유는 기계 코드 대신 현지화된 라벨로 표시합니다. 신뢰도 근거가 없는 측정값에는 참고용임을 알리는 안내를 함께 표시합니다. 누락된 값은 계속 근거 없음으로 남으며 예시 값이나 0으로 대체하지 않습니다. 이러한 표시 규칙은 읽기, 승인, 실행 권한을 추가하지 않습니다.

Command Deck은 기존 공통 Markdown 렌더러와 검증된 JSON 표시 데이터를 유지합니다. 문단을 운영 역할로 분류하거나 레이아웃에서 사실을 추론하지 않습니다. 근거 제한과 경고 또는 주의 블록은 접힘 표시가 있어도 계속 보입니다. 완료된 답변은 기존 검증 상태를 본문 앞에 표시합니다. 짧은 상태와 claim 수를 먼저 보여 주고, 전체 설명은 그 아래 덜 강조된 줄에 둡니다. 출처 컨트롤은 옆의 검증 상태가 이미 말하지 않은 근거 문제만 표시하며, 접근성 이름에는 모든 문제를 유지합니다. 원문 Markdown 보기에는 표시가 허용된 답변만 포함하고, 검증에서 거절된 최종 응답 본문은 노출하지 않습니다.

번호가 있는 인용을 선택하면 해당 출처의 상세 정보가 열립니다. 답변으로 돌아가면 선택했던 컨트롤의 포커스와 대화의 스크롤 위치를 복원합니다. 검색은 헤더에서 명시적으로 여는 컨트롤이며, Ctrl+K로 열고 Escape로 대화를 닫지 않고 검색만 닫을 수 있습니다. 근거 서비스의 가용성은 답변 인용과 별도의 펼침 영역에 표시하고, 사용 불가와 알 수 없음 상태를 보존합니다. 이러한 표시 컨트롤은 조회, 승인 또는 실행 권한을 부여하지 않습니다.

실제 콘솔은 공통 대화 스타일 파일을 가져오고 채팅 루트, 대화 본문, 인용, 입력창의 표현 역할을 연결합니다. 최종 답변이 표시되면 정상 완료 작업 기록은 간결한 펼침 영역으로 접고, 실패하거나 근거가 부분적이거나 사용 불가인 작업 기록은 계속 펼쳐 둡니다. 기록된 모든 단계는 상세에서 확인할 수 있습니다. 최신 메시지로 이동하는 명령은 입력창의 맥락 행에 배치하며 답변 본문 위에 떠서 내용을 가리지 않습니다. Command deck 시안과 같이 헤더 명령은 포인터를 올리거나 선택하기 전까지 조용하게 표시합니다. 정상 채팅 연결은 일반 메타데이터로 보여 주고, 저하된 연결만 색이 있는 배지를 유지합니다. 답변 출처는 화자 옆의 메타데이터로 표시합니다.

1. Framing - 무엇인가 (그리고 무엇이 아닌가)

섹션 제목: “1. Framing - 무엇인가 (그리고 무엇이 아닌가)”

인스턴스 후보 접수는 인증된 principal, 역할 및 그룹 범위를 사용하며 사람 보고 관계, 할당, 승인 또는 액션 권한을 바꾸지 않습니다. 기본 Core 인덱스 수명 주기는 계속 에이전트가 소유하는 읽기 전용 경로입니다. 정확한 ID 결과는 의미 순위 검색의 자격이나 전체 목록을 뜻하지 않습니다. 식별자 중심의 이중 언어 최종 응답은 전체 목록이 아닌 부분 후보이며 실행 권한이 없음을 명시합니다. 임의 속성을 표시하지 않으며 첨부 파일 인가, 정확한 문서 인용 또는 문서 근거의 완전성을 대신하지 않습니다.

FDAI Console의 대화 표면은 판단 권한을 가지지 않습니다. 판단 권한은 기존의 결정론적 엔진(T0), quality gate(T2 검증기), 안전성 검토, 제공되는 Rego 정책에 그대로 남습니다. Console은 운영자가 그 판단을 검토하고, 변경을 시뮬레이션하며, 시스템이 이미 대기열에 넣은 항목을 승인하는 대화형 표면입니다.

이에 따라 다음 세 가지 속성을 유지합니다:

  • LLM은 번역기이지 판단자가 아닙니다. 자연어를 도구 호출로, 도구 결과를 자연어로 바꾸며 실행 적격성은 오직 검증기만 부여합니다 (architecture.instructions.md § Design Principles).
  • 도구는 기본 데이터 출처가 아니라 파이프라인 단계를 노출함. 콘솔은 primitive log, metric, config query 대신 describe_event(), explain_verdict(), simulate_change()를 노출합니다. 시스템이 이미 reasoning을 완료했으므로 오퍼레이터는 결과에 대해 질문합니다.
  • 성장은 모델 기억이 아니라 카탈로그 성장임. 반복되는 조사 패턴은 발견 루프를 통해 새 룰 후보가 됩니다 (architecture.instructions.md § Rule 카탈로그) - 불투명한 세션 기억으로 남지 않습니다. 영속 대화 상태는 감사와 내보내기가 가능한 CSP-중립 audit_log 및 operator_memory record에 저장됩니다.

완료된 답변은 off-path 대화 Assurance 루프에도 들어갑니다. 단일 질문 개선 turn은 같은 인증된 /chat/stream 요청을 사용하고 6단계 Run Record, content-free 동적 프롬프트 manifest, Pantheon 참여자 및 평가자 프롬프트 프로필, 답변 준비 전환을 서로 다른 표현 gate로 노출합니다. 펼친 Run Record는 profile id, version, hash, situation 및 budget만 표시하며 SYSTEM text는 표시하지 않습니다. Run Record와 모델 프로바이더 워터폴, 답변 준비 추적은 Command Deck 대화 표현 계층의 역할로 렌더링하며, 브라우저 assurance는 표현 클래스가 아니라 대기 중인 턴으로 답변 준비 gate를 인식합니다. JSON과 SSE 어댑터는 타입이 지정된 conversation-turn 서비스와 분리된 요청 설정, 근거, 진행 상황, 검증 및 terminal-delivery 보조 로직을 공유하면서 기존 wire 계약을 유지합니다. 브라우저 assurance 파서와 근거 게이트 회귀 검사는 Console Vitest 테스트 모음에 등록되므로 저장소 전체 Console 수집과 집중 검사가 같은 실행기 계약을 검증합니다. 최종 intake는 exact 검증 사유와 evidence-manifest 완전성을 보존합니다. 결과 요약, 맥락 선택, Azure 조사, 영속 전달 및 첨부 근거는 타입이 지정된 프로바이더가 계속 소유하고 어댑터 모듈은 표현과 영속성만 조정합니다. Core는 의미 요청 결속, 범위가 제한된 인시던트 근거 변환, 현지화된 인시던트 답변 렌더링을 전용 모듈로 분리합니다. 의미 턴 프로세서는 이 모듈들을 조정합니다. 이 내부 분리는 wire 필드, 근거 한도, 인용, 로케일 또는 권한을 바꾸지 않습니다. 조립된 컨텍스트 선택 연결이 있으면 프로세서는 이전 의미 턴에서 관찰 모드 정책 비교도 예약하지만, 의미 변환 결과를 바꾸거나 브라우저 조작 권한을 부여하지 않습니다. Operator도 변경 불가능한 PostgreSQL 제품군 레코드, 범위가 제한된 행 변환 및 엄격한 인벤토리 근거 디코딩을 조회와 발신함 조정에서 분리합니다. Facade는 기존 import, principal 범위, 제안 멱등성, wire 값, 재생 순서 및 권한 없음 동작을 보존합니다. 영속 operations 제품군 제안은 요청 본문과 함께 인증된 principal의 역할도 기록합니다. Core는 요청 본문 필드가 아니라 서버가 기록한 이 역할로만 자동화 블루프린트 검토자를 바인딩하며, 기록된 역할은 실행 권한을 부여하지 않습니다. Operator IAM도 액세스 및 할당 제안 디코딩, 런타임 및 모델 구성 지속성, 구성 변환, 사람 승인 지속성을 공유 PostgreSQL 어댑터 facade에서 분리합니다. 잘못된 중첩 할당 duty와 goal 참조는 생략하지 않고 닫힌 상태로 실패하며, 공개 port, 리비전 fencing, 제안 멱등성, 승인 ID 및 execution_authority: false는 그대로 유지합니다. 기존 Slack 인계 경로 세 개의 메서드와 경로 조합은 각각 IAM 경로군에 한 번씩만 속합니다. 전체 경로 검사는 소유권과 등록 개수를 고정하며 새 승인 권한이나 실행 권한을 부여하지 않습니다. 전권 개발 프로필에서 Owner 본인의 개발 보류 항목에 대한 승인 카드는 정확한 대상 revision, dry-run, 범위 및 결속 다이제스트를 표시하고, 먼저 Entra 재로그인을 요청한 뒤 기존 Console 결정 경로에서 승인 결정만 제공합니다. 브라우저는 권한을 제공하지 않습니다. 자기 승인 인정 여부는 서명된 auth_time 클레임, Operator 결정 트랜잭션 및 Core 재검증이 결정합니다. 선택적 개발 gateway 대신 독립 Executor의 직접 구독 태그 어댑터를 사용해도 이 카드와 새 로그인 요건은 바뀌지 않습니다. 보류된 범주 전용 거부에서 다른 승인자에게는 반려 결정과 요청한 개발 Owner만 승인할 수 있다는 안내만 표시되며, 해당 Owner는 다시 로그인하지 않고도 반려할 수 있습니다. Operator 의미 표현도 Pantheon 품질 보증 terminal, 현지화된 Incident 블록 및 내용이 제거된 기술 trajectory를 terminal 이벤트 조정에서 분리합니다. 이 renderer는 읽기 전용이며 wire 필드, 근거 상한, 로케일 선택, 조회 redaction 및 execution_authority: false를 보존합니다. Operator 의미 전송도 검증된 조회 활동 변환과 문서 답변 구체화를 이벤트 iterator에서 분리합니다. 이 분리는 이벤트 순서, 재생 cursor, 진행 단조성, 기한 보류, principal 범위, 내용 redaction 및 실행 권한 없음을 보존합니다. 명시적 고정 census 진단 요청은 범위가 제한된 conversation-assurance:<case-id> 목적을 사용합니다. Core는 Bragi가 답변하기 전에 사례, 질문 및 로케일을 서버 소유 census와 대조해 검증합니다. 생성된 done 이벤트는 답변, 콘텐츠가 없는 진단, 추적 지연 시간 및 schema-v2 큐/품질 보증 timing을 전달하며, 일반 operations-review 요청은 기존 의미 결과 계약을 유지합니다. 버전 1.2 semantic projection은 서비스 분리 전반에서 이 경계를 보존합니다. answered는 exact release, principal manifest, 계획, 실행 receipt, 근거 참조를 요구하며 의존성을 사용할 수 없으면 typed limitation을 반환합니다. 최종 근거 매니페스트는 잘리지 않으며, 중복 제거된 receipt 참조가 12개를 넘거나 256자를 넘는 참조가 하나라도 있으면 턴을 semantic_evidence_incomplete로 보류합니다. 기록 상태 조회도 Operator와 인벤토리 온톨로지 release가 다르면 HTTP 409로 닫힌 상태를 유지하며 현재 release에서 완전한 원자적 재변환을 마친 뒤에만 복구합니다. 버전 1.6은 범위가 제한된 인증 그룹 claim과 관리 문서 근거도 전달할 수 있습니다. Console은 Core가 제공한 버전 2 의도 근거만 수락하며 정확한 개정 인용과 불완전한 범위의 한계를 표시합니다. 문서 텍스트를 지시나 현재 운영 상태로 취급하지 않습니다. 커밋된 의미 의도 범위 산출물은 권위 있는 원본에서 다시 생성하고 정확한 통합 질문 은행 다이제스트에 결속하며 런타임 권한을 부여하지 않습니다. 소유 문서의 서식만 재배치하면 Console 동작을 바꾸지 않고 카탈로그 인용 고정값만 갱신할 수 있습니다. 같은 원본 전용 갱신은 사람 보고선을 만들거나 변경하지 않습니다. busy-input 카탈로그 레이블을 갱신해도 400개 질문 인벤토리와 이에 의존하는 의미 의도 범위 다이제스트만 다시 생성되며 질문 신원, 준비 상태, 근거 권한, 첨부 파일 동작 또는 보고선 동작은 바뀌지 않습니다. 격리된 AKS 실행 경로를 등록해도 Console의 승인 권한이나 독립적인 실제 효과 근거 요건은 바뀌지 않습니다. 해당 테스트를 격리된 실행기 서비스 모음에 할당해도 테스트 수집 메타데이터만 바뀝니다. 테스트 맥락 후보 레이블도 연결된 영어와 한국어 질문은행 원본 및 이에 의존하는 의미 의도 범위 산출물의 다이제스트만 갱신해야 합니다. 질문 400개의 신원, 준비 상태, 범위 분모, 근거 권한, 작업 권한은 바뀌지 않습니다. 생성 산출물의 일치 여부는 의미 또는 운영 준비 근거가 아닙니다. 테스트 맥락 수명 주기 컨트롤도 같은 무권한 Console 경계 안에 있습니다. Command Deck은 인증된 principal에 대한 grant 게이트 적용 서버 선택지를 읽고, Operator API의 테스트 맥락 경로를 통해서만 제안, 검토, 철회를 제출하며, 해당 경로가 반환한 제안 ID에 상태를 결합합니다. 인증된 명령 증적 조회는 요청자 또는 해당 명령 범위에 필요한 검토나 철회 grant를 보유한 검토자에게 전달 및 과거 감사 적용 상태를 표시합니다. 현재 승인 상태는 독립 증명 발급과 런타임 수용이 검증될 때까지 평가되지 않은 상태로 유지됩니다. 없거나 잘못되었거나 범위가 중복되었거나 철회되었거나 만료되었거나 아직 유효하지 않거나 사용할 수 없는 grant는 브라우저가 계산한 선택지가 아니라 사용 불가 상태로 렌더링됩니다. 이 grant 상태를 확인하는 Operator 테스트는 각 grant 유효 기간을 현재 시각 기준으로 만들고 매개변수화한 grant 사례마다 고정 ID를 붙이므로, 병렬 테스트 작업자가 언제 시작하든 같은 사례를 수집합니다. 선택적 문서 근거가 없을 때는 독립 운영 근거가 완성된 경우에만 부분 답변을 허용합니다. 필수 또는 명시적 문서 근거가 없으면 보류하며, 알 수 없는 근거 권위 값과 지원되지 않는 의도 근거 버전은 낮은 버전으로 바꾸거나 표시하지 않고 폐기합니다. 구조화된 클라우드 문서 확장은 개발 중입니다. v3 형식 선택이나 수락된 검색어는 권한을 부여하지 않으며 실제 환경의 준비도를 입증하지 않습니다. Process 저널은 적응형 조사 공간도 제공합니다. Operator는 Process 개정 번호와 중첩된 콘텐츠 다이제스트를 다시 확인하고, Console은 범위가 제한된 라운드, 경쟁 가설, 근거 공백 및 최종 상태를 표시하기 전에 같은 신원을 검증합니다. 축약한 가설 레이블은 브라우저 기본 title 말풍선 대신 키보드로 접근 가능한 공용 Tooltip을 통해 정확한 식별자를 제공합니다. 이 공간은 변경, 승인, 승격, 계획 선택 또는 실행 권한을 부여하지 않습니다. 프로세스 작업 영역은 불러온 실행 수와 스냅샷 정보 9개를 먼저 표시하고, 제어·조사·계획·저널·워크플로 근거 섹션은 접힌 상태로 제공합니다. 출처를 확인해도 선택은 유지되며, 이벤트 링크는 해당 저널과 기록을 펼칩니다. 코드 보안 검토 작업 영역은 기록된 전체 검토 수와 브라우저에 표시하는 범위가 제한된 문제 목록을 구분합니다. 불확실한 심각도, 검사 범위의 공백, 다이제스트에 연결된 산출물 출처를 유지합니다. 관리되는 로컬 준비 과정은 제한된 스캐너 작업자를 시작하기 전에 변경 불가능한 취약점 캐시 스냅샷을 검증합니다. 이 사전 요건은 첨부 파일, 수집, 대화, 승인 또는 실행 권한을 바꾸지 않습니다. 명시적으로 선택한 Sample 모드는 VM 시작 검토 흐름 1건과 보조 보류·거부 사례 2건을 읽기 전용으로 제공합니다. 또한 생성 이벤트 100건으로 구성된 티어 코호트를 T0 94퍼센트, T1 5퍼센트, T2 1퍼센트로 표시합니다. Sample 생성기는 이 분포를 정확히 만들고 표시 전용임을 명시하며 Live 라우팅을 변경하거나 운영 근거를 만들지 않습니다. 핵심 합성 상관관계는 운영자 질문, 근거 확인, 별도 사람 승인, 공급자 접수, 독립 관찰, 조정 및 복구 준비를 연결하지만 빈 Live 소스를 대체하거나 허용된 상태 전환을 제공하지 않으며 운영 효과를 주장하지 않습니다. 인시던트 기록에는 완료된 상관관계를 유지하고 승인 대기 카드에는 별도 상관관계를 사용하여 현재 상태가 충돌하지 않도록 합니다. 승인 대기 카드의 인시던트, 추적, 감사 및 RCA 상세 링크는 Sample 모드를 유지하고 하나의 합성 상관관계에 연결됩니다. 각 상세 화면은 일치하는 합성 근거를 표시하거나 기록된 근거가 없음을 명확히 표시하며 Live 데이터를 조회하지 않습니다. Live 승인 카드는 서버가 해당 상관관계의 정규 인시던트를 확인한 경우에만 인시던트 이동 링크를 표시합니다. 인시던트가 없는 운영 상관관계에서도 감사, 추적 및 RCA는 계속 사용할 수 있습니다. Live 인시던트 목록이 비어 있으면 확인된 운영 인시던트만 표시한다는 설명과 함께 승인 및 감사 화면 링크를 보여 주며, 인벤토리 갱신과 컴플라이언스 발견은 그곳에 기록됩니다. 검토 전용 작업 초안은 근거 없는 답변이나 실패가 아니라 검토용 초안으로 표시됩니다. 감사 기록은 누가 수행했는지 보여 주고, 인시던트 상세는 incident.open 기록의 행위자를 생성자로 표시하며, 디렉터리가 해석한 조회 시점 actor_display 레이블이 있으면 그것을, 없으면 기록된 subject id를 사용합니다. 헤더의 알림 컨트롤과 발견된 문제 화면은 GET /notifications/inbox의 제한된 console-inbox A2 레코드를 브라우저별 안 읽음 개수와 함께 보여 줍니다(Console 알림함 참고). 일치하는 Sample 상세 변환 결과가 없는 합성 작업, 대상 및 규칙 식별자는 잘못된 링크 대신 텍스트로 표시합니다. 런타임 브라우저 알림은 명시적으로 Live를 선택하므로 탭의 Sample 기본 설정이 운영 경보 근거를 Sample로 바꾸지 않습니다. 같은 본문 폭의 비교, 키보드 조작, 밝은·어두운 테마의 상태 글자 대비, 320-1440px 화면 재배치 검사가 이 표현을 검증합니다. 카탈로그 검증은 관련 없는 형식 지정 도우미가 아니라 가져온 t 바인딩을 따릅니다. Operator 소유 Kafka 어댑터는 의미 제안을 게시하고 의미 변환 결과를 소비하며 검증된 Core 단계 및 Pantheon 런타임 상태 프레임을 별도의 범위 제한 /live/stream과 /agents/stream SSE 허브로 중계합니다. 실시간 화면은 제어 루프 결정에 /live/stream을 사용하고 현재 소스 읽기 활동에는 별도의 읽기 전용 /agents/stream 구독을 사용합니다. 따라서 인벤토리, 상태, 메트릭, 로그, 비용 및 복구 관찰을 결정이나 실행으로 표시하지 않으면서도 활동 상태를 계속 확인할 수 있습니다. 인증된 GET /agents/activity는 Console이 새 스트림 프레임을 적용하기 전에 영속 원본에서 범위가 제한된 인벤토리 검사, 온톨로지 변환 및 현재 상태 읽기 이력을 제공하며 현재 상태 재생과 실제 운영 프레임은 같은 해시 상관관계 활동 ID를 사용합니다. 이 관찰 경로는 스냅샷 읽기와 같은 bearer 게이트를 사용하고 Kafka가 없으면 연결 유지 신호를 보내며, 권한 있는 프레임이 도착할 때까지 Awaiting source를 표시합니다. GET /chat/health는 영속 대화 변환 결과 행을 요구하지 않고 의미 브리지의 프로세스 소유 워커 준비 상태를 직접 읽습니다. Console 게시는 선택한 프로필에 HTTPS 브라우저 gateway 기준 URL이 있으면 해당 URL을 사용하고, 없으면 Container Apps FQDN을 유지합니다. 두 경로 모두 브라우저 경로 재작성 없이 같은 루트 Operator API 경로를 노출합니다. Terraform은 request와 projection topic을 고정합니다. Core는 검증된 query table을 렌더링하고 Operator는 영속 result를 기존 done event로 변환합니다. 주입된 공급자가 우선하며 로컬 서술기는 다른 공급자와 함께 사용하지 않습니다. 전체 스택 준비는 명시적 절대 경로 FDAI_LOCAL_RESOLVED_MODELS_PATH의 경로와 파일 바이트를 기존 캐시와 단계별 캐시 식별값에 포함합니다. 변경되면 모델 연결을 다시 생성합니다. 같은 계약은 서비스 경계를 변경하지 않고 명시적으로 활성화한 소유자 전용 Kubernetes fleet 파일도 포함합니다. 명시적 선택 없이 기본 모델 산출물이 누락되면 런타임 동등성 규칙에 따라 캐시 재사용 전에 선택 범위의 기존 배포에서 생성합니다. 조회가 실패하거나 대상이 모호하면 준비를 중단하며 리소스를 생성하거나 권한을 부여하지 않습니다. 관리되는 전체 스택 작업은 권위 있는 인벤토리 새로 고침을 지속 조정 프로세스에 맡기므로 수집이 진행되는 동안 Console, Core 및 Operator 프로세스를 시작할 수 있습니다. 전체 준비 상태는 활성 범위 인벤토리 커버리지와 analyzer의 첫 번째 정상 tick을 계속 요구합니다. 로컬 analyzer는 서비스 소유 StateStore binding을 명시적으로 받아 자율성을 높이지 않고 기록된 상태 근거의 대상 admission을 검증합니다. 독립 실행 준비는 동기 인벤토리 새로 고침을 유지합니다. 로컬 준비는 오래된 소비자 정리 도구를 캐시 식별값에 포함하고 준비 점검 메시지를 fdai.startup.probes에 격리합니다. 삭제 보존 기준은 1시간 또는 파티션당 1 MiB이며 세그먼트는 10분마다 교체합니다. 정리 도구는 비어 있는 PID별 자기 점검 그룹을 다시 확인하고 프로세스가 종료된 그룹만 제거합니다. 운영 메시지, 실패 메시지, 활성 그룹 및 데이터베이스 기록은 보존합니다. 브로커 보존 정책은 비동기로 적용되며 기존 런타임은 관리되는 준비와 재시작 이후 새 점검 토픽을 사용합니다. Operator API는 검토를 준비 완료로 표시하거나 카탈로그 제안을 만들거나 권한을 부여하지 않습니다. 잘못된 답변 보고는 자율 재평가 근거만 추가하며, 통제된 전이에는 정확한 재생 근거와 기존 카탈로그 수명 주기가 계속 필요합니다.

다음 토큰들이 architecture.instructions.md 의 공유 어휘에 추가되며 참조하는 모든 문서에서 일관되게 사용된다:

  • operator-console - 여기 문서화된 계층 표면.
  • 서술기 - 오퍼레이터 콘솔의 LLM tier (translator 역할; judge 절대 아님). T2 quality-gate 역할과는 별개 - 그건 제안된 액션에 대한 도메인 reasoner.
  • operator-conversation - 오퍼레이터와 콘솔 사이의 범위가 제한된 exchange 하나 (멀티-turn, RBAC-scoped, 감사됨).
  • console-tool - 서술기가 호출 가능한 노출된 파이프라인 단계 또는 카탈로그 화면 하나.

T2 실행 적격성 검사 또는 불충분한 근거 처리에 대한 설명형 질문은 action-context 또는 intent-graph 도구보다 정본 glossary를 먼저 사용합니다. 이 우선순위는 개념 설명에만 적용됩니다. 정확한 액션, 승인, 상관관계 또는 멱등성 선택자가 있는 질문은 계속 서버가 소유한 액션 수명 주기 근거가 필요합니다.

예측 이력 제어의 영문 및 한국어 메시지는 영어 대체 표시를 유지하는 기존 지연 로드 Settings 경로 카탈로그에 둡니다. Python task 클라이언트도 인증된 시작 과정에서 인증 컨텍스트가 설정된 뒤에만 로드합니다. 이 경계는 표시 동작, 서버 계약이나 권한을 바꾸지 않고 초기 JavaScript 예산 500000바이트 원본 및 150000바이트 gzip 한도를 유지합니다.

2. 3-layer 아키텍처. 주요 단계는 CLI REPL, Teams (pull), Slack (pull), Web chat (Console SPA), Narrator (LLM)\nT1 translation 기본\nT2 translation 에스컬레이션, 의도 분류\n(read | simulate | approve | breakglass), RBAC gate\n(도구별 역할 하한), 검증기 re-check\n(자동 실행 없음), 세션 상태\n(감사 로그 기반), ControlLoop, RuleIndex / T0Engine, QualityGate입니다.

  • 계층 3 (채널)은 얇습니다. 어댑터는 wire format과 ConversationTurn 사이에서 한 턴을 변환하며 판단하지 않습니다. Streamed 읽기는 프로바이더 작업이 idle인 동안 진행 상황 또는 근거가 없는 SSE comment 하트비트를 전송합니다. 스트림을 닫으면 해당 작업을 취소하고 대기합니다. Web, Slack 및 Teams는 같은 ordered agent-activity 계약을 렌더링합니다. Bragi는 인계를 표시하고, 책임 관찰기는 정본 명령/결과 근거를 표시합니다. 에이전트 대화 대상 또는 인시던트 연결에서 선택했거나 Ask <agent> 또는 @<agent>로 지정한 에이전트는 응답 소유자로 유지됩니다. 해당 에이전트가 판단을 보류하고 턴을 다시 인계한 경우에만 Bragi가 응답 소유자가 됩니다. 에이전트 카드의 Ask는 간결한 projected-state 줄 목록으로 시작합니다. 더 긴 고정 맥락은 백엔드 이력용으로 화면에 표시하지 않으며 visible 보고는 범위가 제한된 2단어 burst로 스트림합니다. Web 조사는 수신한 가지 프레임만 경과 시간, 타입이 지정된 배지 및 staggered 상태 행으로 animate합니다. 최종 조사는 최종 답변 옆에 세션 헤더와 관찰된 단계를 계속 표시하며 민감정보가 제거된 명령 출력과 시각만 공개에 접어 둡니다. 관찰된 실행 단계와 연결된 출처 가지는 별도 행으로 반복하지 않고 해당 단계에 한 번만 표시합니다. Full workspace는 desktop 답변과 구조화된 근거에 하나의 760 px 읽기 폭을 사용하고 행을 스크롤하는 동안 긴 표 머리글을 계속 표시하며 mobile 뷰포트에서는 레이블 행 재배치와 함께 가로 overflow 없이 전체 폭을 사용합니다. Phase 표시, 15 px 대화 규모, 하나의 dark 명령/코드 표면으로 운영 hierarchy를 실행 mock과 맞춥니다. 브라우저는 작업을 재생하거나 진행 상황을 invent하지 않습니다. 관찰된 활동은 input_kind로 프로세스 명령과 정본 서버 조회를 구분합니다. 조회 행은 CLI 인자, 종료 코드, endpoint 또는 프로바이더 오류를 만들지 않고 검증된 타입 입력, 권한, 스냅샷 출처 이력, 범위가 제한된 결과를 표시합니다. 실행 출처 이력은 서비스 간 transport와 interface, service, component, operation, provider-neutral source를 분리하므로 ObjectSet 읽기는 내부 typed query로 유지됩니다. 수명 주기 전용 event는 기록된 설명, owner, outcome, authority, observation time을 표시하고 이전 record는 기록되지 않음으로 유지합니다. Web, Slack, Teams 및 영속 replay는 조회/명령 구분을 보존합니다. Narrator 이정표는 다음 그룹이 시작되기 전에 앞선 활동 그룹을 settled 상태로 바꿉니다. Web은 이정표를 간결한 진행 상황 note로 표시하고 현재 그룹만 펼치며 completed 그룹을 causal 순서로 복원합니다. Slack과 Teams는 같은 cumulative 민감정보가 제거된 활동 변환 결과를 수정합니다. 일반 에이전트 대상과 인시던트 연결의 에이전트 값은 일치해야 하며 conflict는 근거 수집 전에 차단됩니다. Model-backed 답변은 global 읽기 전용 안전성을 먼저 유지하고 exact conversation_policy 일치에서만 선택된 변경할 수 없는 charter를 추가합니다. Dedicated 대상 세션은 후속 조치 턴 전반에서 검증된 에이전트 voice를 사용하고 self-role 질문은 내용 기반 주소를 가진 기능 사실에서 결정론적으로 렌더링하며, 일반 화면 위임은 Bragi 서술기를 유지합니다. Policy mismatch 또는 명시적 인계는 서술을 Bragi로 돌려보내며 charter는 근거, 권한 또는 도구 권한이 되지 않습니다. 주입되는 charter는 해당 턴용 변경할 수 없는 기준선과 operator-locale 계층으로 조립됩니다. 에이전트 근거는 해당 에이전트 턴의 프롬프트 계층 매니페스트와 다이제스트도 제공하므로 소진된 에스컬레이션 예산이나 근거 공백이 제약으로 명시됩니다. 벤더 어댑터는 표현만 변경합니다. Slack은 조회, 명령 및 출력 본문에 plain-text 활동 블록을 사용하여 markup character가 관찰된 입력을 바꾸지 못하게 하며, 게시, 스트림 갱신 및 편집에서 해당 블록을 보존합니다. Teams는 Adaptive 카드를 24,000 바이트 이하로 유지하고 생략된 활동 수를 표시하며 최종 책임 에이전트 답변을 항상 보존합니다. 렌더러는 producer-side 부분 근거를 [UPSTREAM OUTPUT TRUNCATED]로, vendor-limit clipping을 [CHANNEL OUTPUT TRUNCATED]로 구분합니다. Full-workspace 표현, 작성기 배치, 이력 복원, 헤더 컨트롤 및 내부 화면 근거는 점진적 대화에서 소유합니다. 전송된 이미지는 운영자 턴 안에 표시되며 검증된 이미지 첨부는 prompt-only semantic 도구 계획 수립과 주어가 생략된 LLM 사용량 구체화를 우회하여 현재 이미지를 vision 서술에 전달합니다. 최종 검증은 해당 해석을 screen-verified로 취급하지 않고 현재 conversation-image 참조가 있는 검증되지 않은 답변으로 보존합니다. 측정된 LLM 사용량을 명시한 요청은 결정론적 도구 요청으로 유지합니다. 브라우저 대화 기록 캐시에는 이미지 서술자만 유지하고 인증된 이력 읽기가 principal 범위 대화 이미지 저장소에서 바이트를 부하합니다. 복원된 대화 기록에는 마지막 기록 시각과 새 대화 작업을 표시합니다. 표 cell의 <br> 변형만 안전한 줄바꿈으로 바꾸고 다른 raw HTML은 텍스트로 유지합니다. 좁은 화면에서도 Markdown 표는 native 표 의미 규칙을 유지합니다.

  • 계층 2 (조정기)는 의도 분류, RBAC gating, 도구 전달, 검증기 re-check, 세션 bookkeeping을 소유합니다. Core translator는 Narrator 프로토콜을 사용합니다. GroundedAnswerNarrator도 구현하는 서술기는 완료된 성공 ToolResult를 presentation-only 2차 pass에서 받습니다. 조정기는 원본 tool-result 턴을 보존하고 새 도구 호출을 허용하지 않으며 렌더링 실패, 응답 한도 초과 또는 evidence_ref 누락 시 결정론적 미리 보기로 대체 경로합니다. System 프롬프트는 AnswerPlan, 도구 side-effect 등급, evidence-reference 개수 및 이전 대화 맥락 유무에서 결정론적으로 조립합니다. 현재 인바운드/도구/결과 트랜잭션은 이전 맥락에서 제외합니다. Web 세대는 Operator API 백엔드 경계이므로 배포가 프로바이더를 바인딩할 수 있습니다. AnswerPlan.format은 table, chart, mixed를 표현 선호 설정으로 유지합니다. 명시적인 요청 format 또는 저장된 응답 선호 설정은 검증된 결과가 의미를 바꾸지 않고 해당 형태를 지원할 때만 우선합니다. 적합한 읽기 근거가 준비되면 범위가 제한된 구조화된 모델 호출이 서버가 선언한 자리로 PresentationPlan을 배치할 수 있습니다. 모델은 형태 메타데이터, 허용된 slot-component 쌍, 커버리지 등급 및 운영자 요청만 받습니다. 행 값을 받지 않으며 title, 사실, 단위, 임계값, 상태, 심각도, color, 링크 또는 근거 참조를 출력할 수 없습니다. 계획은 자리 순서, 허용 목록에 있는 컴포넌트 하나, emphasis 및 supporting 상세의 초기 접힘 상태만 선택할 수 있습니다. 필수 자리를 반복하거나 생략할 수 없습니다. AnswerPlan.format은 정본 Markdown 텍스트 대체 경로를 계속 소유하고 PresentationPlan은 Console 산출물 배치만 소유합니다. 표현 계획 수립은 정본 텍스트 format을 다시 작성하지 않습니다. 명시적인 format 또는 저장된 선호 설정이 있으면 산출물을 생략하고 기존 표, chart, 목록 또는 산문 렌더러를 유지합니다.

    서버는 변경할 수 없는 근거를 범위가 제한된 presentation_artifact로 컴파일합니다. 버전별 배치, 무결성 및 대체 규칙은 Operator Console 점진적 대화에서 정의합니다. 컴파일러는 차트의 호환되는 단위와 임계값 방향을 강제하고 부분 또는 잘린 커버리지를 계속 표시하며 각 블록 참조를 최종 검증 증적에 바인딩합니다. 부분 출처가 completed 자리를 제거하지 않습니다. 답변은 사용할 수 있는 검증된 사실을 모두 렌더링하고 누락된 부분만 알 수 없음 또는 사용 불가로 표시합니다. Streamed evidence-fast-path 턴은 완전한 결정론적 계획으로 시작하고 선택적 mini-model 플래너를 병렬로 실행하면서 정본 답변을 즉시 스트리밍합니다. 답변이 표시된 뒤 최종 이벤트는 valid alternative 배치를 최대 5초 동안만 기다립니다. 시간 초과, 취소, 잘못된 출력 또는 프로바이더 실패에는 결정론적 계획을 유지합니다. Non-stream JSON 경로는 결정론적 계획을 바로 사용하며 표현 계획 수립 때문에 근거 답변을 지연하지 않습니다. 관련 검증된 자리가 하나도 없을 때만 계획 수립이 산출물을 반환하지 않을 수 있습니다. 모델, 스키마, 시간 초과 또는 컴파일러 실패에는 결정론적 답변과 기본값 배치를 사용하므로 운영자는 가능한 최대 evidence-supported 답변을 계속 받습니다. 기존 Markdown 표, fenced chart, bullet 및 산문 출력은 다른 채널과 이전 클라이언트를 위한 compatibility 계약으로 유지합니다. 의미 턴 플래너는 해당 요청의 범위가 제한된 기능만 엄격한 구조화 출력 스키마로 변환합니다. 모든 객체는 추가 속성을 거부하고 선언된 필드를 필수로 표시합니다. 도구의 선택적 인자는 nullable 필드로 표현하며 조정기는 결정론적 선택 검증 및 전달 전에 null 자리 표시자를 제거합니다. 렌더링 후 코어 검증기가 변경할 수 없는 ToolResult에 없는 숫자 값, 비율, RFC3339 시각 및 정본 룰, 이벤트, 인시던트, 상관관계, ActionType 식별자를 거부합니다. current, live, latest 같은 최신성 표현에는 해당 결과의 exact 시각이 필요합니다. Markdown 목록의 순번, 일반 리소스 별칭, 식별자 내부 숫자는 서식을 사실 주장으로 오인하지 않도록 이 보수적인 검사에서 제외합니다. 의도 번역이 여전히 모호하면 선택적 ClarificationNarrator가 principal에게 보이는 installed 도구 스키마만 받고 범위가 제한된 질문 하나를 반환할 수 있습니다. 이 경로는 도구를 호출하지 않고 인자를 추측하지 않으며 프로바이더 실패 또는 one-question 형식 위반 시 결정론적 판단 보류 응답으로 대체 경로합니다. 선택적 ContextualNarrator는 범위가 제한된 이전 턴에서 단일 도구 후속 조치를 번역할 수 있습니다. 이전 텍스트는 신뢰할 수 없는 데이터로 이스케이프 처리하며 파싱된 모든 스칼라 인자는 Unicode 및 구분자를 정규화한 뒤 현재 발화 또는 이전 턴에 실제로 존재해야 합니다. 인자가 누락되거나 만들어 낸 인자이면 도구 조회와 실행 전에 번역 전체를 폐기합니다. 이 프로토콜을 구현하지 않는 어댑터는 기존 context-free Narrator.translate 동작을 유지합니다. T0에서 직접 일치하는 항목을 찾지 못한 복합 요청에서는 선택적 ReadPlanNarrator가 정본 명령 두세 개를 제안할 수 있습니다. 조정기는 첫 호출 전에 모든 명령을 자체 문법으로 다시 파싱하고 전체 계획의 도구 설치 여부, RBAC, 명령 중복 여부 및 side_effect_class=read를 검증합니다. 잘못된 계획은 아무것도 실행하지 않습니다. Valid 읽기는 순차적으로 실행하고 단계별 도구 호출/결과 쌍과 근거 참조를 보존한 뒤 같은 근거에 기반한 표현 단계를 사용합니다. 읽기 하나가 실패하거나 사용 불가이면 남은 계획을 중단하고 종합을 건너뜁니다. 빈 화면이나 서술기 출력 대신, 검증되지 않았음을 명시하는 결정론적 보류 결과를 반환합니다. 종합 전에 aggregator는 두 도구가 같은 resource_id, scope_ref 또는 id를 명시할 때만 high-signal state, status, verdict, mode, health, outcome 필드를 비교합니다. 값이 다르면 구조화된 conflict와 양쪽 근거를 보존하고 집계를 abstain으로 바꾼 뒤 모델 렌더링을 건너뜁니다. 서로 다른 신원은 비교하지 않습니다. 로컬 및 배포 환경의 대화형 읽기는 코어가 소유한 하나의 모드 정책을 사용하므로 같은 지연 시간 프로파일에서 같은 direct, streamed 또는 detached 모드를 선택합니다.

  • 계층 1 (Core)은 기존에 제공되는 결정론적 코어를 그대로 사용합니다. Console은 새 판단 경로, 영속 저장소, 실행 경로를 추가하지 않습니다. Console 도구 호출은 기존 파이프라인에서 이미 지원하는 호출로 해석합니다.

출처 인벤토리와 경계는 Operator Console 모듈 지도 and Boundaries가 소유합니다.

전체 거버넌스 적용 도구 목록은 운영자 콘솔 도구 카탈로그를 참조하세요.

4-6. 런타임 모델 (Narrator, DI 경계, 세션 모델)

섹션 제목: “4-6. 런타임 모델 (Narrator, DI 경계, 세션 모델)”

focused 소유자 문서로 이동했습니다: operator-console-runtime-model-ko.md. Narrator LLM tier 모델(섹션 4), DI 경계(섹션 5), 세션 모델 및 기억(섹션 6)를 다룹니다.

operator-console-runtime-model-ko.md#6-세션-모델—memory 참조.

7. 안전 invariant (chat은 이를 약화시키지 않음)

섹션 제목: “7. 안전 invariant (chat은 이를 약화시키지 않음)”

coding-conventions.instructions.md § 안전성 의 7개 자율 작업 안전조건을 변경 없이 적용합니다. 대화 경로에는 다음과 같이 3개를 추가합니다.

매 write-class 도구 호출 (simulate_change in 적용 모드 - 오늘 허용 안 됨 -, approve_hil, run_runbook --live)에는 다음이 반드시 포함되어야 합니다:

  1. Stop-condition - 콘솔 변경 없이 기저 ActionType에서 상속.
  2. Rollback 경로 - ActionType의 rollback_contract에서 상속.
  3. 영향 범위 한도 - blast_radius에서 상속하며 자연어로 넓힐 수 없음.
  4. 예행 실행 증적 - write-class 도구의 실제 운영 전달 전에 필요.
  5. Per-resource lock - 브라우저가 아닌 실행 경로에서 획득.
  6. 멱등성 - 재시도를 같은 액션에 연결하고 중복 변경을 억제.
  7. 감사 항목 - 전달 전에 기록하고 최종 결과로 닫음.
  1. 모든 쓰기 등급 도구 호출에서 검증기를 다시 실행합니다. Narrator가 쓰기 등급 도구를 대상으로 tool_calls 프레임을 발행하면, 조정기는 도구 인자에 대해 T0Engine + policy-as-code 검사를 다시 실행합니다. 판단을 보류하거나 거부하면 도구 호출을 폐기하고 턴을 사람 승인으로 넘깁니다 (§7.4 참조). 이 메커니즘으로 “LLM은 실행 자격을 부여하지 않는다”는 원칙을 보장합니다.
  2. 대화 경로에서도 자기 승인을 허용하지 않습니다. approve_hil은 호출자의 Entra oid가 대기 중인 항목에 기록된 요청자와 일치하면, 호출자가 Owner 역할을 보유하더라도 거부합니다. PR 게이트 (security-and-identity.md)와 동일한 와 같은 불변식입니다. 대화 경로에서는 거부할 때 감사 사유에 불변식 이름을 추가합니다.
  3. BreakGlass 요청은 time-boxed 이고 명시적이어야 함. activate_break_glass는 (reason, expiry <= 4h) 요구하고 구성된 Owner 모두에게 push-방향 Slack/Teams 어댑터 (channels-and-notifications.md)로 페이지. Silent 권한 상승 없음. 요청은 알림에 대해 실패 시 차단: 기본 pager 채널이 down 이면 조정기는 구성된 대체 경로 채널을 시도합니다. 어느 채널도 전달을 확인하지 못하면 요청은 거부됩니다 (감사 증인 없는 break-glass는 지연된 긴급보다 더 위험), 거부 자체도 감사 기록을 남겨 Owner가 시도를 확인할 수 있게 합니다. 현재 제공되는 도구는 페이징 및 감사 증적만 반환하고 ConversationSession, Principal, RiskGate 역할 축을 변경하지 않으므로 승인 자격도 raise하지 않습니다. 실제 session-scoped 권한 부여 저장소와 전달 통합이 추가되기 전에는 권한 상승이 발생하지 않는 fail-safe 상태입니다. 향후 권한 부여도 auto를 절대 반환하거나 자기 요청 승인을 허용하면 안 됩니다(safeguard 9 유지). 정확한 자격 의미는 user-rbac-and-identity.md § 2 에 정의되고 RiskGate 역할 축 (execution-model.md § 2.5)가 mirror.

컴파일된 속성 답변은 검토된 Property 값만 보여 줍니다. 구조화된 값은 중첩된 비밀, 자격 증명, 연결, 키 정보와 주소를 답변과 기술 상세 모두에서 가린 채로 유지합니다.

현재 ActivateBreakGlassTool 결과는 activated_at, expires_at, 민감정보가 제거된 사유, pager_receipt, audit_id를 포함합니다. max_ttl_seconds 기본/상한은 14400이며 어댑터 생성 시 더 큰 값은 거부합니다. 이 결과는 권한 부여 기록이 아니며 세션 종료/만료를 적용하는 영속 권한 부여 저장소도 아직 없습니다. 따라서 어떤 후속 경로도 이를 권한 상승 근거로 사용하면 안 됩니다.

7.4 LLM이 쓰기를 제안할 때 사람 승인 fall-through

섹션 제목: “7.4 LLM이 쓰기를 제안할 때 사람 승인 fall-through”

Narrator는 운영자가 “그냥 고쳐 줘”라고 말할 때 run_runbook(dry_run=false) 또는 approve_hil을 위한 tool_call을 발행할 수 있습니다. 검증기를 다시 실행할 때(안전조건 8) 다음과 같이 처리합니다:

  • 검증기를 통과하고 RBAC를 충족하면 도구 호출을 진행합니다.
  • 검증기 판단 보류 또는 RBAC 하한 미달 → 조정기는 내부적으로 기존 사람 승인 큐에 검토 항목을 등록하고 운영자에게 “사람 승인 항목 ID X를 등록했습니다”라고 반환합니다.
  • 어떠한 상황에서도 전달 전 감사 항목 없이 쓰기는 발생하지 않습니다. 검토된 사람 보고선을 사용하도록 명시적으로 구성한 ActionType에서는 먼저 요청자에게 별도 연락 동의 카드를 표시합니다. 승인 요청 보내기는 고정된 정확한 경로로 알림을 보내는 것만 허용하며 작업을 승인하지 않습니다. 전달 전과 승인이 도착할 때 관계 그래프, RBAC 및 ActionType 정책을 다시 확인합니다. 보고선 검토는 Owner 결정 후 Core가 그래프를 원자적으로 수렴하는 동안 잠시 activation_pending을 표시할 수 있습니다. Native detail control은 감사 drill-down을 위한 안정적인 승인 및 동의 식별자를 표시합니다. 정확한 이유가 no_rule_match 또는 anomaly_action_unavailable인 작업 없는 관찰 모드 사람 검토 판정은 승인 작업이 아니라 감사 근거입니다. Console은 판정 및 감사 보기에서 이를 표시할 수 있지만 Thor가 ActionRun이나 리소스 클레임을 만들지 않으므로 사람 승인 큐 항목이나 연락 동의/승인 카드를 만들어 내지 않습니다. 새로 판단한 실행 가능한 제안만 이 승인 대체 경로에 들어갈 수 있습니다.

채널 추상화 (channels-and-notifications.md) 는 이미 push(시스템 → 사람)를 처리합니다. 이 문서는 pull 방향(사람 → 시스템)을 push 어댑터와 별개의 어댑터 및 구성 계약으로 제공합니다. 배포는 같은 시크릿 프로바이더 또는 워크로드 신원을 재사용할 수 있지만 아웃바운드 notification 매트릭스와 인바운드 대화 활성화를 하나의 라우팅 구성으로 합치지 않습니다. 분리가 중요한 이유는 send-only와 receive-plus-send의 trust 자세 및 영향 범위가 다르기 때문입니다.

공유 pull-direction 계약, 게이트웨이, Slack signed 유입, Teams 인증된 활동 정규화기, 범위가 제한된 Starlette 경로, Slack Web API 발행기, Teams Bot Framework 발행기는 구현되었습니다. Slack 경로는 timestamped 서명을 검증합니다. Teams 경로는 활동 JSON parse 전에 injected bearer authenticator를 호출합니다. 회신 발행기는 구성된 HTTPS 엔드포인트, injected 앱/워크로드 자격 증명, 서버가 소유한 대화 해석만 사용합니다. Delivery 계층 채널 런타임은 구체적인 Bot Framework JWT 검증기, Teams principal 해석기, Slack 시크릿/앱 자격 증명, fixed 엔드포인트 발행기와 background 게이트웨이 수명 주기를 조립합니다. 필수 자격 증명 또는 신원 연결이 없으면 트래픽 전 시작에서 실패합니다. 이 연결은 delivery/에 유지되며 조정기를 변경하지 않습니다.

ChannelAccessService는 해당 principal 해석기의 sender-access foundation입니다. 각 채널은 disabled, allowlist, pairing을 선택합니다. 알 수 없음 sender는 principal로 해석되지 않고 조정기에 도달하지 않습니다. Pairing 모드는 범위가 제한된 expiring 도전자를 발급하고 SHA-256 다이제스트만 저장하고 채널별 pending 요청을 제한하고 별도 authorized 승인자를 요구하고 코드를 constant 시간으로 검증하고 approved sender를 기존 FDAI principal에 대응합니다. 비활성화된 및 허용 목록 모드는 sender를 self-enroll하지 않습니다. PostgreSQL 저장소는 복제본 간 pending 상한과 승인 transition을 atomic하게 강제합니다. Native 도전자 전달은 원래 스레드에 회신하고 전달 실패 시 pending 다이제스트를 조건부 삭제합니다. 코드는 저장되거나 응답 메타데이터에 포함되지 않습니다.

CrossChannelIdentityLinkService는 두 채널 sender가 같은 principal에 각각 독립 pairing된 후에만 명시적 관계를 기록합니다. Same-channel 링크, 자기 승인, unapproved 엔드포인트, 서로 다른 두 principal을 연결하려는 시도를 거부합니다. 영속 링크는 멱등적하며 principal 기록, 역할, 세션, 감사 이력을 병합하지 않습니다.

채널Push (기존)Pull (이 문서)공유 구성
TeamsA1 사람 승인 및 아웃바운드 notification 어댑터TeamsIngressVerifier + 인증된 범위가 제한된 활동 경로 + workload-identity 회신 발행기 + principal 연결일부 신원/시크릿 프로바이더를 배포에서 재사용 가능
SlackSlackWebhookChannel 및 A1 어댑터SlackIngressVerifier + signed 이벤트 API 경로 + fixed-endpoint Web API 회신 발행기일부 시크릿 프로바이더를 배포에서 재사용 가능
이메일send-only(계획 없음; 비동기, 인터랙티브에 부적합)n/a
Webhooksend-only(계획 없음; 호출자가 인터랙티브 프로토콜을 자체 소유해야)n/a
Pager (PagerDuty)send-only(계획 없음)n/a
SMSsend-only(계획 없음)n/a
Web chatn/a인증된 POST /chat 및 POST /chat/stream SSEConsole SPA/Operator API 구성
CLIn/astdin/stdout UI가 공유 Operator API /chat 호출. 명시적인 루프백 Azure CLI 프로필은 세션 bearer를 메모리에만 유지하며 호출자가 제공한 토큰은 받지 않음CLI 인증. 부트스트랩이 없으면 일반 읽기만 허용하고 401/403은 차단 상태 유지. Browser Entra는 변경 없음

config/notifications-matrix.yaml은 아웃바운드 notification 라우팅만 소유합니다. 대화 채널은 FDAI_SLACK_CHANNEL_ENABLED, FDAI_TEAMS_CHANNEL_ENABLED, 시크릿 참조, Teams 신원/principal 연결, queue-capacity 계약을 별도로 사용합니다. Shared 자격 증명 백엔드는 구성 소유권을 합친다는 뜻이 아닙니다.

9. 성장 모델 (카탈로그 + 운영자 기억)

섹션 제목: “9. 성장 모델 (카탈로그 + 운영자 기억)”

콘솔은 시간이 지나면서 세 가지 결정론적 방식으로 개선되며 모델 학습은 여기에 포함되지 않습니다. 운영자 기억 검토는 조회 건수 한도를 적용하기 전에 기억 항목과 압축 후보 모두에 선택한 범위 유형과 참조를 적용합니다. 후보 행에는 정확한 범위를 표시하며, 필터를 비워 두면 해당 조건의 전체 범위 조회를 유지합니다. 이 조회로 승인이나 기억 쓰기 권한이 생기지는 않습니다. 검증되지 않은 답변을 범위가 제한된 명확화 문구로 바꿀 때 Console은 Console 화면 언어가 아니라 서버 답변의 언어로 문구를 선택합니다. 따라서 영어 Console에서 한국어로 질문하면 한국어 안내를 받습니다. semantic_request_unsupported 답변은 어떤 주장을 확인할지 묻지 않고, 지원되는 읽기 전용 질문 유형을 안내하는 전용 지원 불가 요청 문구를 사용합니다. Agent Activity, Trace 표시 문구 또는 정규 명확화 문구를 포함하여 연결된 Console 카탈로그 원본이 바뀌면 동일한 변경에 전체 질문 은행과 의미 의도 범위의 순차 재생성 결과를 포함합니다. 산출물 동등성 검사는 오래된 원본 다이제스트를 차단하며 출처 이력만 갱신하는 작업은 질문 신원, 준비 상태 또는 권한을 바꿀 수 없습니다. 두 번째 생성기 실행이 끝난 뒤 두 산출물 동등성 검사를 모두 실행하여 새로 생성한 질문 은행을 기준으로 의미 목록을 검증합니다. 기준 브랜치를 반영한 뒤에는 최종 병합 내용을 다시 검사합니다. 이전 작업 커밋의 통과 결과가 새로 병합된 카탈로그 내용까지 검증하지는 않습니다. 대화 전달도 기록된 차단기 모드별 개수만 표시합니다. System Knowledge 원본의 검증값을 다시 생성해도 브라우저에 일시 중지, 재개, 재시도, 승인 또는 에스컬레이션 권한이 생기지는 않습니다. 온톨로지 플랫폼 구현 변경은 Console 질문이나 지표를 바꾸지 않고도 의미 목록의 원본 다이제스트를 바꿀 수 있습니다. 이 출처 이력 전용 재생성도 정확한 산출물 검사를 통과해야 하며 브라우저 기능을 새로 부여하지 않습니다.

Day-1 Console에서는 다음 질문에 답할 수 있습니다:

  • “example-rg의 network.nsg에 어떤 룰이 적용되지?” → query_inventory + explore_catalog.
  • “왜 이벤트 <id>가 사람 승인으로 경로 됐어?” → explain_verdict.
  • “지난 24시간 object-storage.public-access.deny의 모든 감사 항목을 보여줘.” → query_audit.
  • “이 리소스에 대해 FDAI가 기억하도록 내가 명시적으로 요청한 내용은 뭐야?” → query_operator_memory.
  • “공개 접근이 활성화된 저장소 계정을 만들면 루프가 뭘 할까?” → describe_event.

쓰기, 런북 실행, 승인은 제공하지 않으며 사용 안내만 제공합니다.

simulate_change, approve_hil, run_runbook --dry-run, Teams / Slack pull 어댑터 추가. 콘솔은 이제:

  • 종단 간 변경을 관찰 모드로 미리 보기.
  • PR 흐름이 사용하는 것과 동일한 신원 gate로 큐잉된 사람 승인 항목 해결.
  • 어느 채널에서든 shipped 런북 (docs/runbooks/)을 트리거.

관찰 깊이 도구 (§3.3)과 discovery-loop 훅 추가:

  • Core는 원문 없는 실행 계획 증적을 만들고, Operator는 이를 검증한 뒤 공유 동의에 따라 큐에 제출합니다. Norns는 같은 타입 지정 질의 형태가 서로 다른 사람 principal N개에서 나타나면 기존 비활성 RuleCandidate 입력으로 console.recurrent_query를 전달합니다 (기본값 주당 5개). 증적 검증, 영속 집계, 한도와 기존 게시 게이트는 사후 개선 검토가 소유합니다.
  • Rule-candidate generator (rule-governance.md) 가 여느 시그널처럼 그것을 받음; 결과 룰은 동일한 승격 파이프라인을 통해 관찰 우선으로 ship.

반복되는 조사 패턴은 검토된 카탈로그 룰의 근거가 될 수 있지만 신호 자체는 룰을 생성하거나 활성화할 수 없습니다. 콘솔은 자체 권한이 아니라 통제된 검토를 통해 카탈로그를 확장합니다.

초기 Day/주/월 계획은 구현 순서를 설명한 역사적 정보이며 현재 가용성 출처가 아닙니다.

Slice현재 상태
Core/CLI translatorNarrator, delivery 계층 Azure OpenAI narrator adapter의 근거에 기반한 답변 렌더링, 조정기, 읽기 도구, Python headless 실행 장치 및 shared-API TypeScript CLI가 제공됩니다. 의도 translation과 답변 렌더링은 별도 프롬프트를 사용하며 둘 다 결정론적 도구 및 RBAC 경계를 유지합니다.
쓰기/승인 도구simulate, 사람 승인, 런북, 제안 경로가 제공됩니다. Break-glass는 §7.3의 pager/감사 요청 증적까지만 제공하며 권한 상승은 없습니다.
Teams/Slack 대화Delivery 계층 채널 런타임, 인증된 유입, principal 해석, 발행기, 영속 회신 옵션이 제공됩니다. 실제 배포 활성화/자격 증명은 environment-owned입니다.
Web chat and 기억JSON/SSE chat, principal 범위로 한정된 대화 이력/preferences/기억, AnswerPlan 및 progressive 검증이 제공됩니다. 제한된 timing parser는 기존 v1 envelope와 Core의 v2 영속 큐 단계를 받아들이며 전체 timing envelope를 폐기하지 않습니다.
관측/발견POST /read-investigations는 Azure I/O 전에 영속 지연 시간 근거로 direct, streamed, detached 실행을 선택합니다. Direct Command Deck 및 HTTP 읽기는 owner-scoped result-replay 원장을 공유하며 streamed 응답이 닫히면 in-flight 읽기를 취소합니다. Dedicated 읽기 담당 연결이 있을 때만 등록되며 카탈로그 presence만으로 프로바이더 상태나 승격을 주장하지 않습니다.
예측 및 Dynamic learningGET /forecast-learning은 예측 closure와 게시 상태를 변환 결과하고, GET /dynamic-assurance는 영속 scalar/그래프 모델 요약과 trajectory closure 개수를 변환 결과합니다. 두 경로 모두 Reader-only이며 detector/모델 변경, 승격, 승인 또는 실행 컨트롤을 제공하지 않습니다.
구독 프로비저닝/provisioning은 영속 단계 근거를 재생하고 예상 인벤토리 진행률을 표시하며 배포 권한 없이 검증된 준비 상태, 실패 또는 취소를 보여 줍니다.
System Knowledge 역할 카탈로그재생성은 인용된 Pantheon bus ownership, 구독, producer 및 event-time 사실을 갱신할 수 있으며 graph lifecycle ownership은 별도로 유지됩니다. Loki의 score-producer 인용은 Console 데이터 원본, timestamp authority, AKS 시나리오 동작, 사람 보고 체계, 승인 경로 또는 실행 권한을 변경하지 않습니다.

실제 운영 Azure 완료 근거와 기능 승격은 여전히 권위 있는 레지스트리 및 배포 검증에서 판단하며 이 문서의 phase 이름으로 추론하지 않습니다.

  • 조정기 - 속성 테스트: “검증기 re-check는 매 write-class 도구 호출 에서 실행”, “RBAC 하한은 서술기가 도구 스키마를 보기 전에 강제됨”, “감사 항목은 매 도구 전달을 선행”, “에스컬레이션은 tier 와 트리거를 기록”.
  • Narrator 어댑터 - Azure OpenAI 엔드포인트용 httpx.MockTransport를 사용하여 strict 의도 translator, injection-isolated 근거에 기반한 답변 프롬프트, exact evidence-reference 보존 및 resolved 배포 연결을 검증합니다.
  • 도구 - 각 도구는 side_effect_class == read | simulate 일 때 절대 대상을 변경하지 않음을 보여 주는 관찰 모드 테스트를 수행합니다. write / approve 테스트에서는 검증기 재검사 게이트를 확인합니다.
  • 채널과 서비스 소유권 - CLI REPL golden 대화 기록, Teams Bot Framework 활동/JWT, Slack signed HTTP 이벤트 API와 발행기 증적을 어댑터 테스트로 검증합니다. 모든 Operator 서비스 테스트는 tests/integration/service-suites.json의 정확히 한 그룹에 등록하며, 소유자가 없는 테스트는 서비스별 실행기가 실행되기 전에 저장소 범위 검사에서 실패합니다.
  • RBAC 매트릭스 - §3.1-§3.3의 하한이 적용됨을 증명하는 모든 (역할 × 도구) 셀에 대한 table-driven 테스트.
  • Break-glass - activate_break_glass가 expiry > 4h를 거부하고 Owner 알림 및 감사 증적을 요구하며 세션 principal을 변경하지 않음을 입증합니다. 영속 권한 부여와 세션 종료 시 철회는 아직 제공되는 계약이 아닙니다.
  • 결정론성 - 같은 CLI 대화 기록을 모의 Narrator로 두 번 실행하면 시각과 멱등성 키가 고정된 조건에서 바이트가 동일한 감사 이력을 생성하는지 확인합니다.
  • 세션 복구 - principal 범위로 한정된 ConversationHistoryStore에서 세션 id로 이전 턴을 reload하고 고정된 요청 멱등성이 중복 덧붙이기를 막는지 검증. 감사/온톨로지에는 raw 대화 기록이 아니라 해시와 참조만 남습니다. 기록 목록은 저널에 남은 semantic turn 세션도 한 번씩 보여 주므로 브라우저 캐시가 사라진 뒤에도 대화가 목록에 남습니다.
  • Narrator 사용 불가 - Chat T0 direct-hit로 fall through; 턴이 T0 패턴에 매치되지 않으면, canned “reasoning 계층이 일시적으로 사용 불가; 다음은 direct 조회 표면”로 응답하고 도구 목록 노출.
  • 근거에 기반한 답변 렌더링 사용 불가 또는 잘못된 - 완료된 결정론적 도구 미리 보기를 반환합니다. 모델이 빈 답변이나 oversized 답변을 반환하거나 필수 근거 참조를 누락해도 같은 대체 경로를 사용합니다. 렌더링 실패는 도구 데이터, 상태, 권한 확인 또는 실행 상태를 변경하지 않습니다.
  • 쓰기 등급 도구에서 검증기가 판단 보류 - 내부 사람 승인 검토 항목을 등록하고(§7.4 참조), 사람 승인 ID와 감사 사유 verifier_abstained를 반환합니다.
  • 채널 어댑터 disconnect - 영속 전달이 구성되면 완전한 응답과 최종/모호한 상태를 원장에 남깁니다. 구성되지 않은 direct 경로도 영속 대화 이력을 세션 id로 재개하지만 프로바이더 전송을 exactly-once로 주장하지 않습니다.
  • Break-glass 요청 증적 - 현재 조정기는 증적을 elevated 기능으로 해석하지 않습니다. 향후 권한 부여 통합은 매 도구 호출에서 TTL을 재검사하고 만료 시 refuse해야 합니다.
  • 도구 구현에서 예외 발생 - 도구의 타입 지정 오류 경계(§3.4)가 ToolResult(status=error)로 감쌉니다. 서술기는 예외 스택 추적이 아니라 구조화된 오류를 받습니다.

FDAI Console은 console/src/generated/service-contracts.ts의 생성 TypeScript 변환 결과를 컴파일합니다. 체크섬으로 고정한 저장소 생성기는 백엔드 서비스 5개가 사용하는 것과 같은 N/N-1 JSON Schema에서 이를 만들며, 생성 인터페이스는 컴파일 시점의 정렬만 개선합니다. 배포된 AKS에서는 배포 조정기가 수렴 뒤 정확한 Static Web Apps redirect를 등록하고, 범위가 제한된 재조회 안에서 Microsoft Graph 순서와 무관하게 정확한 redirect 집합을 확인한 뒤 런타임 API 연결을 게시합니다. 브라우저 경로와 Sample 모드를 복원할 때는 handleRedirectPromise가 처리할 때까지 MSAL 응답 해시를 보존합니다. Operator 서비스는 계속 기준 스키마로 와이어 페이로드를 검증하며 Console에는 배포, 승인, 변경 또는 실행 권한이 없습니다. 감사 작업 영역은 추가적인 summary=true 묶음을 요청합니다. 현재 Operator는 보존 중인 조회 범위 수치, 기록 맥락 및 무결성 관측을 반환하고 이전 Operator는 Console이 요약 근거를 사용할 수 없는 상태로 처리하는 페이지 전용 묶음을 유지합니다. Incident, Agent Activity 및 Trace 읽기는 이 활성화 설정을 보내지 않고 범위가 제한된 페이지 비용을 유지합니다. 워크플로 빌더는 Operator가 소유한 정의 저장소에서 정의 카탈로그를 직접 읽고 모든 행을 인증된 principal 범위로 제한합니다. Python 작업 기능은 Operator 조립 구성에서 제공되며, Python 작업 담당 구성 요소가 연결되지 않은 동안에는 명시적인 사용 불가 상태를 보고합니다. Console 읽기 경계가 두 출처 결정을 모두 소유합니다.

Console을 선택한 배포는 Console SPA 리디렉션을 설정할 수 있도록 배포 신원에 Microsoft Graph Application.ReadWrite.OwnedBy 권한을 부여합니다. 이를 부여하는 운영자에게는 활성 상태의 Privileged Role Administrator 또는 Global Administrator 디렉터리 역할이 필요하며, 설치 관리자는 디렉터리 권한 거부를 활성 역할 부재로 보고합니다.

Agent oversight 매핑 검토 화면은 Console 담당 체계 개정 후보를 Owner에게만 보여 줍니다. 각 후보는 정확한 다이제스트와 YAML을 표시하며, 활성화는 후보 ID와 그 다이제스트만 전송합니다. Core가 담당 체계를 바꾸기 전에 Owner 역할과 다이제스트를 다시 확인하므로 Console은 승인이나 IAM 권한을 얻지 않으며 GitHub 앱도 필요하지 않습니다.

focused 소유자 문서로 분리했습니다:

  • operator-console-wire-contracts-ko.md - 감사 항목, CLI REPL, 승인 콜백(13.1-13.3), 의미 기반 인시던트 생성, 관리 작업 제출 상태, Python VM 작업 영역, 근거 기반 코드, 온톨로지 변환 결과(13.6-13.9).
  • operator-console-view-snapshot-ko.md - self-describing 화면 계약(13.4).
  • operator-console-incident-roster-ko.md - 인시던트 목록, 교정 이력, 카탈로그를 재사용하는 대기/적용 상태, 제한된 HTTP 202 재조회, 권한을 부여하지 않는 Huginn-to-Saga 지침 감사 경로(13.5). 인증된 의미 턴은 기본값이 꺼진 Operator 설정 FDAI_SEMANTIC_AUTHENTICATION_RECEIPT_REF_ENABLED가 켜진 경우에만 operator-core-request 1.9.0에 콘텐츠가 없는 인증 영수증 참조를 담을 수 있습니다. 이 참조는 브라우저에 권한으로 전달되지 않으며, 배포 순서는 13.12를 참고하십시오. 설정을 켜면 Operator는 턴을 게시하기 전에 바로 그 요청의 영수증을 보존하므로 검증기가 이 영수증으로 case-history-read를 확인할 수 있습니다. 보존에 실패하면 Core가 해소할 수 없는 참조를 보내지 않고 턴을 실패로 처리합니다. 베어러 인증된 요청의 모든 응답에는 Console 워터마크가 읽는 X-FDAI-Entitlement 표시도 포함됩니다. 13.13을 참고하십시오. 공유 Operator 전송 계층은 오류를 포함한 모든 응답에서 이 표시 값을 기록하고, 인증된 모든 화면은 데이터 원본 읽기로 값을 갱신하는 워터마크 하나를 마운트합니다. 최신 표시 값이 최근의 none이 아니면 워터마크는 오른쪽 아래에 표시되며, 자세한 동작은 Trial 만료 워터마크 설계를 따릅니다.

FDAI가 현재 제공하는 유일한 MCP 통합은 전송 방식이 하나로 고정된 읽기 전용 Azure MCP 클라이언트 (services/core-control-plane/src/fdai/delivery/azure/mcp_read_investigation.py)이며, 선택적 읽기 조사에 사용됩니다. 전송 계층을 사용할 수 없을 때는 타입이 지정된 공급자 대체 경로를 사용합니다. 이는 아웃바운드 카탈로그가 아닙니다. 외부 호스팅 MCP 서버별 설치/활성화 수명 주기, tools/list 탐색, 상태 모니터, 관리자 감사 기록은 현재 없습니다. services/core-control-plane/src/fdai/delivery/mcp/ 아래의 managed 아웃바운드 카탈로그 - 기본적으로 비활성화된 설치, 도구를 호출하지 않는 탐색, 허용 목록 검증, 영속 revision-CAS 스냅샷, 상태 모니터링, 엔드포인트 검증 - 는 여전히 설계 목표이며 제공되는 기능이 아닙니다. FDAI 자체를 MCP 서버로 게시하는 기능도 아직 제공하지 않습니다. 인바운드 MCP 서버 프로세스, list_tools/call_tool 전송 엔드포인트, 외부 MCP principal 매핑은 현재 없습니다. 포크는 이 문서만으로 두 기능이 존재한다고 추론하면 안 됩니다.

향후 인바운드 MCP 제안은 기존 기능을 확장하는 방식으로 같은 조정기/RBAC를 재사용하고 익명 호출자를 거부하며 mTLS 또는 audience-scoped Entra 토큰을 서비스 Principal에 대응하고 감사해야 합니다. 이는 현재 기능이 아니라 별도의 위협 모델, 프로토콜, 테스트, 배포 게이트가 필요한 향후 범위입니다.

  • OD-C1 resolved - strict 코어 서술기 프롬프트는 delivery 계층 Azure OpenAI narrator adapter가 소유하고, broader 프롬프트 카탈로그는 rule-catalog/prompts/base, packs, scenarios, tools 구조를 사용합니다.
  • OD-C2 resolved - principal 범위로 한정된 user 기억/선호 설정과 별도 통제된 운영자 기억 스키마, 출처 이력, consent, 보존 경로가 구현되어 있습니다.
  • OD-C3 residual - §7.3처럼 persistent BreakGlass 권한 부여/권한 상승은 아직 구현되지 않았습니다. 향후 설계는 no-self-approval을 유지하고 서로 다른 승인자 요구사항을 별도로 승인해야 합니다.
  • OD-C4 현재 행동 - CLI 이력은 프로세스 기억에서만 범위가 제한된 탐색을 제공합니다. Persistent 이력 파일과 보존/민감정보 제거 계약은 shipped 기능이나 현재 CLI의 blocker가 아닙니다.
알아볼 내용읽을 문서
구현 상태 및 Live 설계구현 원장, Live 지표, Live와 감사 로그 화면