feat(droid-control): make desktop workflows self-contained - #49
Open
factory-droid[bot] wants to merge 2 commits into
Open
feat(droid-control): make desktop workflows self-contained#49factory-droid[bot] wants to merge 2 commits into
factory-droid[bot] wants to merge 2 commits into
Conversation
Make desktop-control usable without a separately installed personal Cua skill. Bundle exact upstream documentation and its MIT license, with an offline importer/checker and plugin-only packaging tests. Route explicit cua-only requests before browser defaults, keep shared desktop interaction under one controller, and distinguish verified task completion from input delivery and partial capture artifacts. Pin the reference to the contribution in trycua/cua#3719 and bump the plugin to 1.1.0 without claiming upstream merge or runtime certification. Closes CLI-2242 Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Maintain desktop guidance with the plugin instead of enforcing immutable upstream copies. Remove the importer, hash manifest, second skill entrypoint, discovery exception, and tests that only exercised that machinery. Keep one documentation-only relocation/link check. Route platform recovery through the shared workflow, use invoke_menu for Finder navigation, and remove competing skill-install and legacy browser mutation-enable recipes. Preserve the original Cua license and attribution. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
What
droid-control1.1.0 carries its desktop guidance as plugin-maintained documentation, with no separate Cua skill installation, upstream commit pin, or synchronization machinery. A static relocation test verifies that local references and anchors stay inside the plugin; a deliberately broken reference fails that test. The Cua executable remains a separate dependency, and these checks do not certify live GUI behavior.Composition of
origin/master...861d49f, computed withdiff-composition.py(lines count additions plus deletions):1.0.0→1.1.0.Behavior-bearing files:
skills/desktop-control/SKILL.mdowns the plugin boundary;references/cua-driver/WORKFLOW.mdandRUNTIME.mdown shared mechanics. They are counted as documentation above. There is no production-code addition;.factory-plugin/plugin.jsononly advances the plugin version. Plugin paths below are relative toplugins/droid-control/.Why
The existing plugin duplicates platform guidance and depends on a personal upstream skill installation. The plugin should carry and maintain the instructions it needs, without treating documentation edits as upstream-integrity failures.
How
Explicit cua-only/native-input requests take precedence over browser defaults. One controller owns shared desktop interaction; ordinary tasks use observe/act/verify without mandatory recording or rendering. Platform guides refer to the shared observation rules, and Cua attribution and the MIT license remain included.
Net effect for users: local desktop guidance, with executable installation and OS permissions kept as explicit setup steps.
Change Shape
Related Issue
Closes CLI-2242.
The local guidance is adapted from Cua.
NOTICES.mdandreferences/cua-driver/LICENSE.mdretain attribution and licensing; the documents can be edited with the plugin.Reviewer Guide
Diff shape: see the composition table. The instruction prose carries behavior; it is not generated material to skip.
Three passes / read order:
skills/desktop-control/SKILL.mdandskills/droid-control/SKILL.md: method precedence, setup boundaries, and single-controller ownership.references/cua-driver/WORKFLOW.md,RUNTIME.md,MACOS.md, andWINDOWS.md: missing-image recovery, exact targets, menu invocation, and authorized foreground operations. Then check capture/verify skills and the QA command for consistent evidence handoffs.tests/test_desktop_control.py,references/README.md, andNOTICES.md: documentation closure, plugin ownership, and license preservation. The existing CI job runs the scoped test without a copied-skill discovery exception.Review depth: Standard. There is no production Python helper or plugin compatibility adapter to review.
Risk & Impact
Verification
Static behavior verified @
861d49f: the desktop entrypoint and reference directory relocate outside the checkout with their local links and anchors intact. The test copies only that documentation surface, not rendering assets or unrelated tooling.Sentinel test:
test_relocated_documentation_links_stay_inside_pluginintests/test_desktop_control.py. Replacing aRUNTIME.mdlink withMISSING.mdin a temporary copy produced the intended assertion failure. The link set is asserted nonempty.Not tested: a newly installed plugin driving live macOS/Windows/Linux applications or recording video. The test covers the inline links and simple heading anchors used here, not a general Markdown parser or runtime tool selection.
Standard validators: scoped unittest and broken-link negative control; exact CI discovery script; Ruff lint/format; worktree verification; aggregate-scope/license checks; staged
git diff --check.Changes since last review
Implementation map
Current diff:
26 files changed, +3272 / -299..github/workflows/check-skills.yml.