alt/agent-ops/rules/project/domain/client/rules.md

2.7 KiB

domain last_rule_review_commit last_rule_updated_at
client 711dbb9f0c 2026-05-28

client

목적 / 책임

ALT의 Flutter client surface를 담당한다. web/mobile/desktop targets, application shell, routing, feature presentation, and client-side tests belong here.

포함 경로

  • apps/client/lib/main.dart - Flutter app bootstrap
  • apps/client/lib/src/app/ - app shell, theme, router
  • apps/client/lib/src/contracts/ - client-side contract parser helpers
  • apps/client/lib/src/features/ - feature presentation code
  • apps/client/lib/src/generated/ - generated Dart protobuf outputs consumed by the client
  • apps/client/lib/src/integrations/ - client-side external integration adapters
  • apps/client/test/ - Flutter widget/unit tests
  • apps/client/pubspec.yaml - Flutter package dependencies

제외 경로

  • services/api/ - socket server runtime
  • packages/contracts/ - schema source for generated contracts
  • packages/domain/ - Go domain models

주요 구성 요소

  • AltClientApp - Material app shell using Riverpod
  • appRouterProvider - go_router configuration
  • DashboardScreen - initial responsive dashboard surface
  • altParserMap - generated ALT protobuf message parser registration for Dart clients
  • AltSocketClient - proto-socket client wrapper for ALT request/response flows
  • AltSocketEndpoint - local/default socket endpoint value object
  • SocketConnectionController - Riverpod connection state controller for socket lifecycle

유지할 패턴

  • Keep app-level shell and router under lib/src/app.
  • Put user-facing screens under the lib/src/features/feature-name/presentation pattern.
  • Put socket and other external adapters under lib/src/integrations.
  • Treat files under lib/src/generated as generated outputs; update them through codegen.
  • Use Material 3 components and responsive navigation patterns.
  • Test user-visible app shell behavior through Flutter tests.

다른 도메인과의 경계

  • api: client connects to API through integration adapters; server lifecycle and server-side socket parsing stay in services/api.
  • contracts: client consumes generated/mapped contracts and owns Dart parser helpers; protobuf source stays in packages/contracts.
  • operations: bin/test, bin/lint, and bin/build run client checks from the workspace root.

금지 사항

  • Do not place backend service code or Go module files under apps/client.
  • Do not hand-edit platform generated files unless the Flutter platform integration explicitly requires it.
  • Do not hand-edit generated protobuf Dart outputs.
  • Do not hard-code production endpoint assumptions in presentation widgets.