Control and document the FieldWorks desktop application with WinForms MCP or WinApp MCP. Use this skill whenever a task requires launching FieldWorks, restoring or opening a FieldWorks project, walking WinForms UI flows, collecting manual screenshots, reproducing UI bugs, or verifying a fix inside the live FLEx application.
Scanned 6/11/2026
Install via CLI
openskills install sillsdev/FieldWorks---
name: fieldworks-winapp
description: >
Control and document the FieldWorks desktop application with WinForms MCP or WinApp MCP.
Use this skill whenever a task requires launching FieldWorks, restoring or
opening a FieldWorks project, walking WinForms UI flows, collecting manual
screenshots, reproducing UI bugs, or verifying a fix inside the live FLEx
application.
license: MIT
compatibility: >
Requires a Windows/x64 FieldWorks workspace. Prefer WinForms MCP
for hidden-desktop UIA2 automation when available; use WinApp MCP as the UIA3
fallback and for visible desktop/window diagnostics.
metadata:
author: FieldWorks team
version: "1.0"
---
# FieldWorks WinForms/WinApp Automation
Use this skill to launch, inspect, navigate, and capture evidence from the
FieldWorks Language Explorer desktop app through WinForms MCP or WinApp MCP.
Keep the workflow grounded in the live UI tree: inspect first, interact second,
capture evidence after the target state is visible.
This skill is intentionally organized as a small index plus route-specific
navigation files. Read only the route files needed for the task.
## Core Rules
- Prefer WinForms MCP UIA2 tools for fresh FieldWorks runtime automation because
FieldWorks is currently WinForms and the workspace config runs WinForms MCP in
hidden-desktop mode.
- Use WinApp MCP UIA3 tools when WinForms MCP is unavailable, when a task needs
visible desktop/window diagnostics, or when UIA2 cannot see the target
surface.
- Prefer UI Automation IDs and names over coordinates. Use coordinates only
after snapshots and element searches fail.
- Always inspect the current tree with `winforms_get_element_tree`,
`mcp_winapp_get_snapshot`, or targeted element search before assuming a
dialog structure.
- Treat FieldWorks UI automation as stateful. After opening menus, dialogs, or
popups, re-query the snapshot or element list.
- Capture screenshots into a task-specific evidence folder before closing the
app or dialog.
- Close evidence-only dialogs with `Cancel` or `Escape` unless the user asked
to change project data.
- Do not globally register COM or add registry hacks. FieldWorks uses reg-free
COM from the build output.
## MCP Selection
- Default to WinForms MCP for launch/test/screenshot flows. Use
`winforms_launch_app`, `winforms_wait_for_element`,
`winforms_get_element_tree`, `winforms_find_element`,
`winforms_click_element`, `winforms_type_text`, `winforms_set_value`,
`winforms_select_item`, `winforms_click_menu_item`, and
`winforms_take_screenshot`.
- Use WinForms MCP headless-safe operations only. Avoid `winforms_send_keys`,
drag/drop, and double-clicks on hidden-desktop processes.
- Use WinApp MCP for visible desktop/window diagnostics, UIA3 comparison,
fallback screenshots, or controls that WinForms MCP cannot operate.
- Read `references/mcp-selection.md` before changing a route from one MCP driver
to the other.
## How This Skill Is Organized
- `SKILL.md`: trigger metadata, global safety rules, and route index.
- `navigation/*.md`: one goal-oriented navigation path per file. These are the
FieldWorks equivalent of Page Objects: each file owns the menu path,
automation IDs, verification cues, and safe exit path for one user-facing
destination or workflow.
- `references/how-to-update.md`: rules for adding or revising navigation paths.
- `references/mcp-selection.md`: rules for choosing WinForms MCP or WinApp MCP.
- `references/research.md`: source-backed rationale for this structure.
When a task names a destination, read the matching navigation file. When a task
discovers a better route or a fragile selector, read and update
`references/how-to-update.md` before changing the route file.
## Navigation Path Index
- Launch or attach to FieldWorks: `navigation/launch-or-attach.md`
- Confirm or restore a sample project: `navigation/project-loading.md`
- Writing System Properties > Font tab: `navigation/writing-system-font-options.md`
- Styles dialog > Font tab: `navigation/styles-font-tab.md`
- Manual screenshot evidence: `navigation/screenshot-evidence.md`
- MCP driver selection: `references/mcp-selection.md`
## Screenshot Evidence
For evidence tasks, read `navigation/screenshot-evidence.md`. Prefer committed
OpenSpec evidence only when the screenshot should be part of review history;
otherwise use `Output/ManualEvidence/<ticket-or-change-id>/`.
For target detection, descriptive filenames, inline review, annotation, and
retake quality gates, also use `../smart-screenshot-capture/SKILL.md`.
## How To Update This Skill
Keep improving this skill as you explore FieldWorks and discover the most
efficient ways to do things. When you find a reliable automation ID, keyboard
route, menu path, restore flow, modal-dialog workaround, or screenshot trick,
update the relevant route file in the same change set or propose the update to
the user. Prefer short, verified notes over broad guesses.
Use `references/how-to-update.md` for the exact update checklist. In short:
- add one navigation file per distinct destination or workflow;
- keep each file task-focused and action-oriented;
- record stable automation IDs, entry state, verification cues, and exit path;
- move shared rules back to this index only when at least two route files need
the same guidance;
- remove or revise stale routes when WinApp snapshots prove they changed.
No comments yet. Be the first to comment!