Files
social-app/apps/AGENTS.md
T

2.9 KiB

Apps Domain Rules

This file governs apps/** (Flutter). Keep rules strict, short, and reusable.

Scope & Precedence

  • Inherits root AGENTS.md and workspace runtime rules.
  • If rules conflict, apply the stricter one.
  • Visual language source of truth: apps/rules/visual_design_language.md.

Flutter Directory Contract (Must)

  • apps/lib only allows these second-level directories: app/, core/, data/, features/, shared/, l10n/.
  • apps/lib/main.dart is the only allowed root entry file.
  • Do not add new second-level directories under apps/lib without explicit approval.

UI Design System (Must)

  • Use design tokens only from apps/lib/core/theme/design_tokens.dart (AppColors, AppSpacing, AppRadius).
  • No hardcoded visual values.
  • If semantics are missing, add token definitions first.

Reuse & Composition (Must)

  • Prefer apps/lib/shared/widgets/ before adding new components.
  • Extract repeated page structures/components; do not duplicate sibling-page scaffolds.
  • Detail page top-right actions must use shared action-menu components.
  • Destructive confirmations must use project-consistent shared surfaces.

Interaction & Feedback (Must)

  • User feedback: Toast / AppBanner only.
  • Loading indicators: AppLoadingIndicator only.
  • Form pages should default to keyboard-overlay behavior to avoid full-page layout jumps.

Agent Chat Protocol (Must)

  • Agent chat must follow AG-UI over SSE.
  • Lifecycle events are mandatory: RUN_STARTED and exactly one of RUN_FINISHED or RUN_ERROR.
  • Text streaming flow must be TEXT_MESSAGE_START -> TEXT_MESSAGE_CONTENT -> TEXT_MESSAGE_END.

HTTP Error Parse Contract (Must)

  • Frontend must parse backend errors as RFC7807: type/title/status/detail/instance + extension code/params.
  • Error code registry single source of truth: docs/protocols/common/http-error-codes.md.
  • Frontend mapping must be based on documented code only (code -> l10n key), not inferred from detail text.
  • Any new/changed code requires protocol doc update first, then frontend mapping update.
  • Unknown code fallback order: status-generic localized message -> safe generic localized message.

High-Risk Modules (Must)

Auth

  • AuthBloc is the single source of truth.
  • 401 invalidation must go through global callback chain; no feature-level token clearing or direct login navigation.

Home Message Viewport

  • Home message auto-scroll/anchor restore must be event-driven.
  • Preserve viewport during history prepend and when user is reading above bottom.

Cache / Repository

  • Reads/writes that affect consistency must go through repository layer.
  • Cache keys and invalidation policy belong to repository, not UI/Bloc.

Testing Policy

  • Prioritize tests for model parsing, service logic, and high-regression interaction flows.
  • Simple static UI changes may skip tests.
  • Auth/Home/Cache changes must include targeted regression tests.