mattermost-push-plugin/agent-ops/rules/project/domain/project-support/rules.md

2.6 KiB

domain last_rule_review_commit last_rule_updated_at
project-support 678302bc3e 2026-05-25

project-support

목적 / 책임

패키지 메타데이터, 문서, Flutter analysis 설정, example app, smoke/integration 검증 흐름을 관리한다.

포함 경로

  • pubspec.yaml — package metadata, Flutter plugin platform mapping, Dart/Flutter dependency contract를 포함한다.
  • analysis_options.yaml — Dart analysis/lint 설정을 포함한다.
  • README.md, CHANGELOG.md — support matrix, API usage, host integration 책임, manual smoke checklist를 포함한다.
  • example/ — plugin consumer app scaffold와 integration/widget test를 포함한다.
  • .metadata, root project files — Flutter package scaffold metadata를 포함한다.

제외 경로

  • lib/ — public Dart API 구현 도메인이다.
  • android/src/main/ — Android native runtime 구현 도메인이다.
  • ios/, macos/ — Apple scaffold 도메인이다.

주요 구성 요소

  • README.md — plugin 책임, platform support, host app integration, manual smoke checklist의 기준 문서다.
  • example/lib/main.dart — consumer-side API 사용과 manual verification 보조 화면을 제공한다.
  • example/integration_test/ — host integration 흐름 검증 scaffold를 둔다.
  • pubspec.yaml — plugin platform registration과 dependency version을 관리한다.

유지할 패턴

  • README support matrix는 실제 구현 상태와 맞춘다. Android는 production-ready, iOS/macOS는 no-op scaffold로 명시한다.
  • dependency 변경은 Flutter/Dart API, Android Gradle dependency, example app 영향을 함께 확인한다.
  • generated build output, .dart_tool, Gradle build cache, IDE workspace 파일은 수동 변경 대상으로 삼지 않는다.
  • manual smoke checklist는 headless test로 검증되지 않는 FCM/notification/reply/ACK 흐름을 보완한다.

다른 도메인과의 경계

  • dart-api: example과 문서는 public API 사용 방식을 보여주되 API 계약 변경은 lib/와 테스트에서 확정한다.
  • android-push-runtime: support 문서는 Android runtime의 실제 동작을 반영하지만 native helper 구현은 수정하지 않는다.
  • apple-stubs: support matrix와 platform 설명은 Apple scaffold의 no-op 상태를 과장하지 않는다.

금지 사항

  • build/generated 산출물을 의도된 소스 변경처럼 커밋하지 않는다.
  • 문서에서 자동화되지 않은 FCM end-to-end 검증을 테스트 완료로 단정하지 않는다.
  • package metadata 변경 시 example lock/build 상태만 보고 dependency 호환성을 단정하지 않는다.