{"id":15900,"plugin_id":"plugin_asdk_app_6a1083cac4788191a47b657dc58c4315","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:12:17.057Z","digest":"f02e50e76fa5a072c65b013470db4f83c22e60f3f2a72bbc17af5c29d2af9475","against":null,"payload":{"name":"orgx-deviation-reporting","description":"Record a skill deviation with OrgX so it feeds tomorrow's Daily Brief. Use whenever an OrgX skill fires locally on a file edit, commit, PR, chat turn, or task output.","included_files":[],"skill_md_contents":"---\nname: orgx-deviation-reporting\ndescription: Record a skill deviation with OrgX so it feeds tomorrow's Daily Brief. Use whenever an OrgX skill fires locally on a file edit, commit, PR, chat turn, or task output.\ntools:\n  - mcp__orgx__*\n---\n\n# OrgX — skill deviation reporting\n\nEvery time an OrgX skill catches a deviation during your work, record it\nwith OrgX so the evidence shows up in tomorrow's Daily Brief and drives\nthe confidence trajectory for that skill.\n\n## When to record\n\nYou should record a deviation when:\n\n- A rule from an OrgX skill triggered on code or content you touched.\n- You accepted or rejected a skill's suggestion (pass `outcome: confirmed`\n  or `outcome: rejected`).\n- A skill surfaced a pattern in output you produced.\n\nDo **not** record the same deviation more than once per 10-minute window —\nthe server dedupes on `dedupe_key` automatically; duplicate POSTs waste\ntokens.\n\n## How to record\n\nDirect HTTP POST through the OpenClaw bridge or via `orgx.post_skill_deviation`\nMCP tool:\n\n```\nPOST /api/v1/skills/{skill_id}/deviations\nAuthorization: Bearer <OrgX API key>\nContent-Type: application/json\n\n{\n  \"evidence_kind\":      \"file_edit\" | \"commit\" | \"pr\" | \"chat_turn\" | \"task_output\",\n  \"evidence_ref\":       \"<repo>#<pr>\" | \"<path>:<line>\" | \"<commit_sha>\",\n  \"summary\":            \"<one-line description>\",\n  \"application_source\": \"plugin_codex\",\n  \"confidence\":         0.0..1.0,\n  \"outcome\":            \"pending\" | \"confirmed\" | \"rejected\" | \"ignored\",\n  \"trigger_context\":    { \"file_path\": \"...\", \"rule_matched\": \"...\" },\n  \"dedupe_key\":         \"<sha1(skill_id | evidence_kind | evidence_ref | floor(epoch/600))>\",\n  \"captured_at\":        \"2026-04-17T10:00:00Z\"\n}\n```\n\n### Computing `dedupe_key`\n\n```ts\nimport { createHash } from \"node:crypto\";\n\nconst bucket = Math.floor(Date.now() / 1000 / 600);\nconst material = [skillId, evidenceKind, evidenceRef, String(bucket)].join(\"|\");\nconst dedupe_key = createHash(\"sha1\").update(material).digest(\"hex\");\n```\n\n10-minute bucketing handles save-happy editors without losing legitimate\nre-fires beyond that window.\n\n## What happens next\n\nYour deviation lands in `skill_deviations`. The nightly rollup feeds it\ninto the Daily Brief proof strip's \"Deviations caught\" tile + updates\nthe skill's confidence sparkline. Agents whose loadout doesn't include\nthe skill may get a cross-pollination proposal surfaced.\n\n## Links\n\n- Full contract: https://github.com/hopeatina/orgx/blob/main/orgx/docs/api-contracts/daily-brief-schema.md#04\n- SDK reference implementation (Node): https://github.com/useorgx/openclaw-plugin/blob/main/src/deviations-sdk.ts\n- Daily Brief surface: https://useorgx.com/today\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}