D149~D153 — GE5-5 «AI 점검» 자가진단 결정보드

2026-09-05 · 목적 — 원우님이 손으로 재테스트하기 전에 앱이 스스로 AI 연결·권한·라이선스·그리드/작업 폴더·에디션·업데이트를 점검해 «지금 무엇이 안 되고 무엇을 눌러야 하는지»를 한 화면에 보여주는 패널을 만듭니다. 아래 5건이 그 화면의 생김새·자리·데이터 결정입니다.
컨펌 방법 — 카드마다 A/B를 눌러 고르시고(안 누르면 권고안 그대로 채택), 맨 아래 상자를 눌러(전체 선택) 복사해 대화창에 붙여 주세요. 복사가 안 되면 드래그로 복사하시거나 «전부 권고안대로»처럼 말로 알려주셔도 같은 무게로 처리합니다.
쉬운 말로 — 지금은 앱에 문제가 생기면 원우님이 하나씩 눌러 보며 찾아야 합니다. 이 패널은 건강검진표에 가깝습니다. 항목마다 초록(됨) · 노랑(되지만 알아둘 것) · 빨강(안 됨) 셋 중 하나로 찍고, 빨강에는 누를 버튼을 딱 하나 붙입니다. 판정을 못 하면 «모름»(회색)이라고 정직하게 말하고 «다시 확인» 버튼을 답니다. 점검 항목·문구는 이 보드의 스펙 문서(점검 항목표·§2 쉬운 말 표)에서 글자 그대로 가져왔습니다.

D149 진입 위치 — 어디서 «AI 점검»을 보는가

점검 결과를 어느 화면에서 보게 할지입니다. 5-2까지 «연결 카드»가 이미 설정 › 연결 탭에 있어, 여기 얹으면 «점검 → 고치기»가 같은 탭에서 끝납니다.

D149 설정 › 연결 탭 최상단 + 부팅 배너 + 상태바 pill인가, 별도 모달인가
A는 이미 있는 설정 › 연결 탭 맨 위에 «AI 점검» 섹션을 넣고, 부팅 때 빨강이 1건 이상이면 앱 상단에 띠를 띄웁니다. B는 설정에 두지 않고 상태바 버튼으로만 여는 전체 모달입니다.

A · 설정 › 연결 탭 최상단 + 부팅 배너 + 상태바 pill 권고

AI 점검: 안 되는 것 3건 — 보기보기
GRID.OSINTERNAL 3.1 3
연결AI그리드화면정보

AI 점검 지금 무엇이 안 되는지

지금 안 되는 것 3건·알아둘 것 2건

연동 Notion · Slack · Figma …

점검 섹션이 «연동»(현재 연결 탭 priority 10) 위에 priority 1로 들어갑니다. 안 되는 게 있으면 상단 띠와 우상단 pill이 먼저 말을 겁니다.

어설픔 방지 가드 — 배너는 빨강 1건 이상일 때만 뜨고 노랑만 있으면 뜨지 않습니다(경보 피로 방지). 배너 스타일은 기존 유예 띠 .gos-grace-strip와 같은 문법(전폭 띠·5px 점·우측 밑줄 액션)을 쓰되 색만 err로 바꿔, 두 띠가 같은 자리에서 같은 방식으로 읽히게 합니다. 유예 띠 자체는 손대지 않습니다.
실측 — 설정 탭 목록은 settings-internal.js 31행 { key:'connect', label:'연결' }, 연결 탭 현재 유일 섹션은 integrations(988행, priority 10). 띠 문법은 internal-theme.css 4507행 .gos-grace-strip, pill은 4353행 .set-pill 실측값.

B · 별도 전체 모달 (설정에는 없음)

GRID.OSINTERNAL 3.1 3
AI 점검닫기
지금 안 되는 것 3건·알아둘 것 2건
화면 기록화면을 보여줄 권한이 꺼져 있어요

화면을 크게 쓸 수 있지만, 고치러 갈 «연결 카드»가 설정 안에 있어 모달을 닫고 설정을 다시 여는 왕복이 생깁니다.

벤치마킹 근거 — macOS 시스템 설정의 «개인정보 보호 및 보안», GitHub Desktop·Docker Desktop의 진단 패널이 모두 «설정 안 고정 자리 + 문제 있을 때만 상단 띠» 조합입니다. 문제를 알리는 자리(띠)와 고치는 자리(설정 섹션)를 한 번의 클릭으로 잇는 게 공통 문법입니다.
근거 — 스펙 §3 D149, 스펙 §1 점검 항목표, settings-internal.js·internal-theme.css 실측.

D150 표시 형식 — 항목 카드의 생김새

