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/dotnet/maui-labs/external-commsnpx skills add dotnet/maui-labs --skill external-commsgit clone --depth 1 https://github.com/dotnet/maui-labsWrote 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/dotnet/maui-labs/external-comms)<a href="https://agentmods.dev/skills/dotnet/maui-labs/external-comms"><img src="https://agentmods.dev/badge/skills/dotnet/maui-labs/external-comms.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.00020 | $0.03005 |
| Opus 5 | $0.00010 | $0.01503 |
| Sonnet 5 | $0.00004 | $0.00601 |
| Haiku 4.5 | $0.00002 | $0.00300 |
Grade A, and why
external-comms 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 5d 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.
This is a copy
100% identical to external-comms — 658 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 330 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Context
Phase 1 is draft-only mode.
- PAO scans issues and discussions, drafts responses with the humanizer skill, and presents a review table for human approval.
- Human review gate is mandatory — PAO never posts autonomously.
- Every action is logged to
.squad/comms/audit/. - This workflow is triggered manually only ("PAO, check community") — no automated or Ralph-triggered activation in Phase 1.
Patterns
1. Scan
Find unanswered community items with GitHub MCP tools first, or gh issue list / gh api as fallback for issues and discussions.
- Include open issues and discussions only.
- Filter for items with no squad team response.
- Limit to items created in the last 7 days.
- Exclude items labeled
squad:internalorwontfix. - Include discussions and issues in the same sweep.
- Phase 1 scope is issues and discussions only — do not draft PR replies.
Discussion Handling (Phase 1)
Discussions use the GitHub Discussions API, which differs from issues:
- Scan:
gh api /repos/{owner}/{repo}/discussions --jq '.[] | select(.answer_chosen_at == null)'to find unanswered discussions - Categories: Filter by Q&A and General categories only (skip Announcements, Show and Tell)
- Answers vs comments: In Q&A discussions, PAO drafts an "answer" (not a comment). The human marks it as accepted answer after posting.
- Phase 1 scope: Issues and Discussions ONLY. No PR comments.
2. Classify
Determine the response type before drafting.
- Welcome (new contributor)
- Troubleshooting (bug/help)
- Feature guidance (feature request/how-to)
- Redirect (wrong repo/scope)
- Acknowledgment (confirmed, no fix)
- Closing (resolved)
- Technical uncertainty (unknown cause)
- Empathetic disagreement (pushback on a decision or design)
- Information request (need more reproduction details or context)
Template Selection Guide
| Signal in Issue/Discussion | → Response Type | Template |
|---|---|---|
| New contributor (0 prior issues) | Welcome | T1 |
| Error message, stack trace, "doesn't work" | Troubleshooting | T2 |
| "How do I...?", "Can Squad...?", "Is there a way to...?" | Feature Guidance | T3 |
| Wrong repo, out of scope for Squad | Redirect | T4 |
| Confirmed bug, no fix available yet | Acknowledgment | T5 |
| Fix shipped, PR merged that resolves issue | Closing | T6 |
| Unclear cause, needs investigation | Technical Uncertainty | T7 |
| Author disagrees with a decision or design | Empathetic Disagreement | T8 |
| Need more reproduction info or context | Information Request | T9 |
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.
- 5d ago First seen · 330 lines · 20 tokens per session scan A a32cc840a78c
external-comms is a skill published in the GitHub repository dotnet/maui-labs (212 stars, last pushed yesterday), licensed MIT. It adds 20 tokens to every session and 3,005 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to external-comms, differing in 658 lines, and is treated as a copy.
Other skills, from other repositories
flutter-cherry-pick
How to land a formal cherry-pick of a merged PR for the flutter/flutter repo stable or beta channel. Only use for flutter/flutter landed pull requests. Only use when the cherry pick request is into "stable", "beta" or a branch that has the format with flutter- . -candidate.0.
updating-android-sdk
Upgrades Flutter's Android SDK dependency to a new Android API version (or preview/canary release) in packages.txt, verifies CIPD tag uniqueness, and packages/uploads the binaries using createcipdpackages.sh across macOS, Linux, and Windows. Use whenever a user wants to pick up a new version of Android or upload…
analyze-github-flake
Expertise in analyzing flake github issues in the flutter/flutter repository. Use when a user wants to analyze the flakiness of a specific link to a flutter github issue.
upgrade-browser
Upgrade browser versions (Chrome or Firefox) in the Flutter Web Engine and/or Framework tests. Use when asked to roll or upgrade Chrome or Firefox to a newer version.
run-devicelab-with-led
Run DeviceLab tests for Flutter PRs using LUCI's led CLI tool. Use when asked to run, launch, try, or deflake a post-submit or devicelab test against a PR using led.
natural-writing
Contains well-defined rules for creating natural, accurate, and readable writing. Use whenever authoring longer text, like analysis documents, PR or CL descriptions, or documentation.