diff --git a/agent-roadmap/ROADMAP.md b/agent-roadmap/ROADMAP.md index c038b7a..f0affcb 100644 --- a/agent-roadmap/ROADMAP.md +++ b/agent-roadmap/ROADMAP.md @@ -12,25 +12,25 @@ OTO는 YAML 기반 빌드/배포 파이프라인을 실행하는 Dart CLI에서 검토중 또는 진행중 Phase는 계획 Phase보다 위에 두어, 아래로 갈수록 미래 계획에 가까워지게 정렬한다. - [완료] CLI 자동화 표면 정리 - - 경로: `agent-roadmap/archive/phase/cli-automation-surface/PHASE.md` + - 경로: [PHASE.md](archive/phase/cli-automation-surface/PHASE.md) - 요약: Jenkins, 파일 실행, 스케줄러로 동작하는 현재 CLI 표면을 장기 호환 경계와 외부 자동화 계약으로 정리했다. - [폐기] Edge 직접 연결 기반 `oto-agent` - - 경로: `agent-roadmap/archive/phase/edge-direct-oto-agent/PHASE.md` + - 경로: [PHASE.md](archive/phase/edge-direct-oto-agent/PHASE.md) - 요약: OTO가 iop Edge와 proto-socket 기반 outbound 통신을 하는 경로는 검증 근거만 보존하고, 독립 OTO Control Plane 방향으로 전환하며 기본 제품 경로에서는 폐기한다. - [완료] 독립 Control Plane 기반 OTO - - 경로: `agent-roadmap/archive/phase/independent-control-plane/PHASE.md` + - 경로: [PHASE.md](archive/phase/independent-control-plane/PHASE.md) - 요약: OTO를 iop 직접 연결 구조에서 분리해 `apps/runner`, `apps/client`, `services/core`를 가진 독립 CI/CD runner/control plane 제품 구조로 전환하고 archive로 정리했다. - [완료] 메시지 기반 빌드 에이전트 - - 경로: `agent-roadmap/archive/phase/message-based-build-agent/PHASE.md` + - 경로: [PHASE.md](archive/phase/message-based-build-agent/PHASE.md) - 요약: `oto agent` 또는 `oto daemon` 모드에서 OTO Server와 양방향 메시지 통신을 사용하는 build/deploy 전용 runner 경계를 정리하고 archive로 이동했다. - [진행중] Control Plane 제품 표면 완성 - - 경로: `agent-roadmap/phase/control-plane-product-surface/PHASE.md` + - 경로: [PHASE.md](phase/control-plane-product-surface/PHASE.md) - 요약: 현재 분리된 Core API, Flutter client, runner bootstrap 경계를 실제 운영 가능한 UI 스켈레톤과 OS별 설치 흐름으로 연결한다. ## 로딩 정책 -- 일반 작업에서는 `agent-roadmap/ROADMAP.md`를 매번 읽지 않는다. -- 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업을 수행할 때는 `agent-roadmap/current.md`를 먼저 읽는다. +- 일반 작업에서는 [ROADMAP.md](ROADMAP.md)를 매번 읽지 않는다. +- 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업을 수행할 때는 [current.md](current.md)를 먼저 읽는다. - `current.md`는 현재 작업 위치가 아니라 활성 Phase와 활성 Milestone 후보 목록이다. - `current.md`에는 개인별 현재 작업 위치나 완료 상태를 기록하지 않는다. - `current.md`의 활성 Phase는 `agent-roadmap/phase//PHASE.md`를 가리킨다. diff --git a/agent-roadmap/phase/control-plane-product-surface/PHASE.md b/agent-roadmap/phase/control-plane-product-surface/PHASE.md index af18df2..8bd3aa7 100644 --- a/agent-roadmap/phase/control-plane-product-surface/PHASE.md +++ b/agent-roadmap/phase/control-plane-product-surface/PHASE.md @@ -16,28 +16,28 @@ 스케치 Milestone은 아직 구현 가능한 계획이 아니므로 계획 Milestone보다 아래에 둔다. - [완료] Runner bootstrap, OTO binary, 노드 연결 - - 경로: `agent-roadmap/archive/phase/control-plane-product-surface/milestones/cross-os-runner-bootstrap.md` + - 경로: [cross-os-runner-bootstrap.md](../../archive/phase/control-plane-product-surface/milestones/cross-os-runner-bootstrap.md) - 요약: OTO Core bootstrap command와 bootstrap asset이 Linux, macOS, Windows에서 `oto` binary를 내려받고 runner/node로 Core에 연결할 수 있도록 확장한다. - [완료] Flutter 콘솔 스켈레톤 - - 경로: `agent-roadmap/archive/phase/control-plane-product-surface/milestones/flutter-console-skeleton.md` + - 경로: [flutter-console-skeleton.md](../../archive/phase/control-plane-product-surface/milestones/flutter-console-skeleton.md) - 요약: bootstrap과 runner/node 연결 기준을 바탕으로 `apps/client`와 `packages/flutter/oto_console`에 Control Plane 주요 화면, 상태 표시, 빈 상태를 갖춘 UI 스켈레톤을 만든다. - [완료] Control Plane API 데이터 바인딩 - - 경로: `agent-roadmap/archive/phase/control-plane-product-surface/milestones/control-plane-api-data-binding.md` + - 경로: [control-plane-api-data-binding.md](../../archive/phase/control-plane-product-surface/milestones/control-plane-api-data-binding.md) - 요약: UI 스켈레톤에 기존 OTO Core runner/job/execution/log/artifact API의 read path를 연결하고, 실제 데이터가 비어 있거나 실패할 때의 상태 표현을 검증한다. - [완료] Control Plane 운영 액션 표면 - - 경로: `agent-roadmap/archive/phase/control-plane-product-surface/milestones/control-plane-operator-actions.md` + - 경로: [control-plane-operator-actions.md](../../archive/phase/control-plane-product-surface/milestones/control-plane-operator-actions.md) - 요약: 기존 OTO Core write endpoint를 UI/adapter action 표면으로 연결하되, 상태 전이와 실패/확인 UX는 SDD로 먼저 잠근다. - [완료] Runner proto-socket transport hardening - - 경로: `agent-roadmap/archive/phase/control-plane-product-surface/milestones/runner-proto-socket-transport-hardening.md` + - 경로: [runner-proto-socket-transport-hardening.md](../../archive/phase/control-plane-product-surface/milestones/runner-proto-socket-transport-hardening.md) - 요약: OTO Server와 runner의 기본 내부 연결을 proto-socket push/session 기준으로 다듬고, HTTP job claim/polling 잔존 경로를 compatibility 경계로 축소한다. - [완료] Control Plane Jenkins 정렬 레이아웃 패스 - - 경로: `agent-roadmap/archive/phase/control-plane-product-surface/milestones/control-plane-jenkins-aligned-layout-pass.md` + - 경로: [control-plane-jenkins-aligned-layout-pass.md](../../archive/phase/control-plane-product-surface/milestones/control-plane-jenkins-aligned-layout-pass.md) - 요약: Jenkins 최신 weekly/LTS와 `2.516+` refreshed UI, Pipeline Graph View를 러프 참조로 삼아 OTO console shell, navigation, 주요 운영 view의 레이아웃을 구현에 반영했다. - [진행중] Control Plane Jenkins 메뉴·IA 코드 동기화 - - 경로: `agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-jenkins-menu-ia-code-sync.md` + - 경로: [control-plane-jenkins-menu-ia-code-sync.md](milestones/control-plane-jenkins-menu-ia-code-sync.md) - 요약: 화면정의서에 재정렬된 OTO 적용 가능 Jenkins 메뉴 모델을 Flutter shell, jobs, executions, runners, settings와 원격 preview에 코드로 동기화한다. - [진행중] Control Plane 운영 보안·감사 표면 - - 경로: `agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-security-audit-surface.md` + - 경로: [control-plane-security-audit-surface.md](milestones/control-plane-security-audit-surface.md) - 요약: write action 표면 이후 필요한 인증/권한, 감사 로그, 민감 정보 마스킹, UI 노출 경계를 SDD와 구현 가능한 Task로 구체화한다. ## Phase 경계 diff --git a/agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-jenkins-menu-ia-code-sync.md b/agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-jenkins-menu-ia-code-sync.md index 1ad29b4..999b46b 100644 --- a/agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-jenkins-menu-ia-code-sync.md +++ b/agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-jenkins-menu-ia-code-sync.md @@ -2,8 +2,8 @@ ## 위치 -- Roadmap: `agent-roadmap/ROADMAP.md` -- Phase: `agent-roadmap/phase/control-plane-product-surface/PHASE.md` +- Roadmap: [ROADMAP.md](../../../ROADMAP.md) +- Phase: [PHASE.md](../PHASE.md) ## 목표 @@ -59,10 +59,8 @@ Jenkins 정렬 레이아웃 패스 이후 발견된 메뉴/정보구조 불일 ## 작업 컨텍스트 -- 관련 active plan: `agent-task/m-control-plane-jenkins-menu-ia-code-sync/01_definition_guardrails/PLAN-cloud-G07.md` -- 관련 active plan: `agent-task/m-control-plane-jenkins-menu-ia-code-sync/02+01_shell_jobs/PLAN-cloud-G07.md` -- 관련 active plan: `agent-task/m-control-plane-jenkins-menu-ia-code-sync/03+01_executions_ops/PLAN-cloud-G07.md` -- agent-ui source of truth: `agent-ui/definition/views/index.md`, `agent-ui/definition/components/console-rail/index.md`, `agent-ui/definition/components/index.md` +- 관련 active plan: 없음 (현재 활성 `agent-task/` 문서 없음) +- agent-ui source of truth: [views index](../../../../agent-ui/definition/views/index.md), [console-rail index](../../../../agent-ui/definition/components/console-rail/index.md), [components index](../../../../agent-ui/definition/components/index.md) - 선행 작업: `Control Plane Jenkins 정렬 레이아웃 패스` - 후속 작업: `Control Plane 운영 보안·감사 표면` - 확인 필요: 없음 diff --git a/agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-security-audit-surface.md b/agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-security-audit-surface.md index 5895ad1..2c3b74c 100644 --- a/agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-security-audit-surface.md +++ b/agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-security-audit-surface.md @@ -2,8 +2,8 @@ ## 위치 -- Roadmap: `agent-roadmap/ROADMAP.md` -- Phase: `agent-roadmap/phase/control-plane-product-surface/PHASE.md` +- Roadmap: [ROADMAP.md](../../../ROADMAP.md) +- Phase: [PHASE.md](../PHASE.md) ## 목표 @@ -16,13 +16,13 @@ Control Plane write action 표면 위에 운영 권한, 확인 가능한 감사 ## 승격 조건 -- 충족: SDD가 `[승인됨]`이고 D01-D03 사용자 결정이 `user_review_0.log`로 해결되어 최소 인증/권한, 감사 source of truth, UI 노출/마스킹 기준이 구현 계획으로 전환 가능한 범위로 고정되었다. +- 충족: SDD가 `[승인됨]`이고 D01-D03 사용자 결정이 [user_review_0.log](../../../sdd/control-plane-product-surface/control-plane-security-audit-surface/user_review_0.log)로 해결되어 최소 인증/권한, 감사 source of truth, UI 노출/마스킹 기준이 구현 계획으로 전환 가능한 범위로 고정되었다. ## 구현 잠금 - 상태: 해제 - SDD: 필요 -- SDD 문서: `agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md` +- SDD 문서: [SDD.md](../../../sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md) - SDD 사유: 인증/권한, 감사 로그, write action 책임 경계는 API/schema/UI 상태와 사용자 승인 gate에 영향을 주므로 구현 전에 source of truth와 상태 전이를 고정해야 한다. - 잠금 해제 조건: - [x] SDD 상태가 `[승인됨]`이고 SDD 잠금이 해제되어 있다. @@ -45,7 +45,7 @@ Control Plane write action 표면 위에 운영 권한, 확인 가능한 감사 write action 이후 필요한 운영 보안과 감사 capability를 SDD 기준으로 구현하고 검증한다. -- [x] [security-sdd] 인증/권한, 감사 source of truth, 민감 정보 마스킹, 실패/거부 UX, 검증 evidence를 SDD로 고정한다. 검증: `SDD.md` 상태가 `[승인됨]`이고 SDD 잠금이 `해제`이며 `user_review_0.log`가 남아 있다. +- [x] [security-sdd] 인증/권한, 감사 source of truth, 민감 정보 마스킹, 실패/거부 UX, 검증 evidence를 SDD로 고정한다. 검증: [SDD.md](../../../sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md) 상태가 `[승인됨]`이고 SDD 잠금이 `해제`이며 [user_review_0.log](../../../sdd/control-plane-product-surface/control-plane-security-audit-surface/user_review_0.log)가 남아 있다. - [ ] [auth-scope] Core write endpoint와 Flutter action surface에 operator/admin 단일 역할 및 표시 가능한 token reference 기준의 허용/거부, disabled/error 상태를 구현한다. 검증: Core handler/route 테스트 또는 adapter/widget 테스트로 권한 허용/거부와 UI 상태를 확인한다. - [ ] [audit-scope] Control Plane write action의 actor, action, target, outcome, timestamp, optional reason 감사 metadata와 UI 노출/마스킹 경계를 구현한다. 검증: audit event field, in-memory/event surface boundary, UI masking/widget 테스트 또는 민감 문자열 미노출 검색으로 확인한다. diff --git a/agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md b/agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md index bda648d..60c4c10 100644 --- a/agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md +++ b/agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md @@ -2,8 +2,8 @@ ## 위치 -- Milestone: `agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-security-audit-surface.md` -- Phase: `agent-roadmap/phase/control-plane-product-surface/PHASE.md` +- Milestone: [control-plane-security-audit-surface.md](../../../phase/control-plane-product-surface/milestones/control-plane-security-audit-surface.md) +- Phase: [PHASE.md](../../../phase/control-plane-product-surface/PHASE.md) ## 상태 @@ -31,7 +31,7 @@ | 영역 | 기준 | 메모 | |------|------|------| -| Roadmap | `agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-security-audit-surface.md` | Milestone 상태, 기능 Task, 구현 잠금의 장기 원장이다. | +| Roadmap | [control-plane-security-audit-surface.md](../../../phase/control-plane-product-surface/milestones/control-plane-security-audit-surface.md) | Milestone 상태, 기능 Task, 구현 잠금의 장기 원장이다. | | Code | `services/core/internal/httpserver/routes.go` | Core HTTP write route의 현재 source of truth다. | | Code | `services/core/internal/httpserver/runner_cicd_handlers.go` | runner self-update, execution cancel/report/log/artifact write handler의 현재 검증·상태 변경 기준이다. | | Code | `apps/client/lib/src/app/core_connection_client.dart` | Flutter client가 Core write endpoint를 호출하고 success/deferred/failed로 해석하는 기준이다. |