feat: add droid-control plugin for terminal, browser, and computer automation#18
Open
factory-ain3sh wants to merge 5 commits intomasterfrom
Open
feat: add droid-control plugin for terminal, browser, and computer automation#18factory-ain3sh wants to merge 5 commits intomasterfrom
factory-ain3sh wants to merge 5 commits intomasterfrom
Conversation
Publish the droid-control plugin in the public marketplace so it can be installed directly from factory-plugins. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
… halftone texture locally, trim internal references - Replace hard keyword gate for effects with three-tier model: utilitarian (default for demos), full (default for showcase), none (explicit opt-out only) - Defer specific effect selection to compose stage where recordings exist - Bundle bg-halftone-rotor.jpg locally instead of fetching from vercel at render time - Remove monorepo path references (apps/cli/, packages/logging) from skill docs - Update verify atom to check effects against committed tier Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
- README: plugin overview, command examples, quick start, prerequisites - ARCHITECTURE: design rationale -- UX for droids, waterfall routing, task delegation, orthogonal routing, hybrid handoffs, platform isolation - NOTICES: third-party dependency attribution and license terms Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
6add9da to
e539bcf
Compare
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
98c1e8e to
aa5e177
Compare
- agg is not on crates.io; use cargo install --git from asciinema/agg - Replace brittle glob path for Remotion install with droid plugin list Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
0574c07 to
bb507c4
Compare
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
Adds
droid-controlas a Factory plugin that gives droids the ability to automate terminal TUIs, web pages, and Electron apps. Covers three workflows: recording demos, verifying behavior claims, and running QA test flows.The plugin uses a composition architecture with three layers:
skills/droid-control/) -- thin router with 3 orthogonal routing dimensions (target, stage, artifact) that tells the droid which atoms to load. ~93 lines.platforms/subdirs so droids only load the OS they are working on./demo,/verify,/qa-test) -- thin intent declarations that parse user arguments into commitments, then delegate to stage atoms via hybrid handoffs (structured params for mechanical decisions, natural language for creative ones).Drivers
Concurrency
Multiple droids can film demos, run QA, or verify claims simultaneously on the same machine. Ground rule 5 requires every workflow to generate a run-scoped ID (
RUN_ID) used as a prefix for all tctl session names and a scoped temp directory (RUN_DIR) for all output files. This prevents session name collisions in the shared/tmp/tctl-sessions/namespace and output path conflicts.Video post-processing (Remotion)
The compose/showcase pipeline uses Remotion (React-based video renderer) for all video compositing. The Remotion project lives at
plugins/droid-control/remotion/(29 source files, 22 components).Automatic cinematic layers (rendered without configuration):
Effect-driven layers (via props):
6 presets: factory, factory-hero, hero, macos, presentation, minimal. Each configures window chrome, spacing, background style, and palette. Factory presets produce rich cinematic warmth; Catppuccin presets stay subtle and cool.
Helper script (render-showcase.sh): auto-stages clips into Remotion public/, detects clip duration via ffprobe, renders, and cleans up. Eliminates the most common error class for droids.
Design
See ARCHITECTURE.md for the rationale behind the composition model, waterfall routing, task delegation, hybrid handoffs, and platform isolation.
Plugin structure
Potential Risk & Impact
npm installinplugins/droid-control/remotion/before first use.node_modules/is gitignored.How Has This Been Tested?
npx tsc --noEmitwith zero errors (29 source files)remotion stillremotion stillat mid-sweep frame.factory-plugin/plugin.json)Trying it out
Or use the
/pluginsUI: Browse tab, select droid-control, install.