From b5dbe0aaf4a0b8af642b1ff38972d24a4cef0d56 Mon Sep 17 00:00:00 2001 From: toki Date: Mon, 3 Aug 2026 15:53:39 +0900 Subject: [PATCH] =?UTF-8?q?docs(agent-ui):=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=ED=9B=84=EB=B3=B4=20=EB=93=B1=EB=A1=9D=20=EA=B7=9C=EC=B9=99?= =?UTF-8?q?=EC=9D=84=20=EC=A0=95=EB=A6=AC=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent-ops/rules/project/rules.md | 5 +- agent-ui/definition/views/index.md | 2 +- agent-ui/definition/views/settings/index.md | 61 ++++++++++----------- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/agent-ops/rules/project/rules.md b/agent-ops/rules/project/rules.md index f2237766..11c0702e 100644 --- a/agent-ops/rules/project/rules.md +++ b/agent-ops/rules/project/rules.md @@ -100,8 +100,9 @@ ## 스킬 라우팅 -- 설정 UI 노출 정책 기록, `설정 UI에서 빼`, `설정 화면에서 숨겨`, `설정 제외로 기록해`, `설정 노출 정책에 추가해`: `agent-ops/skills/common/update-agent-ui/SKILL.md`를 `view-id=settings`, `mode=definition`, `status=계획`, `post-validate=true`, `post-sync=false`로 사용해 `agent-ui/definition/views/settings/index.md`의 설정 노출 정책을 설정 경로 기준으로 upsert한다. -- `설정으로 빼`는 현재 문맥이 UI 노출 제외이고 대상 설정이 식별될 때만 위 라우팅을 사용한다. config 추출·스키마 삭제와 구분되지 않으면 자동 기록하지 않고 확인 대상으로 남긴다. +- 설정 후보 기록, `설정으로 빼`, `설정으로 빼놔`, `설정값으로 분리해`, `설정으로 조절하게 해`: 현재 작업 맥락에서 사용자가 설정으로 조절할 필요가 있다고 지정한 내용을 뜻한다. 숨김·제외 의미로 해석하지 않는다. +- 설정 후보 기록은 `agent-ops/skills/common/update-agent-ui/SKILL.md`를 `view-id=settings`, `mode=definition`, `status=계획`, `post-validate=true`, `post-sync=false`로 사용해 `agent-ui/definition/views/settings/index.md`에 `SET-NNN` 항목으로 upsert한다. 정확한 config key나 component id가 아직 없어도 작업 맥락으로 등록하며, 새 항목과 변경 항목은 `대기`, 구현·검증 근거가 확인된 항목만 `완료`로 둔다. +- 설정 UI 설계·구현에서는 `대기` 항목만 대상으로 삼는다. `완료` 항목을 변경하면 같은 id를 유지하고 `대기`로 되돌린다. - UI 없는 사용자 CRUD, OpenAI-compatible 사용자/principal 추가·조회·수정·비활성화·삭제, principal token 운영 CRUD: `agent-ops/skills/project/iop-user-crud-ops/SKILL.md` - Confluence 문서 작성, 컨플 문서 생성·갱신·검토, Lab2 문서 작성, lgucorp 위키 업데이트: `agent-ops/skills/project/lgucorp-confluence-docs/SKILL.md` - dev 또는 dev-corp OpenAI-compatible 사용자 token 발급·추가, `dev에 <사용자> 사용자 토큰 만들어줘`, `dev-corp에 <사용자> 사용자 토큰 만들어줘`, principal_ref token 등록, principal alias 매핑, raw IOP token 1회 전달: `agent-ops/skills/project/openai-usage-token-issue/SKILL.md` diff --git a/agent-ui/definition/views/index.md b/agent-ui/definition/views/index.md index 2160d0ff..94c97d9f 100644 --- a/agent-ui/definition/views/index.md +++ b/agent-ui/definition/views/index.md @@ -20,7 +20,7 @@ views: | `nodes` | 구현됨 | `apps/client/lib/widgets/nodes_panel.dart`, `apps/client/lib/widgets/nodes_panel_sections.dart` | 선택 Edge의 Node inventory, adapter config, provider catalog를 보여준다. | | `runtime` | 구현됨 | `apps/client/lib/widgets/runtime_panel.dart`, `apps/client/lib/widgets/runtime_panel_sections.dart` | Edge health, Node status, provider command와 operation history를 다룬다. | | `execution-logs` | 구현됨 | `apps/client/lib/widgets/execution_logs_panel.dart` | 선택 Edge의 lifecycle event와 execution log timeline을 보여준다. | -| `settings` | 계획 | 사용자 결정 | 향후 설정 UI 설계에 사용할 설정별 노출, 편집, 마스킹, 제외 정책을 관리한다. | +| `settings` | 계획 | 사용자 결정 | 현재 작업에서 설정으로 조절할 필요가 있다고 지정된 후보와 구현 상태를 관리한다. | ## Navigation diff --git a/agent-ui/definition/views/settings/index.md b/agent-ui/definition/views/settings/index.md index 1451de6f..fe68d852 100644 --- a/agent-ui/definition/views/settings/index.md +++ b/agent-ui/definition/views/settings/index.md @@ -6,9 +6,9 @@ frame: null source_evidence: - type: user path: null - notes: User requested one canonical registry for settings that should be hidden, excluded, masked, read-only, or removed before future UI design. + notes: User requested one registry for work items that should later become user-adjustable settings. regions: - - settings.configuration-exposure-policy + - settings.configuration-candidates --- # Settings @@ -24,12 +24,12 @@ Status: `계획` | Type | Path | Notes | |------|------|-------| -| user | 없음 | 향후 UI 설계에서 참조할 설정 노출·제외 결정을 한 곳에 모으도록 요청했다. | +| user | 없음 | 작업 중 설정으로 조절할 필요가 있다고 지정한 내용을 향후 UI 설계에서 참조할 수 있게 한 곳에 모으도록 요청했다. | ## Purpose -향후 설정 UI 설계에 앞서 설정별 노출, 편집, 마스킹, 제외 결정을 한 곳에서 관리한다. -실제 config schema를 복제하지 않고 설정 경로와 근거 계약을 참조하며, UI 정책과 런타임 설정 제거를 구분한다. +작업 중 사용자가 설정으로 조절할 필요가 있다고 지정한 내용을 한 곳에서 관리한다. +정확한 config key나 UI 구조가 정해지기 전에도 작업 맥락으로 후보를 남기고, 향후 설정 UI 설계와 구현에서 사용한다. ## Primary Users @@ -38,47 +38,46 @@ Status: `계획` ## Primary Tasks -- 설정별 UI 노출 및 편집 가능 여부 확인 -- 비노출, 마스킹, 읽기 전용, 스키마 제거 후보 결정 기록 -- 향후 view와 component 설계 시 설정 정책 참조 +- 작업 중 설정으로 조절해야 할 후보 등록 +- 설정 후보의 작업 맥락과 적용 대상 확인 +- 향후 view와 component 설계 시 `대기` 후보 반영 ## Information Priority -1. 설정 경로와 UI 처리 결정 -2. 결정 사유와 대체 표현 또는 설정 -3. 적용 화면, 계약 근거, 결정 상태 +1. 설정으로 조절할 내용과 작업 맥락 +2. 적용 대상과 구현 상태 +3. 완료된 항목의 구현·검증 근거 ## Regions | Region ID | Purpose | Component | Priority | Notes | |-----------|---------|-----------|----------|-------| -| `settings.configuration-exposure-policy` | 설정별 UI 노출·제외 정책 관리 | 없음 | high | 실제 화면 배치와 component는 향후 UI 설계에서 확정한다. | +| `settings.configuration-candidates` | 설정으로 조절할 후보와 구현 상태 관리 | 없음 | high | 실제 화면 배치와 component는 향후 UI 설계에서 확정한다. | -## Configuration Exposure Policy +## Settings Candidates -### UI 처리 값 +### 상태 값 -- `편집 가능`: UI에서 값을 조회하고 변경할 수 있다. -- `읽기 전용`: UI에서 값을 표시하지만 변경할 수 없다. -- `마스킹`: secret 원문을 노출하지 않고 존재 여부나 축약값만 표시한다. -- `UI 비노출`: 설정은 유지하지만 UI에서 표시하거나 변경하지 않는다. -- `스키마 제거 후보`: UI 결정만으로 제거하지 않고 matching config contract와 구현 변경이 별도로 필요하다. +- `대기`: 향후 설정 UI 설계 또는 구현에서 반영해야 한다. +- `완료`: 설정 UI와 관련 구현·검증 근거가 확인되어 다음 구현 대상에서 제외한다. -### 설정 정책 목록 +### 설정 후보 목록 -`설정 경로`를 고유 키로 사용한다. 같은 설정은 새 행을 만들지 않고 기존 행을 갱신한다. +각 후보는 `SET-NNN` id를 사용한다. 같은 내용을 다시 언급하면 새 행을 만들지 않고 기존 id의 작업 맥락을 갱신한다. -| 설정 경로 | 소유 범위 | UI 처리 | 사유 | 대체 표현/설정 | 적용 화면 | 근거 | 결정 상태 | -|-----------|-----------|---------|------|----------------|-----------|------|-----------| +| ID | 설정으로 조절할 내용 | 작업 맥락 | 적용 대상 | 상태 | 구현 근거 | +|----|----------------------|-----------|-----------|------|-----------| ### 기록 규칙 +- 새 id는 현재 목록의 가장 큰 번호 다음 `SET-NNN`으로 발급하고 완료된 id를 재사용하지 않는다. +- 사용자가 작업 설명 중 `설정으로 빼`라고 지정하면 현재 작업 맥락을 짧게 요약해 `대기`로 등록한다. +- 정확한 config key나 component id는 등록 필수 조건이 아니다. 이후 확정되면 같은 id를 갱신한다. +- `적용 대상`에는 확정된 view/component id가 있으면 기록하고, 없으면 기능 또는 도메인 이름을 기록한다. - secret, token, credential 원문은 기록하지 않는다. -- `UI 비노출`을 config schema 제거로 해석하지 않는다. -- `스키마 제거 후보`는 matching `agent-contract`와 구현이 갱신되기 전까지 실제 제거로 표시하지 않는다. -- 실제 config key, type, default는 이 문서에 복제하지 않고 matching contract 경로를 `근거`에 기록한다. -- 사용자 결정이 명확하면 `결정 상태`를 `확정`으로 기록한다. -- 설정 경로, 처리 의미, 소유 범위가 불명확하면 추정으로 행을 추가하지 않고 `Open Questions` 또는 `agent-ui/USER_REVIEW.md`로 분리한다. +- 새 항목과 내용이 변경된 완료 항목은 `대기`로 둔다. +- 코드와 검증 근거가 확인된 항목만 `완료`로 바꾸고 `구현 근거`를 기록한다. +- 설정 UI 설계와 구현에서는 `대기` 항목만 대상으로 삼는다. - 이 문서 기록만으로 UI 코드 동기화를 시작하지 않는다. ## Actions @@ -90,16 +89,16 @@ Status: `계획` ## States - loading: 향후 UI 설계에서 확정한다. -- empty: 등록된 설정 정책이 없음을 표시하는 방향으로 설계한다. +- empty: 등록된 설정 후보가 없음을 표시하는 방향으로 설계한다. - error: 향후 UI 설계에서 확정한다. - permission-denied: 설정 조회·변경 권한 모델과 함께 확정한다. ## Open Questions - navigation과 화면 배치 -- 설정 그룹과 반복 component 구조 +- 설정 후보를 묶을 그룹과 반복 component 구조 - 설정 조회·변경 권한 모델 ## Decision History -- 2026-08-03: 설정 UI 노출·제외 결정을 누적하는 중앙 정책 문서를 계획 상태로 만들고, 문서 기록만으로 코드 동기화를 시작하지 않도록 정했다. +- 2026-08-03: 작업 중 `설정으로 빼`라고 지정한 내용을 설정 후보로 누적하고, `대기`와 `완료`만으로 구현 대상을 구분하도록 정했다.