18개 점검 항목을 한 화면에 어떻게 늘어놓을지입니다. 아래 «시안 4컷»에서 두 형식의 실제 화면을 나란히 보실 수 있습니다.

D150 6개 그룹 전체를 한 행씩 보여줄까요, 빨강만 큰 카드로 먼저 보여줄까요
A는 그룹(AI 연결/권한/라이선스/그리드·폴더/에디션·업데이트/개발·공유) 헤더 아래 «상태 점 + 항목명 + 한 줄 사유 + 오른쪽 버튼 1개»를 한 행씩 놓습니다. 초록 행은 사유 없이 «됨»만. B는 빨강만 먼저 큰 카드로 보여주고 나머지는 «전체 보기»로 접습니다.

A · 그룹 6개 · 한 행 = 점 + 항목 + 사유 + 버튼 1개 권고

권한
화면 기록화면을 보여줄 권한이 꺼져 있어요
손쉬운 사용
클라우드 경로iCloud 폴더라 파일 읽기가 느리거나 멈출 수 있어요
업데이트 채널모름 — 서버를 확인하지 못했습니다

전체가 한눈에 보이고, 초록이 많을수록 «다 되고 있다»가 그림으로 읽힙니다. 회색(모름)은 «모름»이라고 적고 «다시 확인» 버튼을 답니다.

어설픔 방지 가드 — 이모지 0건, 아이덴티티 SVG(원·체크·느낌표·물음표)만. 빨강 행의 버튼은 항상 1개입니다(둘 이상이면 무엇을 눌러야 할지 다시 헷갈립니다). 노랑 «안내만» 항목에는 버튼을 달지 않습니다.
실측 — 행 문법은 style.css 2056행 .set-row(flex·space-between·12.5px), 버튼은 internal-theme.css 658행 .set-btn-sm(10.5px·3px 9px·radius 7), 섹션 제목은 style.css 2054행 .set-sec h3(14px/800 + small 11.5px) 그대로.

B · 빨강만 큰 카드 + «전체 보기» 접힘

화면 기록

화면을 보여줄 권한이 꺼져 있어요

빌드 재승인(TCC 지문)

앱이 업데이트돼서 macOS가 권한을 다시 물어봐요. 시스템 설정에서 GRID.OS를 끄고 다시 켜 주세요

전체 보기 (초록 13건 · 노랑 2건)

고쳐야 할 것만 크게 보이지만, «지금 다 되고 있다»를 확인하려면 매번 펼쳐야 합니다. 전체 상태를 훑는 용도로는 A보다 약합니다.

벤치마킹 근거 — Xcode의 «Signing & Capabilities» 진단, 1Password·Tailscale의 상태 점검 화면이 모두 «항목 전체를 한 행씩 + 문제 행만 액션» 형식입니다. 접힘형(B)은 항목이 40개를 넘길 때 유리한데, 여기는 18개라 한 화면에 들어갑니다.
근거 — 스펙 §3 D150, 스펙 §1 점검 항목표(18항목 · 3색 + 회색).

D151 키체인(자격증명 보관) 상태 — 신규 점검 API

배포마다 «키체인 암호 입력» 창이 떠서 원우님을 멈추게 한 일이 있었습니다(2026-09-04). 그 상태를 앱이 스스로 말해 주게 할지입니다.

D151 키체인 상태를 읽는 API를 이번에 만들까요
A는 GET /api/license/keychain-status를 새로 만들어 «안전 보관이 가능한지 · 마지막 봉인이 성공했는지 · 평문 폴백으로 떨어졌는지»만 돌려받습니다(값은 안 읽습니다). B는 이번엔 빼고 6단계 서명 뒤에 다시 봅니다.

A · GET /api/license/keychain-status 신설 권고

권한
키체인(자격증명 보관)로그인 정보를 안전하게 보관할 수 없어요. 앱을 처음 열 때 키체인 «항상 허용»을 눌러 주세요
키체인(자격증명 보관)

쉬운 말 문구는 스펙 항목표의 «키체인» 행 그대로입니다. 버튼은 «안내만» — 이건 앱이 대신 눌러 줄 수 없는 macOS 창이라 무엇을 눌러야 하는지만 알려 줍니다.

어설픔 방지 가드 — 응답에 토큰·비밀번호 값은 절대 담지 않습니다. 담는 것은 «가능/불가·마지막 성공 시각·평문 폴백 여부» 세 가지 상태뿐입니다. API가 실패해도 점검 패널은 그 행만 회색(모름)으로 두고 나머지는 그대로 그립니다.

B · 이번엔 제외 (6단계 서명 뒤 재검토)

권한
키체인(자격증명 보관)모름 — 이 항목은 아직 점검하지 않습니다

