appsok/agent-ops/rules/project/domain/app-shell/rules.md

2.1 KiB

domain last_rule_review_commit last_rule_updated_at
app-shell no-commit 2026-06-08

app-shell

목적 / 책임

AppSok의 전역 앱 구성, 기본 navigation shell, theme, 화면 간 진입 구조를 담당한다.

포함 경로

  • lib/main.dart — Flutter 앱 실행 진입점
  • lib/src/app.dartMaterialApp과 전역 theme 연결
  • lib/src/features/app_shell.dart — 빌드/디바이스/콘솔/설정 navigation shell
  • lib/src/theme/ — 앱 전역 색상, typography, component theme

제외 경로

  • lib/src/features/builds/ — Jenkins artifact 조회/설치 흐름은 artifact-flow 책임
  • lib/src/features/devices/, lib/src/features/console/ — ADB device/logcat 흐름은 device-console 책임
  • macos/ — bundle, entitlement, URL scheme은 macos-platform 책임

주요 구성 요소

  • AppSokApp — 앱 루트 widget
  • AppSokShell — 좌측 navigation과 상단 상태 영역
  • AppTheme — AppSok Material 3 light theme

유지할 패턴

  • 첫 화면은 실제 업무 화면이어야 하며 landing/marketing 화면으로 만들지 않는다.
  • 사용자 표시명은 AppSok으로 통일한다. Dart package, URL scheme, bundle id처럼 소문자 식별자가 필요한 곳만 appsok을 유지한다.
  • navigation item 추가 시 domain 경계를 먼저 정하고, shell에는 route/entry wiring만 둔다.
  • 버튼과 상태 표시는 icon을 우선 사용하고, 긴 설명성 문구는 화면 안에 넣지 않는다.
  • 카드 반경은 8px 이하를 유지한다.

다른 도메인과의 경계

  • artifact-flow: Jenkins 인증/빌드 목록 상태는 artifact-flow가 소유하고, shell은 연결 상태 요약만 표시한다.
  • device-console: ADB 연결 상태 원천은 device-console이 소유하고, shell은 요약만 표시한다.
  • macos-platform: 앱 이름, URL scheme, entitlement 변경은 platform 설정에서 처리한다.

금지 사항

  • shell에서 Jenkins API, Keychain, ADB Process를 직접 호출하지 않는다.
  • 전역 theme에 특정 feature만을 위한 색상/spacing을 과도하게 추가하지 않는다.