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.
npx agentmods add skills/sonature-lab/timsquad/securitynpx skills add sonature-lab/timsquad --skill securitygit clone --depth 1 https://github.com/sonature-lab/timsquadWrote 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.
[](https://agentmods.dev/skills/sonature-lab/timsquad/security)<a href="https://agentmods.dev/skills/sonature-lab/timsquad/security"><img src="https://agentmods.dev/badge/skills/sonature-lab/timsquad/security.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00036 | $0.01133 |
| Opus 5 | $0.00018 | $0.00566 |
| Sonnet 5 | $0.00007 | $0.00227 |
| Haiku 4.5 | $0.00004 | $0.00113 |
Grade A, and why
security 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 3d 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.
How it starts
The opening of the file, as written. The whole thing — 87 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Security
Flutter 모바일 보안 가이드. 저장소 암호화, 전송 보안, 실행 보호, 인증 강화. OWASP MASVS 기준 L1/L2 준수를 목표로 레이어별 독립 방어.
Philosophy
- 보안은 레이어 — 저장(암호화), 전송(TLS+pinning), 실행(난독화) 각각 독립 방어
- 키는 코드에 없다 — 빌드 시 주입, 런타임 안전 저장소
- 인증은 로컬 + 원격 이중 — biometric은 UX, 토큰은 보안
Resources
6개 규칙 + 1개 참조. 모바일 보안 전체 레이어를 커버.
| Priority | Type | Resource | Description |
|---|---|---|---|
| CRITICAL | rule | secure-storage | flutter_secure_storage (Keychain/EncryptedSharedPreferences), 민감 데이터 저장 |
| CRITICAL | rule | authentication | 토큰 라이프사이클, 자동 갱신, biometric 인증, 세션 관리 |
| HIGH | rule | ssl-pinning | Dio SecurityContext, 인증서/공개키 pinning, 핀 업데이트 전략 |
| HIGH | rule | api-key-protection | --dart-define 빌드 주입, envied 패키지, 하드코딩 금지 |
| HIGH | rule | obfuscation | --obfuscate, ProGuard, dSYM, Crashlytics 심볼 업로드 |
| MEDIUM | rule | data-protection | 로컬 DB 암호화, 클립보드 보호, 스크린샷 방지 |
| — | ref | mobile-security-checklist | OWASP MASVS L1/L2 체크리스트, 추천 도구 |
Quick Rules
저장소 보안
- 토큰/시크릿 →
flutter_secure_storage(Keychain iOS / EncryptedSharedPreferences Android) SharedPreferences에 민감 데이터 저장 금지 — 평문 저장, 루팅 시 노출- 로컬 DB → SQLCipher 또는 encrypt 패키지로 암호화
인증
- Access Token (단수명) + Refresh Token (장수명) 분리
- Dio interceptor로 401 감지 → 자동 갱신 → 재요청
- Biometric →
local_auth패키지, 실패 시 PIN/패턴 폴백
전송 보안
- TLS 1.2+ 필수, 인증서 pinning으로 MITM 차단
- Dio
SecurityContext+badCertificateCallback조합 - 핀 만료 대비 → 백업 핀 + 원격 업데이트 전략
API 키 보호
--dart-define=API_KEY=xxx→ 빌드 시 주입String.fromEnvironment('API_KEY')→ 런타임 참조.env→envied패키지 (코드 생성, 난독화 옵션)- 하드코딩 → 절대 금지 (git history에 영구 노출)
난독화
flutter build --obfuscate --split-debug-info=debug-info/- Android: ProGuard/R8 shrinking 활성화
- iOS: Bitcode (Xcode 설정) + dSYM 보관
- Crashlytics → 디버그 심볼 업로드 (크래시 리포트 해석용)
What ships with it
7 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 3d ago First seen · 87 lines · 36 tokens per session scan A 49355eaf9fd4
security is a skill published in the GitHub repository sonature-lab/timsquad (11 stars, last pushed 6d ago), licensed MIT. It adds 36 tokens to every session and 1,133 once invoked, about $0.0002 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.
Other skills, from other repositories
at_client_skills-sdk
Use this skill when a developer is building a Dart or Flutter app that depends on atclient or atclientflutter from pub.dev, stores or shares data via the Atsign Protocol, needs onboarding (CRAM new-atsign, atKeys file, keychain, APKAM) or APKAM enrollment, or asks about AtCollection , CItem , Query , sub-collections…
update-store
ストア情報の更新自動化 — スクリーンショット撮影(シミュレーター × モック画面 × Marionette MCP)とメタデータテキスト更新。ストア更新、スクショ更新、App Store / Google Play のメタデータ更新、リリースノート作成の際に使用すること。.
mobile-automation
MCP (dart-mcp + Marionette) を使ったFlutterアプリのE2E自動化・UI検証ガイド。シミュレーターでのUI動作確認、モックプレビュー検証、Bridge経由のE2Eテスト、スクリーンショット撮影など、アプリの動作検証が必要なときに使う。「動作確認して」「UIを検証して」「E2Eテスト」「シミュレーターで確認」「モックで確認」と言われたときや、UI変更後の検証フェーズで使用すること。.
submit-store-review
App Store Connect・Google Playの現在の公開版をAPIで調べ、既存の最新安定ビルドとの差分から4言語のリリースノートを作成し、CLI/APIで審査へ提出・再提出する。新しいビルドを作るrelease-appとは分離し、「最新を審査提出して」「ストア審査へ提出して」「App Reviewに出して」「Google Playの審査を進めて」「却下対応して再提出して」と依頼されたときに使用する。.
flutter-ui-design
SSOT (Single Source of Truth) + UDF (Unidirectional Data Flow) に基づく設計。.
release-app
アプリのリリース(バージョンbump + CHANGELOG + タグ → GH Actions で自動ビルド・配布)。iOS / Android / macOS / Linux / Windows の任意の組み合わせでリリースできる。「リリース」「バージョン上げて」「リリースして」と言われたときに使う。.