앱 서명이 정식으로 붙는 6단계에서 키체인 프롬프트 자체가 사라질 수 있으니 그때 보자는 안입니다. 다만 그때까지는 같은 증상이 또 나도 앱이 말을 못 합니다.

근거 — 스펙 §3 D151, 2026-09-04 «빌드 교체 후 키체인 프롬프트» 사고 기록.

D152 라이선스 «메모리만 잠김» 결함 수리 방식

파일상 라이선스는 멀쩡한데 앱 안에서만 잠겨 있던 적이 있습니다. 화면은 «정상»으로 보여서 원인을 알 수 없었습니다.

D152 메모리 잠금을 «화면에 드러내기»로 고칠까요, «파일로 합치기»로 고칠까요
A는 /api/license/statuslockScope(파일 / 메모리만 / 없음)를 더해 메모리 잠금도 잠금으로 표시하고, «지금 다시 확인» 버튼이 확인을 1회 강제합니다. B는 메모리 잠금을 license-lock.json 파일로 적어 둘을 하나로 만듭니다.

A · lockScope 추가 + 화면에 드러내기 권고

지금 (결함) — 잠겼는데 화면은 정상
라이선스 상태
A 적용 후
라이선스 상태됨 — 파일상 정상
잠금 사유파일상 라이선스는 정상인데 앱 안에서만 잠겨 있어요. 앱을 다시 켜거나 재로그인 1회면 풀립니다

«지금 다시 확인»을 누르면 확인을 1회 강제하고, 시간·토큰이 되돌아간 경우(clock-or-token-rollback)에는 «다시 로그인» 안내로 갈라집니다.

어설픔 방지 가드 — 메모리 잠금을 파일로 영속화하지 않습니다. 테스트 중 생긴 잠금이 실제 홈 폴더 파일로 번지는 길을 다시 열지 않기 위해서입니다(실홈 무접촉 원칙).

B · 메모리 잠금을 license-lock.json으로 영속화

라이선스 상태잠김 — 파일과 앱이 같은 값을 보게 됩니다
단, 테스트에서 생긴 잠금이 실제 홈 폴더 파일에 남습니다

두 출처가 하나가 되니 구조는 단순해지지만, 테스트 오염이 실제 파일로 번지는 경로가 다시 열립니다.

근거 — 스펙 §3 D152, 스펙 §2 잠금 사유 쉬운 말 표(lockScope=memory-only 행).

D153 대화 AI에게 점검 요약 한 줄 주입

지난 실측에서 AI가 «권한이 없다»는 것까지는 말했지만, 왜 그런지와 어디서 고치는지는 몰랐습니다.

D153 빨강이 있을 때 대화 AI에게도 그 사실을 알려 줄까요
A는 빨강이 1건 이상일 때만 매 턴 프롬프트에 한 줄을 덧붙여, AI가 관련 작업 요청을 받으면 먼저 그 사실을 말하고 설정 › 연결 › AI 점검을 안내하게 합니다. B는 화면에만 두고 AI에는 넣지 않습니다.

A · 빨강 1건 이상일 때만 한 줄 주입 권고

원우: 이 화면 캡처해서 정리해줘
클로드 — 지금 화면을 보여줄 권한이 꺼져 있어 캡처를 못 합니다. 설정 › 연결 › AI 점검에서 «시스템 설정 열기»를 눌러 켜 주시면 바로 진행하겠습니다.
주입되는 한 줄 — 앱 자가진단: 안 되는 것 3건(화면 기록 권한 꺼짐, …). 사용자가 관련 작업을 요청하면 먼저 이 사실을 말하고 설정 › 연결 › AI 점검을 안내할 것

클로드·코덱스가 같은 통로를 씁니다. 시간 정보를 넣는 기존 자리(timeContextTurnPrefix()) 옆에 aiCheckTurnPrefix()를 둡니다.

어설픔 방지 가드 — 점검이 실패하면 빈 문자열을 돌려 세션을 막지 않습니다. 빨강이 0건이면 한 줄도 붙지 않아, 평상시 프롬프트가 길어지지 않습니다.

B · 주입하지 않음 (화면만)

원우: 이 화면 캡처해서 정리해줘
클로드 — 캡처에 실패했습니다. 권한 문제로 보입니다. 다시 시도해 볼까요?
주입 없음 — AI는 원인과 고치는 자리를 모릅니다

프롬프트가 늘지 않는 대신, AI가 같은 실패를 반복하며 원우님이 직접 원인을 찾아야 합니다.

근거 — 스펙 §3 D153, 5-2 실측(«AI가 권한 없음은 말했지만 원인·해소 위치는 몰랐다»).

시안 — 상태별 4컷

