بنقرة واحدة
agent-progress-diagnostic
// How to tell whether a long-running background agent is hung vs. making progress, before reaching for stop_bash.
// How to tell whether a long-running background agent is hung vs. making progress, before reaching for stop_bash.
End-to-end workflow for building, deploying, inspecting, and debugging .NET MAUI and MAUI Blazor Hybrid apps as an AI agent. Use when: (1) Building or running a MAUI app on iOS simulator, Android emulator, Mac Catalyst, macOS (AppKit), or Linux/GTK, (2) Inspecting or interacting with a running app's UI (visual tree, tapping, filling text, screenshots, property queries), (3) Debugging Blazor WebView content via CDP, (4) Managing simulators or emulators, (5) Setting up MauiDevFlow in a MAUI project, (6) Completing a build-deploy-inspect-fix feedback loop, (7) Handling permission dialogs and system alerts, (8) Managing multiple simultaneous apps via the broker daemon. Covers: maui devflow CLI (the `maui` dotnet global tool, `devflow` subcommand), androidsdk.tool, appledev.tools, adb, xcrun simctl, xdotool, and dotnet build/run for all MAUI target platforms including macOS (AppKit) and Linux/GTK.
Use this skill when the user is working with an Aspire distributed application and needs to operate the AppHost or its resources through the Aspire CLI: start, restart, stop, or wait on the app; work through code/resource changes with watch, rebuild, hot reload, or resource commands; inspect resources, logs, traces, docs, or health; add integrations; manage secrets or config; publish, deploy, or rerun a named pipeline step; initialize Aspire in an existing app; recover missing `.modules` files in a TypeScript AppHost; discover the right frontend URL for Playwright from Aspire state; expose custom dashboard/resource commands; or understand unfamiliar Aspire AppHost APIs in C# or TypeScript. Use it even if they describe the task in terms of an AppHost, resources, dashboard, existing app bootstrap, missing generated modules, Playwright URL discovery, C# API understanding, or local distributed app workflow without explicitly naming Aspire. Do not use it for non-Aspire .NET apps, container-only repos with no AppHo
{what this skill teaches agents}
{what this skill teaches agents}
10-point checklist for reviewing new API endpoints in multi-user, dual-provider (PostgreSQL/SQLite) contexts
Copilot CLI skills and custom agents available in this environment
| name | agent-progress-diagnostic |
| description | How to tell whether a long-running background agent is hung vs. making progress, before reaching for stop_bash. |
| domain | squad-orchestration |
| confidence | low |
| source | observed (Wash publish #9, 2026-05-07 — one occurrence) |
Squad agents like Wash (publish), Kaylee (feature work), Jayne (E2E) routinely make 50–150 tool calls per task. From the Coordinator's seat, a long-quiet agent at ~80+ tool calls looks identical to a hung agent. The reflex is to assume it's stuck and either kill it (stop_bash) or escalate to Captain. Both are usually wrong.
Apply this skill when: an async background agent has been running long enough that you're tempted to ask "is it hung?" Before any kill action, run the rubric.
| Agent role | Typical envelope | Concern threshold |
|---|---|---|
| Wash (publish) | 60–120 tool calls | >150 with no inbox-file write |
| Kaylee (feature) | 80–200 tool calls | >250 with no commits |
| Jayne (E2E) | 50–150 tool calls | >200 with no screenshot output |
| Scribe (merge) | 20–50 tool calls | >80 with no decisions.md write |
These are observational — refine as more data lands.
Check elapsed seconds and tool-call count. Within envelope? → almost certainly fine, just wait. Past envelope? → continue.
Send a status write_agent ping. One line, low-cost:
"status check — what step are you on?"
Check filesystem for files the agent should be writing. Most Squad agents land an inbox decision file (/.squad/decisions/inbox/<agent>-<task>.md) or a screenshot near completion. Use ls -la on the expected output dir:
ls -la /Users/davidortinau/work/SentenceStudio/.squad/decisions/inbox/
A file with a recent timestamp (mtime within last 60s) means the agent IS writing — give it more time.
Check the agent's history/log file. Most Squad agents append to .squad/agents/<name>/history.md or write orchestration log entries. Recent timestamp → alive.
Only consider stop_bash if all four signals say stuck. Specifically: tool-call count past envelope AND ping unanswered AND no recent file writes AND no log activity. Even then, prefer write_agent with a "wrap up and report what you have" message over a hard kill — graceful shutdown preserves work in progress.
write_agent: "status check?" → Wash replied within seconds with "writing decision file.".squad/decisions/inbox/ had a fresh wash-publish-9-*.md mtime within 30s. → Confirmed alive.stop_bash because "it's been a while." Set a stopwatch, run the rubric, only kill on hard evidence..squad/decisions/inbox/ has a fresh mtime, the agent is in its closing moves. Wait..squad/agents/wash/history.md (most recent entry) and .squad/decisions.md (Publish #9 section).write_agent, read_agent, list_agents, stop_bash. See Copilot CLI tool reference..squad/orchestration.md — broader Coordinator runbook.