SuperAPI AI Directory

vmos-edge-flowsmith

General & other

View repository

Updated 10-16 09:52

About this skill

VMOS Edge YAML Flow

Produce VMOS Edge flows that are verifiable, validatable on real devices, and maintainable across devices. The current semantic baseline is engine v2.0.5; before using newly added syntax, check via GET /health for the version, and if the version does not match, report the compatibility risk first.

Workflow

  1. Define the task.
    • Create or modify: confirm the goals and action sequence; obtain the host IP and cloud device ID only when inspection or real-device execution is needed.
    • Troubleshooting: obtain the YAML, task receipts, and expected versus actual behavior.
    • Do not ask for package names, interface language, current page, or control structure that can be found from the device.
  2. Load only the needed materials. Read according to the table below; do not read through the entire directory.
  3. Form an execution specification. List the action order, loop stop strategy, configurable variables, page anchors, and dangerous actions. Obtain explicit authorization before executing dangerous actions on a real device.
  4. Collect evidence screen by screen. When a device address is available, follow device.md to obtain the structure and screenshots; re-check after navigating each screen. When no device is available, use placeholder selectors and mark # TODO: 待真机界面结构替换。
  5. Write the flow. From patterns.md choose the closest structure, and only go to syntax.md to look up the commands and fields actually used.
  6. Validate the closed loop. Run static validation; after approval, execute on a real device in the smallest batch, read each status item, fix, and repeat validation.

Engine constraints that must always be followed

  • Write strictly according to syntax.md command shape; do not guess fields based on experience with similar tools.
  • Place key success/failure assertions at the top level. Assertions must prove business outcomes; do not use boundaries already guaranteed by the loop itself or always-true expressions to silence lint warnings. repeat、runFlow、branch failures inside do not protect the parent flow. When there is no observable terminal state, keep and explain NO_TOP_ASSERT。
  • Define variables before referencing ${name} . Scheduler-side env injected values take effect per device; secrets are inject-only and must not be written into YAML.
  • Prefer stable text or structural relationships from the target interface; strip dynamic counts. Fall back to percentage coordinates only when there is no stable selector; absolute pixels are prohibited.
  • Treat times、duration、while as independent optional stop conditions; when passed together, stop as soon as either is satisfied first. If none of the three are passed, it will run indefinitely.
  • Use while: true to express an intentional infinite loop, and provide a reachable break or an explicit cancellation plan.break only exits the nearest repeat。
  • Use 2fa.outputVariable: otp to generate a variable, and reference it later as ${otp} ;2fa.code only accepts an injected Base32 TOTP secret.
  • Any repeat that operates the UI must include a random sleepin the current round to avoid repetition without intervals; also leave random intervals between consecutive clicks, inputs, or page changes. Load the deep anthropomorphic strategy only in scenarios such as browsing and account nurturing. Bulk sending, following, deleting, and publishing must be configurable and abortable.

Static validation

Execute the script; do not read it and then manually replicate the rules:

python3 <skill目录>/scripts/lint_flow.py flow.yaml

Requires Python 3 and PyYAML. Any ERROR must all be fixed; review one by one WARN. After modification, run repeatedly until zero ERROR。

Before real-device verification, lower the batch upper limit to the minimum value. Use runtime.md to submit, check taskId, view per-item status, and cancel when out of control. Real-device verification cannot be replaced by static validation.

Deliverables

  • Complete YAML;
  • Static validation results;
  • Steps that have been verified on a real device and those not verified;
  • Placeholder selectors, version boundaries, and known limitations;
  • Dangerous actions and their authorization status.

On-demand materials

Current task Read
Queries for commands, fields, selectors, conditions, variables, or default values syntax.md corresponding sections of
Select reusable process structures patterns.md corresponding patterns of
Understand silent failure, scope, failure, and skipping semantics.md
Locate existing scripts by symptom troubleshooting.md, then read the semantics or syntax sections according to the results
Obtain package names, languages, UI structures, and screenshots device.md
Design random waits, probabilistic interactions, and long-run pacing humanization.md
Submit, query, cancel, or interpret task receipts runtime.md

All reference files are directly linked from this file. Do not follow another layer of materials through a reference file.