← AnsightCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Ansight
Snapshot Sep 30, 2026 · 23:15 UTC · version 0.1.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "ansight-create-remote-tool-cordova",
"description": "Use this skill when implementing a custom Ansight remote tool for a Cordova-family Capacitor app. Create a narrow JavaScript registerTool handler with a stable id, explicit read/write/critical policy, structured results, development-only registration, runtime guard access, and CLI verification.",
"included_files": [],
"skill_md_contents": "---\nname: ansight-create-remote-tool-cordova\ndescription: Use this skill when implementing a custom Ansight remote tool for a Cordova-family Capacitor app. Create a narrow JavaScript registerTool handler with a stable id, explicit read/write/critical policy, structured results, development-only registration, runtime guard access, and CLI verification.\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\n\n# Ansight Cordova / Capacitor Remote Tool Skill\n\nUse this skill to expose app-specific JavaScript state that existing DOM, native, artifact, and reflection tools do not answer precisely.\n\n## Workflow\n\n1. Define a narrow question or action and choose a stable namespaced id.\n2. Prefer `read`; use `write` for ordinary mutation and `critical` for destructive, secret-bearing, or arbitrary code-invoking operations.\n3. Register after bridge initialization:\n\n```ts\nconst registration = Ansight.registerTool(\n {\n id: \"app.get_sync_state\",\n name: \"Get sync state\",\n policy: \"read\",\n },\n async () => ({\n success: true,\n result: { state: \"idle\" },\n }),\n);\n\nawait registration.ready;\n```\n\n4. Keep registration inside the app's explicit development guard and use the least-permissive tool access.\n5. Avoid secrets, full stores, arbitrary JavaScript evaluation, unbounded DOM scraping, and broad method invocation.\n6. Test success, invalid inputs, failures, unregistration, denied guard access, and discovery/invocation through `ansight app tools` and `ansight app call`.\n\nReport the tool id, policy, exposed data or mutation, guard, registration location, and verification.\n"
}SHA-256: 67b462b9d94a3c917a55bec566355df3a9b7c6a5ff37b7d1c0254f3069245381