Files
fusion/packages/cli/skill/computer-use/SKILL.md
gsxdsm eacd6687bc FN-8961: add computer-use skill and version-matched guide
Ship the computer-use skill across bundled clients and surface its matching guide through the CLI.

- add the computer-use skill, computer command descriptor, and `fn skills get computer-use` guide
- reconcile all shipped Claude skills at project and startup entry points
- cover both skills' reconciliation outcomes and every required call site

Files changed:
 .changeset/fn-8961-computer-use-skill.md           |   7 +
 docs/cli-reference.md                              |   6 +-
 docs/computer-use.md                               |   8 +
 packages/cli/skill/computer-use/SKILL.md           |  31 +++
 packages/cli/src/__tests__/package-config.test.ts  |  20 ++
 packages/cli/src/bin.ts                            |  14 +-
 .../__tests__/claude-skills-callsites.test.ts      |  64 ++++++
 .../src/commands/__tests__/claude-skills.test.ts   | 221 ++++++++-------------
 .../__tests__/computer-surface-descriptor.test.ts  | 108 ++++++++++
 .../commands/__tests__/computer-use-guide.test.ts  |  36 ++++
 .../commands/__tests__/computer-use-skill.test.ts  |  20 ++
 packages/cli/src/commands/__tests__/daemon.test.ts |  36 +++-
 .../__tests__/dashboard-claude-skills.test.ts      |  19 ++
 packages/cli/src/commands/__tests__/init.test.ts   |  48 ++++-
 .../cli/src/commands/__tests__/project.test.ts     |  38 ++++
 packages/cli/src/commands/__tests__/serve.test.ts  |  36 +++-
 .../commands/__tests__/skill-installation.test.ts  |  12 ++
 .../cli/src/commands/__tests__/skills-get.test.ts  |  67 ++++++
 packages/cli/src/commands/claude-skills-runner.ts  |  55 ++---
 packages/cli/src/commands/claude-skills.ts         |  47 +++--
 packages/cli/src/commands/computer.ts              |   6 +-
 packages/cli/src/commands/computer/contract.ts     |  52 +++++
 packages/cli/src/commands/computer/guide.ts        |  62 ++++++
 packages/cli/src/commands/init.ts                  |   4 +-
 packages/cli/src/commands/skill-installation.ts    |  45 +++--
 packages/cli/src/commands/skills.ts                |  24 +++
 26 files changed, 853 insertions(+), 233 deletions(-)

Fusion-Task-Id: FN-8961
Fusion-Task-Lineage: b6baaebb-bf72-4991-8239-eb9bcf9cbcf1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-11 01:16:59 -07:00

32 lines
1.7 KiB
Markdown

---
name: computer-use
description: Control a desktop app, click a button in an app window, read what is on screen in an app, automate a GUI, drive a native app, or fill a form in a desktop app.
---
<!--
FNXC:ComputerUseSkill 2026-08-11-07:19:
This discovery stub must never gain a computer command or flag list. The binary owns its matching
reference through `fn skills get computer-use`; computer-use-skill.test.ts enforces this boundary.
-->
## When to engage
Use this skill for desktop GUI automation, reading native app state, clicking controls, or filling desktop forms.
## Resolve the CLI for this session
Resolve exactly one executable in this order: an explicitly exported `FUSION_CLI_BIN`, then `fn` on PATH, then the dev-checkout entry point. Reuse that executable for every command in this session. If resolution fails, report the error and stop; do not fall through to a different binary that could target another build.
## Load the full guide before running commands
Using the resolved executable, run `fn skills get computer-use` before any computer command. It prints the complete guide for the exact binary that will execute work.
## Keep this stub thin
This stub deliberately lists no subcommands or flags, so it can never drift from the binary that will actually run your commands.
## Older-binary fallback
If that binary does not know `skills get`, only inspect these read-only capabilities, then ask the user to update Fusion rather than guessing a command surface:
- `fn computer capabilities --json`
- `fn computer permissions --json`
- `fn computer list-apps --json`
macOS is first-class. On other platforms capabilities report `supported: false` and actions fail with `UNSUPPORTED_PLATFORM`; stop instead of retrying.