observability

observability is a skill for Claude Code, Codex from lh17708357536-gif/flutter-cn-overseas-app-skills. It costs 108 tokens per session (2,958 once invoked), scanned A, original, MIT.

A monitoring setup for Flutter mobile apps and NestJS backends running in multiple regions. It collects crashes, structured logs, request traces, health checks, and alerts, with different crash tools for different app variants.

In plain words
What is it for?
Use it to route crash reports by app variant, connect releases to build numbers, add request and user context to backend logs, pass tracing IDs between services, and monitor uptime.
Why use it?
It makes production failures visible and keeps sensitive personal data out of logs. It also avoids using Firebase in the China app variant, where Firebase is not allowed.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to route crash reports by app variant, connect releases to build numbers, add request and user context to backend logs, pass tracing IDs between services, and monitor uptime.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/lh17708357536-gif/flutter-cn-overseas-app-skills/observability
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add lh17708357536-gif/flutter-cn-overseas-app-skills --skill observability
Clone the repo
git clone --depth 1 https://github.com/lh17708357536-gif/flutter-cn-overseas-app-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for observability

README.md
[![agentmods](https://agentmods.dev/badge/skills/lh17708357536-gif/flutter-cn-overseas-app-skills/observability/github.svg)](https://agentmods.dev/skills/lh17708357536-gif/flutter-cn-overseas-app-skills/observability)
Your own site
<a href="https://agentmods.dev/skills/lh17708357536-gif/flutter-cn-overseas-app-skills/observability"><img src="https://agentmods.dev/badge/skills/lh17708357536-gif/flutter-cn-overseas-app-skills/observability/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for observability

Your own site · 80×15
<a href="https://agentmods.dev/skills/lh17708357536-gif/flutter-cn-overseas-app-skills/observability"><img src="https://agentmods.dev/badge/skills/lh17708357536-gif/flutter-cn-overseas-app-skills/observability.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 108 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,958 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00108 $0.02958
Opus 5 $0.00054 $0.01479
Sonnet 5 $0.00022 $0.00592
Haiku 4.5 $0.00011 $0.00296

Measured 12d ago against content hash 733fd88ce033, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

observability scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/observability/SKILL.md · 218 lines

How it starts

The opening of the file, as written. The whole thing — 218 lines — stays where its author put it; the contents beside it link to each section on GitHub.

可观测性 Skill(多区域 Flutter + NestJS)

把"生产出了什么事"变得可见。分三层:崩溃/错误采集(前端)、结构化日志 + 追踪(后端)、健康/告警(运维)。所有 <PLACEHOLDER> 替换为项目实际值。

多区域最大约束:cn flavor 禁 Firebase(对应 cn-android-flavor §1),所以 Crashlytics 不能进 cn 包。崩溃采集必须按 flavor 分流。

1. ★ Flavor 感知的崩溃采集(核心决策)

flavor 崩溃采集方案 理由
cn_android Sentry(可自托管国内) 禁 Firebase → 不能用 Crashlytics;Sentry Dart SDK 无 Google 依赖
overseas_android Sentry 或 Firebase Crashlytics 二选一;用 Sentry 可与 cn 统一后台
iOS Sentry 或 Crashlytics 同上

推荐:三 flavor 统一用 Sentry(一个后台看全部,cn 可指向自托管实例;避免维护两套崩溃后台)。Crashlytics 仅在你已重度依赖 Firebase 生态时用于 overseas/iOS。

pubspec.yaml

dependencies:
  sentry_flutter: ^8.x.x
  # 若 overseas/iOS 另用 Crashlytics(可选,且必须条件 import 隔离,勿进 cn):
  # firebase_crashlytics: ^4.x.x

★ flavor 分流初始化(对应 flutter-coding-conventions §18 工厂模式):

// lib/core/config/crash_reporter_factory.dart
Future<void> initCrashReporter(Widget app) async {
  final flavor = FlavorConfig.current;
  final dsn = _dsnForFlavor(flavor);            // 不同 flavor 不同 DSN/项目
  await SentryFlutter.init(
    (o) {
      o.dsn = dsn;
      o.environment = flavor.name;              // cn_android / overseas_android / ios
      o.release = '<APP_PACKAGE>@$appVersion+$buildNumber';  // ★ 与 pubspec 版本号绑定
      o.tracesSampleRate = 0.2;                 // 性能追踪采样,按量调
      o.beforeSend = _redactPII;                // ★ 脱敏(第 5 节)
    },
    appRunner: () => runApp(app),
  );
}

cn 的 DSN 指向自托管 Sentrysentry.<PROD_DOMAIN>),数据不出境、国内上报快;overseas/iOS 可用 Sentry SaaS。

手动上报业务错误 + breadcrumb

try {
  await api.callAI(...);
} catch (e, st) {
  Sentry.addBreadcrumb(Breadcrumb(message: 'toolId=A1 action=generate', category: 'credits'));
  await Sentry.captureException(e, stackTrace: st);
  rethrow;   // ★ 仍然 rethrow,不吞错(对应日志铁律)
}

2. release 与 buildNumber 绑定(不绑等于没上报)

崩溃如果不带 release 版本号,无法定位是哪个包。铁律

  • o.release = '<pkg>@<versionName>+<buildNumber>',值从 package_info_plus 读,与 pubspec.yaml_shared/rules.md §3 唯一真相源)一致
  • 每次发版在 CI 里 上传 debug symbols / dSYM,否则堆栈是混淆后的乱码:
    # release-mobile.yml 追加(Sentry)
    - run: |
        flutter build apk --flavor cn --release --split-debug-info=build/symbols --obfuscate ...
    - run: sentry-cli debug-files upload --include-sources build/symbols
      env: { SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} }
    
  • iOS dSYM:archive 后 sentry-cli upload-dif ios/build/...(或 Crashlytics 走 upload-symbols

Read the full file on GitHub · 218 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 218 lines · 108 tokens per session scan A 733fd88ce033

Subscribe to this mod's changes

observability is a skill published in the GitHub repository lh17708357536-gif/flutter-cn-overseas-app-skills (20 stars, last pushed 2mo ago), licensed MIT. It adds 108 tokens to every session and 2,958 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

app-store-preflight-compliance

Pre-submission compliance scanner workflow for Apple App Store apps. Use when reviewing iOS, macOS, tvOS, watchOS, or visionOS projects (Swift, Objective-C, React Native, Expo) for App Store rejection risks, submission readiness, privacy compliance, or guideline violations.

RevylAI/greenlight · 65 tokens

greenlight

It now lives at skills/greenlight/SKILL.md.

RevylAI/greenlight · 0 tokens

aso-playbook

Beginner-friendly App Store Optimization guide covering keyword research, screenshot design, rating management, and A/B testing for iOS and Android. By @WeiYipei — practical ASO for indie developers and small teams.

Gingiris-1031/gingiris-skills · 48 tokens

gingiris-aso-growth

A broad guide to growing mobile apps through App Store Optimization, launch planning, creator-made content, and marketing on platforms such as TikTok, Instagram, and YouTube Shorts.

Gingiris-1031/gingiris-skills · 320 tokens

gr-aso

A skill for app-store optimization, or improving how an app is found and presented in the App Store and Google Play, plus launch planning for a new app. It covers listing text, screenshots and video, ratings, creator content, advertising, and localization.

Gingiris-1031/gingiris-skills · 56 tokens

app-paywall-pilot

Design, audit, debug, and implement App Store-compliant mobile paywalls, subscription flows, pricing screens, trials, offers, feature gates, and subscription lifecycle UX. Use when the user asks to audit my paywall, fix App Store 3.1.2 rejection, improve trial-to-paid, choose plans/prices/trials, review…

Nikolai-Iakubovskii/app-paywall-pilot · 101 tokens