
Description
Query Maestro/BAR dependency flow data using the mstro CLI tool via bash. USE FOR: subscription health checks, build flow tracing, codeflow status, channel discovery, triggering subscription updates — when MCP tools aren't loaded or when scripting with JSON output and jq. Also use when investigating "is this subscription stale", "what's the latest build", "check backflow status". DO NOT USE FOR: tasks where maestro MCP tools are already available in context (prefer flow-analysis or flow-tracing skills when MCP server is loaded). INVOKES: bash (mstro CLI commands with --json output).
SKILL.md
Maestro CLI
Query Maestro/BAR data via the mstro CLI tool instead of loading MCP tools into context. Same data, same caching, zero context tax — agents discover capabilities progressively through --help and mstro guide.
When to Use This Skill
Use this skill when:
- You need Maestro/BAR data but the maestro MCP server isn't configured
- You're scripting or chaining commands with
jq,grep, or other CLI tools - You want structured JSON output for downstream processing
- The task is one-shot (not a multi-turn conversational investigation)
Prefer MCP-based skills (flow-analysis, flow-tracing) when:
- The maestro MCP server is already loaded in your tool list
- You're doing multi-turn conversational investigation
- You need markdown-formatted output with visual indicators
Installation
dotnet tool install -g lewing.maestro.mcp
After installation, mstro is available globally. Verify: mstro --help
Note: The same package (
lewing.maestro.mcp) serves as both a .NET global tool (providing themstroCLI) and an MCP server (viadotnet dnx). The CLI is what this skill uses.
Authentication
Three-tier cascade (automatic fallback):
MAESTRO_BAR_TOKENenv var — explicit PAT- Cached Entra ID — reuses
darc authenticatecredentials from~/.darc/.auth-record-* - Anonymous — read-only fallback (may be rate-limited)
Run darc authenticate once for persistent credentials.
Progressive Discovery
Don't memorize commands. Discover them:
mstro --help # All commands, one line each
mstro <command> --help # Parameters for a specific command
mstro <command> --schema # JSON response field names (for jq pipelines)
mstro guide # Workflow-organized guide (~3KB)
Before writing jq queries, run --schema to see the response shape:
mstro subscription-health --schema # → shows StaleSubs[].Id, .BuildsBehind, etc.
mstro latest-build --schema # → shows Id, Repository, Commit, etc.
Common Patterns
All query commands support --json (structured output) and --no-cache (fresh data).
Check subscription health
mstro subscription-health --target-repository https://github.com/dotnet/dotnet --json
Find latest build
mstro latest-build https://github.com/dotnet/runtime --channel-name ".NET 10.0.1xx SDK" --json
Check codeflow status
mstro codeflow-statuses --json
Trace a build graph
mstro build-graph <build-id> --json
Trigger a stale subscription
# Provide --source-repository + --channel-name (auto-resolves latest build)
mstro trigger-subscription <guid> --source-repository https://github.com/dotnet/runtime --channel-name ".NET 10.0.1xx SDK"
# Or provide --build-id directly. Add --force to overwrite stale PR branch.
Chaining with jq
Use mstro <command> --schema to see all response fields before writing jq queries.
# Count stale subscriptions (StaleSubs[].Id, .BuildsBehind, .SourceRepository, .ChannelName)
mstro subscription-health --target-repository https://github.com/dotnet/dotnet --json | jq '.StaleSubs | length'
# Filter channels by name
mstro channels --json | jq '.[] | select(.Name | contains("10.0"))'
# Get build ID then trace graph
BUILD_ID=$(mstro latest-build https://github.com/dotnet/runtime --json | jq -r '.Id')
mstro build-graph $BUILD_ID --json
Cache
Shared SQLite cache at ~/.mstro/cache.db (WAL mode). Cache is shared between CLI and MCP server instances — using the CLI warms the cache for MCP and vice versa.
mstro cache status— show cache statsmstro cache clear— clear all cached data--no-cacheon any command bypasses cache
More skills from the arcade-skills repository
View all 12 skillsbinskim-analysis
investigate BinSkim SDL security findings
Jul 12.NETAuditCode AnalysisSecuritybinskim-scan
run BinSkim binary security analysis
Jul 12.NETCLICode AnalysisSecurityci-analysis
analyze .NET CI build and test status
Jul 12.NETAzureCI/CDDebuggingci-crash-dump
debug CI crash dumps
Jul 12.NETCI/CDDebuggingTestingflow-analysis
analyze VMR codeflow health
Jul 12CI/CDEngineeringGitHubMCPflow-tracing
trace .NET dependency flow in VMR
Jul 12Data Pipeline
More from .NET (Microsoft)
View publishermultithreaded-task-migration
migrate MSBuild tasks to multithreaded mode
msbuild
Jul 22.NETEngineeringPerformanceanalyzing-dotnet-performance
analyze .NET code for performance anti-patterns
skills
Jul 12.NETCode AnalysisDebuggingPerformanceandroid-tombstone-symbolication
symbolicate .NET runtime frames in Android tombstones
skills
Jul 12.NETAndroidDebuggingMicrosoftapple-crash-symbolication
symbolicate .NET runtime frames in crash logs
skills
Jul 12.NETDebuggingiOSmacOS +1assertion-quality
evaluate assertion quality in test suites
skills
Jul 12Code AnalysisQATestingauthor-component
create and review Blazor components
skills
Jul 15.NETBlazorC#UI Components +1