{"id":20052,"plugin_id":"plugins_6aa24265df788191a25e7db0cdeca894","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:15:59.941Z","digest":"88fbeb5f7b03728a43c860b62e40ade675de0ac87c495b554aef2ce55f38dccc","against":null,"payload":{"name":"ansight-use-remote-app-tools","description":"Discover and call bundled or app-specific remote tools exposed by one connected Ansight session. Use for authoritative in-process framework or domain state and authorized remote operations; do not use merely to establish the host/session, implement new tools, or replace a visible UI workflow.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":324}],"skill_md_contents":"---\nname: ansight-use-remote-app-tools\ndescription: Discover and call bundled or app-specific remote tools exposed by one connected Ansight session. Use for authoritative in-process framework or domain state and authorized remote operations; do not use merely to establish the host/session, implement new tools, or replace a visible UI workflow.\n---\n\n## OpenAI plugin integration\n\nRun Ansight CLI commands using the execution tools in ChatGPT Work or Codex on the machine that owns the resident host. If this environment cannot execute commands or reach that host, explain the missing prerequisite and do not claim a live inspection succeeded. A remote workspace or cloud agent does not automatically have access to the developer’s local host. Resolve relative helper paths from this skill’s directory. When this workflow references another bundled skill, read its local SKILL.md completely before following it.\n\nUse these bundled files for the canonical skill URLs referenced below; keep public URLs when writing documentation for the user’s app:\n\n- https://www.ansight.ai/skills/ansight-install.md → [ansight-install](../ansight-install/SKILL.md)\n- https://www.ansight.ai/skills/ansight-cli-setup.md → [ansight-cli-setup](../ansight-cli-setup/SKILL.md)\n\n\n# Use Ansight Remote App Tools\n\nUse the live app's authenticated tool catalog as the source of truth. Remote tools expose framework, platform, storage, diagnostic, or app-domain state from inside the connected process; they are not inferred APIs.\n\nThis skill requires one exact connected session. Use the Ansight Operate Live App skill when the host, device, app, or session must first be started or selected.\n\n## Prerequisites And Routing\n\nRemote-tool use requires:\n\n- the Ansight SDK installed and initialized in the app's development or QA build;\n- the relevant bundled or app-specific tool packages included by that build;\n- runtime policy and local guards configured to expose the permitted maximum policy; and\n- a live SDK session connected to the resident host.\n\nIf the SDK integration is missing, follow `https://www.ansight.ai/skills/ansight-install.md`. If the CLI or resident host is not ready, follow `https://www.ansight.ai/skills/ansight-cli-setup.md`. If the app is installed but not connected, follow the Ansight Operate Live App skill.\n\nAn empty or blocked catalog does not by itself prove that installation is missing. It may reflect build gating, omitted tool packages, current app state, pairing limits, or a runtime guard. Report the observed catalog and denial state before proposing an integration change; do not enable remote tools in a protected build merely to complete an inspection.\n\n## Decide When A Remote Tool Is Appropriate\n\nPrefer a remote tool when it can answer an in-process question more authoritatively than screenshots or logs, such as current navigation state, bindings, selected domain objects, database rows, sandbox files, preferences, registered reflection roots, or an app-generated diagnostic artifact.\n\nKeep semantic UI interaction as the default when the requested behavior is a visible user flow. Do not bypass taps, typing, navigation, or observable postconditions with an opaque internal mutation merely because a write tool exists.\n\n## Discover The Current Catalog\n\nSearch the catalog immediately before choosing a tool. Start with compact,\nexecutable read-tool metadata using a few intent-bearing terms:\n\n```sh\nansight app tools <session-id> \\\n  --query \"<focused terms>\" \\\n  --policy read \\\n  --detail summary \\\n  --json\n```\n\nUse `--feature <domain>` for a broad product capability, `--category <exact>`\nor `--id-prefix <prefix>` for a known family, and `--max-results <1-50>` to\nbound direct matches. Focused searches return executable tools by default. Use\n`--include-unavailable` only when the task is to inspect denial or availability\nstate. If `isTruncated` is true or the matches remain ambiguous, refine the\nsearch instead of fetching the full catalog.\n\nAfter selecting one exact ID, fetch its current complete definition:\n\n```sh\nansight app tools <session-id> \\\n  --tool-id <exact-tool-id> \\\n  --detail full \\\n  --json\n```\n\nThis second response is the authority for the selected tool's schemas,\npolicy, executability, denial, and prerequisite IDs. Do not use an unfiltered\nfull catalog as the normal discovery step.\n\nEach entry can expose:\n\n- exact tool ID, category, name, description, and keywords;\n- `read`, `write`, or `critical` policy;\n- whether it is currently executable;\n- a `denial` object when app state, the local guard, or the paired-client maximum blocks it;\n- argument and result schemas;\n- prerequisite tool IDs;\n- catalog revision and argument encoding.\n\nCatalog availability is live state. Query it again after reconnecting, changing\napp state, or receiving a stale-availability failure. Use `--if-revision\n<revision>` only to avoid transferring an unchanged catalog; an unchanged\nresponse is not a new inspection.\n\nNever invent a tool ID, assume a bundled family is installed, or reuse a schema from another app version.\n\n## Choose The Narrowest Tool\n\n1. Start with a compact search for executable read tools.\n2. Select one exact ID, fetch its full definition, and match the returned description and schemas to the question.\n3. Follow every returned `prerequisiteToolIds` entry and copy exact returned identifiers into the dependent call.\n4. Treat tool IDs, node IDs, automation IDs, database IDs, paths, tags, surface IDs, and reflection root IDs as separate namespaces unless a schema explicitly connects them.\n5. Use a write tool only when the user requested the corresponding app mutation.\n6. Use a critical tool only with explicit authorization for that exact effect and only when the catalog and runtime guard permit it.\n\nDo not attempt to bypass a denial by changing local guards, calling a differently named tool, or using reflection as a substitute.\n\n## Recognize Bundled Families Without Assuming Them\n\nThe catalog may contain:\n\n- framework inspection such as `maui.*`, `flutter.*`, `react.*`, or `dom.*`;\n- native visual-tree and screenshot tools such as `ui.*`;\n- database or structured data tools;\n- sandbox file tools;\n- preferences or allow-listed secure-storage tools;\n- registered-root reflection tools under `reflect.*`;\n- artifact query and request tools;\n- app-specific domain tools.\n\nUse platform-specific inspection skills when a returned family has platform semantics that affect interpretation. Use a platform's `ansight-create-remote-tool-*` skill only when the user asks to implement a new tool; creation is outside this skill.\n\n## Call One Exact Tool\n\nPrefer an arguments file for nontrivial or nested schemas:\n\n```sh\nansight app call <session-id> <tool-id> --arguments-file <arguments.json> --json\n```\n\nFor a small object, inline arguments are acceptable:\n\n```sh\nansight app call <session-id> <tool-id> --arguments '<json-object>' --json\n```\n\nValidate the object against the returned argument schema. Do not add speculative fields, translate identifiers across namespaces, or reinterpret omitted required values.\n\nFor a state-changing call or visual diagnostic action, request post-call evidence when it is useful:\n\n```sh\nansight app call <session-id> <tool-id> \\\n  --arguments-file <arguments.json> \\\n  --after-tree \\\n  --after-screenshot \\\n  --after-delay-ms <0-2000> \\\n  --json\n```\n\nPost-call evidence supplements the tool result. It does not establish success unless it proves the requested postcondition.\n\n## Batch Only Already-Known Calls\n\nUse `app batch` for up to 32 ordered calls only when their exact IDs, schemas, arguments, and dependencies are already known and no intermediate reasoning is required:\n\n```sh\nansight app batch <session-id> --calls-file <calls.json> --json\n```\n\nEach item can contain `toolId`, `arguments`, `after`, and `callId`. Keep the default stop-on-failure behavior when later calls depend on earlier ones. Use `--continue-on-error` only for independent evidence reads whose remaining results are still useful after one failure.\n\nDo not batch exploratory mutations, critical operations, or calls that require inspecting an intermediate result before choosing the next arguments.\n\n## Mutation And Verification\n\nFor an authorized write or critical operation:\n\n1. Capture a read-only baseline from the same authoritative surface.\n2. State the exact target and expected effect.\n3. Execute the smallest call once.\n4. Re-run the baseline read or another independent verification.\n5. Verify the visible UI as well when the effect is user-facing.\n6. Report rollback or cleanup when the operation created temporary state.\n\nFor files, preferences, secure storage, databases, and reflection, remain inside the roots, keys, schemas, and members explicitly published by the app. Do not expose secrets or broaden access to complete the task.\n\n## Handle Failure As Evidence\n\n- A denial means the tool is unavailable under the current app state or guard. Report its code and reason.\n- A schema error means the call was malformed; correct it only from the returned schema.\n- A prerequisite failure means the dependent call must not proceed.\n- A disconnected session requires fresh session and catalog discovery before retrying.\n- A successful tool response proves only the operation described by its result schema; verify broader product outcomes separately.\n\n## Report The Tool Trail\n\nReport the selected session, catalog revision, exact tool IDs and policies, prerequisites followed, arguments at a safe summary level, material result fields, mutations performed, before-and-after evidence, verification outcome, denials, and any fallback outside the remote-tool surface.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}