Agents & OrchestrationSûr100100/100
Devflow Automation (.NET)
Automate MAUI app state through DevFlow Actions. USE FOR: `[DevFlowAction]` shortcuts, login, seed data, deep screens. DO NOT USE FOR: arbitrary methods, DI internals, UI MCP tools, connectivity, or build/deploy issues.
ou envoie-le directement à ton agent.
Installer dans ton projet
$ curl -fsSL https://arboristhree.xyz/cli/install-skill.mjs -o /tmp/arboris-install-skill.mjs && node /tmp/arboris-install-skill.mjs devflow-automation__dotnet-maui-labs__plugins-dotnet-maui-tooling-skills-873b7dbeaa9e.NET
dotnet/maui-labs
Contenu à copier
---
name: devflow-automation
description: >-
Automate MAUI app state through DevFlow Actions. USE FOR: `[DevFlowAction]` shortcuts, login, seed data, deep screens. DO NOT USE FOR: arbitrary methods, DI internals, UI MCP tools, connectivity, or build/deploy issues.
metadata:
origin: .NET
---
# DevFlow Automation - Actions
DevFlow Actions are named shortcuts that a .NET MAUI app explicitly exposes for automation with `[DevFlowAction]`. Use them to reach useful app states quickly, such as logging in a test user, seeding data, toggling a feature flag, or navigating to a deep screen.
Actions are opt-in. DevFlow does not expose arbitrary reflection invoke; if you need a new shortcut, add an attributed method in app debug/test code, let Hot Reload apply it, then list and invoke the action.
## Optional Session Feedback Nudge
If action discovery or invocation exposed repeated DevFlow friction, missing
observability, or several workarounds to reach app state, ask whether the user
wants to run `maui-devflow-session-review` to summarize product feedback. Do not
run it automatically.
## Start by Listing Actions
Always check for available actions early in a DevFlow session:
```
maui_list_actions
```
Look for action names and descriptions that match your goal. Common patterns:
- `login-*` for authentication shortcuts
- `seed-*` for data population
- `navigate-*` for deep links or screen setup
- `set-*` for feature flags or configuration
- `reset-*` for state cleanup
## Invoke an Action
Arguments are passed as a JSON array in parameter order. Omit trailing optional parameters to use their defaults.
```
maui_invoke_action actionName="login-test-user"
maui_invoke_action actionName="login-test-user" argsJson='["alice@test.com", "secret"]'
maui_invoke_action actionName="seed-catalog" argsJson='[100]'
```
After invoking an action, verify the state with a screenshot, tree query, or other DevFlow tools:
```
maui_screenshot
```
## Hot Reload Workflow
If no useful action exists and you can edit the app:
1. Add a public static method annotated with `[DevFlowAction]`.
2. Add `[Description]` to each parameter so agents know what to pass.
3. Save and let C# Hot Reload apply the change.
4. Call `maui_list_actions` again.
5. Invoke the new action with `maui_invoke_action`.
Example:
```csharp
using System.ComponentModel;
using Microsoft.Maui.DevFlow.Agent.Core;
public static class DebugHelpers
{
[DevFlowAction("login-test-user", Description = "Log in as the standard test account")]
public static async Task LoginTestUser(
[Description("Email address for the test account")] string email = "test@example.com",
[Description("Password for the test account")] string password = "password123")
{
await AuthService.LoginAsync(email, password);
}
}
```
## Supported Parameter Types
Arguments are converted from JSON to these action parameter types:
| Type | JSON example |
|------|--------------|
| `string` | `"hello"` |
| `bool` | `true` or `false` |
| `int`, `long`, `short`, `byte` | `42` |
| `float`, `double`, `decimal` | `3.14` |
| `enum` | `"MemberName"` (case-insensitive) |
| arrays and supported list interfaces | `["a", "b"]` or `[1, 2, 3]` |
| nullable types | `null` or the value |
## Batch Support
Use `invoke-action` in batches when setup needs several steps:
```json
{
"actions": [
{ "action": "invoke-action", "name": "login-test-user" },
{ "action": "invoke-action", "name": "seed-catalog", "args": [100] },
{ "action": "tap", "elementId": "btn-advanced" }
]
}
```
## Rules for App Developers
- Methods must be `public static`.
- Parameters should be simple supported types, enums, nullable supported types, arrays, or supported list interfaces.
- Add `[Description]` to parameters so AI agents know what to pass.
- Prefer returning `void`, `Task`, `ValueTask`, `Task<T>`, or `ValueTask<T>` with simple return values.
- Action names should be unique and intention-revealing.
The DevFlow analyzer validates attributed methods:
| Diagnostic | Severity | Description |
|------------|----------|-------------|
| MAUI_DFA001 | Error | Unsupported parameter type |
| MAUI_DFA002 | Error | Method must be public static |
| MAUI_DFA003 | Warning | Return type may not serialize cleanly |
| MAUI_DFA004 | Info | Missing `[Description]` on parameter |
| MAUI_DFA005 | Warning | Duplicate `[DevFlowAction]` name |
## Common Patterns
### Authentication Bypass
```
maui_list_actions
maui_invoke_action actionName="login-test-user"
maui_screenshot
```
### Data Seeding
```
maui_invoke_action actionName="seed-catalog" argsJson='[200]'
maui_invoke_action actionName="seed-orders" argsJson='[50, true]'
```
### Feature Flag Override
```
maui_invoke_action actionName="set-feature-flag" argsJson='["dark-mode", true]'
maui_invoke_action actionName="set-feature-flag" argsJson='["experimental-ui", true]'
```
### Navigate to a Deep Screen
```
maui_invoke_action actionName="navigate-to" argsJson='["//settings/advanced/network"]'
```Colle ce Markdown dans ton agent ou utilise les boutons ci-dessus pour l’écrire dans ton projet.
Ce que fait Devflow Automation (.NET)
`login-*` for authentication shortcuts
`seed-*` for data population
`navigate-*` for deep links or screen setup
`set-*` for feature flags or configuration
Comment utiliser Devflow Automation (.NET)
1
Copie le prompt
Un clic copie le prompt packagé (ou l'envoie à ton agent).
2
L'agent installe le skill
Il ajoute le SKILL.md et ses ressources à ton projet.
3
Activation automatique
Le skill s'active dès que le contexte correspond.
Déclencheurs pour Devflow Automation (.NET)
Dis simplement à ton agent quelque chose comme :
Applique le skill devflow-automation__dotnet-maui-labs__plugins-dotnet-maui-tooling-skills-873b7dbeaa9e à cette tâche
Utilise devflow-automation__dotnet-maui-labs__plugins-dotnet-maui-tooling-skills-873b7dbeaa9e pour améliorer cette implémentation
Passe en revue ce sujet avec devflow-automation__dotnet-maui-labs__plugins-dotnet-maui-tooling-skills-873b7dbeaa9e
Skills liés à Devflow Automation (.NET)
Acceleration (Microsoft)
Compare synthetic acceleration options and clearly separate scenario value from forecast commitments.Account Overview (Microsoft)
Create a synthetic Acme account overview and identify evidence that merits seller attention.Acroform Writer (Microsoft)
Use this skill whenever the user wants values written INTO an existing PDF form that lives in the connected SharePoint knowledge source — filling out, completing, populating, or submitting a fillable PDF (application, intake sheet, contract, government form) from data they supply, a spreadsheet row, or the conversation. Triggers include "fill out the job application form", "complete the intake form for [person]", "populate our standard NDA template", and "make this ready to send / non-editable" (flatten). The source form should be found via knowledge search; only ask the user to upload it if knowledge search turns up nothing plausible. different task), and do NOT use it on scanned/image-only PDFs that have no real fillable fields — those need OCR or manual overlay instead, which this skill explicitly detects and reports rather than silently failing.