권고안(D149-A + D150-A)이 실제로 어떻게 보이는지 폰 폭(390px)으로 그렸습니다. (라)는 D150-B를 골랐을 때의 모습입니다. 항목명·문구는 스펙 점검 항목표와 §2 쉬운 말 표에서 글자 그대로 가져왔습니다.

(가) 모두 초록 — 문제가 없을 때
설정 › 연결 탭 최상단. 배너도 pill도 뜨지 않습니다. 초록 행은 사유 없이 «됨»만.
GRID.OSINTERNAL 3.1 모두 정상
연결AI그리드화면정보

AI 점검 지금 무엇이 안 되는지

지금 안 되는 것 0건·알아둘 것 0건
AI 연결
Claude
Codex
실행 권한 모드
권한
화면 기록
손쉬운 사용
빌드 재승인(TCC 지문)
컴퓨터 사용 브릿지
키체인(자격증명 보관)
라이선스
상태
잠금 사유
그리드·폴더
작업 공간
클라우드 경로
초기 설정
에디션·업데이트
에디션
업데이트 채널
서버 신선도
개발·공유
개발 모드
커스텀 공유

연동 Notion · Slack · Figma …

(나) 빨강 3건 · 노랑 2건 — 문제가 있을 때
빨강 행마다 오른쪽에 누를 버튼이 딱 하나. 노랑은 «안내만»이라 버튼이 없습니다.
AI 점검: 안 되는 것 3건 — 보기보기
GRID.OSINTERNAL 3.1 3
연결AI그리드화면정보

AI 점검 지금 무엇이 안 되는지

지금 안 되는 것 3건·알아둘 것 2건
AI 연결
Claude
Codex
실행 권한 모드
권한
화면 기록화면을 보여줄 권한이 꺼져 있어요
손쉬운 사용
빌드 재승인(TCC 지문)앱이 업데이트돼서 macOS가 권한을 다시 물어봐요. 시스템 설정에서 GRID.OS를 끄고 다시 켜 주세요
컴퓨터 사용 브릿지
키체인(자격증명 보관)
라이선스
상태
잠금 사유파일상 라이선스는 정상인데 앱 안에서만 잠겨 있어요. 앱을 다시 켜거나 재로그인 1회면 풀립니다
그리드·폴더
작업 공간
클라우드 경로iCloud 폴더라 파일 읽기가 느리거나 멈출 수 있어요
초기 설정
에디션·업데이트
에디션
업데이트 채널이 에디션은 자동 업데이트가 아직 없어요
서버 신선도
개발·공유
개발 모드
커스텀 공유

연동 Notion · Slack · Figma …

(다) 부팅 직후 — 상단 배너 + 상태바 pill
앱을 켜자마자 빨강이 있으면 이 띠가 먼저 뜹니다. «보기»를 누르면 (나) 화면으로 갑니다. 빨강이 0건이면 띠는 뜨지 않습니다.
AI 점검: 안 되는 것 3건 — 보기보기
GRID.OSINTERNAL 3.1 3
오늘
인스턴트 노트
업무 보드 (오늘 할 일)
AI 세션
대시보드는 그대로입니다 — 배너 한 줄과 우상단 pill만 더해집니다. (비교) 서버 장애 유예 띠는 지금처럼 경고색 그대로라 색만 봐도 갈립니다.
지금은 서버를 확인할 수 없어 저장된 인증으로 계속합니다 · 유예 6일 남음다시 확인
(라) D150-B 대안 — 빨강만 큰 카드 + «전체 보기» 접힘
고칠 것만 크게 보이는 대신, «다 되고 있다»를 확인하려면 매번 펼쳐야 합니다.
AI 점검: 안 되는 것 3건 — 보기보기
GRID.OSINTERNAL 3.1 3
연결AI그리드화면정보

AI 점검 지금 무엇이 안 되는지

지금 안 되는 것 3건·알아둘 것 2건
화면 기록

화면을 보여줄 권한이 꺼져 있어요

빌드 재승인(TCC 지문)

앱이 업데이트돼서 macOS가 권한을 다시 물어봐요. 시스템 설정에서 GRID.OS를 끄고 다시 켜 주세요

잠금 사유

파일상 라이선스는 정상인데 앱 안에서만 잠겨 있어요. 앱을 다시 켜거나 재로그인 1회면 풀립니다

전체 보기 (초록 13건 · 노랑 2건)

연동 Notion · Slack · Figma …

컨펌

카드마다 A/B를 눌러 고르신 뒤(선택 안 하면 권고안 자동 채택) 아래 박스를 눌러(전체 선택) 복사해 채팅에 붙여넣어 주세요. 복사가 안 되면 박스를 눌러 드래그 복사하시거나, «전부 권고안대로»처럼 말로 알려주셔도 같은 무게로 처리합니다.