[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RM8RZ4BC9SDNXFXXDAD8P":3,"skill-same:01M71RM8RZ4BC9SDNXFXXDAD8P":70},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":55,"install":56,"resources":69},"01M71RM8RZ4BC9SDNXFXXDAD8P","ecd",null,"Executive Creative Director; senior creative sign-off; escalates strategic creative decisions to the creative director.","arturcrmbot\u002Fzava-control-plane","arturcrmbot","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F156445312?v=4","01M71R9QBEJ4ZSX5AXBGBYH82C","Artur Zielinski","01M71R9QCJSV19ESCAF5773TWH",1,"MIT","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fapi\u002Fserver\u002Fpersonae\u002Fecd\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"float","contract","value","context","marketing","action","matrix","payload","request","senior","balanced","authority","claim","delegation","decision","creative director","auth","get","director","2026-11-10 13:02:02",false,"---\nname: ecd\ndescription: Executive Creative Director; senior creative sign-off; escalates strategic creative decisions to the creative director.\nallowed-tools:\nworkflow_label: Marketing — creative\nexternal_event: ecd_decision\ndecision_policy: |\n    payload = (context or {}).get(\"invoice\") or (context or {}).get(\"claim\") or (context or {}).get(\"contract\") or (context or {}).get(\"request\") or {}\n    value_raw = payload.get(\"amount_gbp\") or payload.get(\"amount\") or 0\n    try:\n        value = float(value_raw) if value_raw is not None else None\n    except (TypeError, ValueError):\n        value = None\n    category = (payload.get(\"category\") or \"standard\")\n    action = (context or {}).get(\"action\") or \"ecd_decision\"\n\n    auth = authority_check(\n        role=\"ecd\",\n        action=action,\n        value=value,\n        category=category,\n    )\n\n    rule = str(auth.get(\"governing_rule_id\") or \"n\u002Fa\")\n    if auth.get(\"allowed\"):\n        decision = \"approve\"\n        reason = (\n            \"within ecd delegation per matrix rule \" + rule\n            + \": \" + str(category) + \" GBP \" + str(value)\n        )\n    else:\n        decision = \"escalate\"\n        reason = (\n            \"outside ecd delegation per matrix rule \" + rule\n            + \": \" + str(category) + \" GBP \" + str(value)\n            + \" — \" + str(auth.get(\"reason\") or \"\")\n        )\npersonality:\n  risk_appetite: balanced\n  thoroughness: medium\n  escalation_style: standard\n---\n\n# ecd\n\nYou are the **ecd** for the **Marketing — creative** workflow.\n\n## Decision policy\n\nApprove when the delegated-authority matrix confirms this role is the\nmatched approver for the action+value+category triple. Escalate when\nthe matrix routes the decision to the parent role in the persona\nhierarchy. The escalation auto-cascade in `persona_responder` re-runs\nthe decision as the parent role automatically.\n\nThresholds live in `api\u002Fshared\u002Fauthority.py`'s `AUTHORITY` table — not\nin this file — and are resolved via the `authority_check` sandbox\nbuiltin.\n\n## When this fires\n\nThe orchestrator parks at the matching HITL gate and emits a\n`workflow.hitl.requested` FleetEvent carrying:\n\n- `persona: \"ecd\"`\n- `external_event: \"ecd_decision\"`\n- `context`: payload with at minimum `amount` (GBP) and `category`\n\n## How a real human resolves the same gate\n\nWhen `ecd` is NOT in `PERSONA_AUTO_CLOSE`, the gate stays open\nindefinitely.\n","# ecd\n\nYou are the **ecd** for the **Marketing — creative** workflow.\n\n## Decision policy\n\nApprove when the delegated-authority matrix confirms this role is the\nmatched approver for the action+value+category triple. Escalate when\nthe matrix routes the decision to the parent role in the persona\nhierarchy. The escalation auto-cascade in `persona_responder` re-runs\nthe decision as the parent role automatically.\n\nThresholds live in `api\u002Fshared\u002Fauthority.py`'s `AUTHORITY` table — not\nin this file — and are resolved via the `authority_check` sandbox\nbuiltin.\n\n## When this fires\n\nThe orchestrator parks at the matching HITL gate and emits a\n`workflow.hitl.requested` FleetEvent carrying:\n\n- `persona: \"ecd\"`\n- `external_event: \"ecd_decision\"`\n- `context`: payload with at minimum `amount` (GBP) and `category`\n\n## How a real human resolves the same gate\n\nWhen `ecd` is NOT in `PERSONA_AUTO_CLOSE`, the gate stays open\nindefinitely.\n",{"name":5,"description":7,"personality":43,"allowed-tools":6,"external_event":46,"workflow_label":47,"decision_policy":48},{"thoroughness":44,"risk_appetite":29,"escalation_style":45},"medium","standard","ecd_decision","Marketing — creative","payload = (context or {}).get(\"invoice\") or (context or {}).get(\"claim\") or (context or {}).get(\"contract\") or (context or {}).get(\"request\") or {}\nvalue_raw = payload.get(\"amount_gbp\") or payload.get(\"amount\") or 0\ntry:\n    value = float(value_raw) if value_raw is not None else None\nexcept (TypeError, ValueError):\n    value = None\ncategory = (payload.get(\"category\") or \"standard\")\naction = (context or {}).get(\"action\") or \"ecd_decision\"\n\nauth = authority_check(\n    role=\"ecd\",\n    action=action,\n    value=value,\n    category=category,\n)\n\nrule = str(auth.get(\"governing_rule_id\") or \"n\u002Fa\")\nif auth.get(\"allowed\"):\n    decision = \"approve\"\n    reason = (\n        \"within ecd delegation per matrix rule \" + rule\n        + \": \" + str(category) + \" GBP \" + str(value)\n    )\nelse:\n    decision = \"escalate\"\n    reason = (\n        \"outside ecd delegation per matrix rule \" + rule\n        + \": \" + str(category) + \" GBP \" + str(value)\n        + \" — \" + str(auth.get(\"reason\") or \"\")\n    )\n","main","db273d7d646605c0bf0175dc9c8057b9ad2628b5","api\u002Fserver\u002Fpersonae\u002Fecd",2,"https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane","https:\u002F\u002Fgithub.com\u002Farturcrmbot","2026-09-28 17:47:06",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add arturcrmbot\u002Fzava-control-plane --skill ecd",{"tool":62,"command":63},"bunx","bunx skills add arturcrmbot\u002Fzava-control-plane --skill ecd",{"tool":65,"command":66},"pnpm","pnpm dlx skills add arturcrmbot\u002Fzava-control-plane --skill ecd","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fapi\u002Fserver\u002Fpersonae\u002Fecd\u002FSKILL.md",true,[],[71,91,108,122,130,137],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":38},"01M71SJECD4KXSSJV1B0HSY4T4","proactive-customer-care","Proactively notifies and, where warranted, extends a small bounded goodwill gesture to a customer whose itinerary materially changed.","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fproactive-customer-care\u002FSKILL.md",[],[78,79,80,81,82,24,83,84,85,86,87,88,89,90],"proactive","customer","proactive customer care","customer care","gesture","bounded","status","check","booking","operations","travel","issue","itinerary",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":38},"01M71SJ9VHGNNTB6452H1KRZD6","payment-exception","Resolves a failed balance payment by retrying it to complete the booking, or releasing the booking's inventory when retry is not viable.","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fpayment-exception\u002FSKILL.md",[],[98,99,100,101,102,86,103,104,105,84,106,107,85,87,88],"payment","payment exception","it","retry","balance","when","release","complete","capacity","inventory",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":38},"01M71SJ6S6XREB0J6CCVCSFZ9E","hotel-supplier-recovery","Restores accommodation for a shortfall-hit hotel allotment by moving contracted rooms from a donor allotment with headroom, resolving the reported supplier shortfall.","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fhotel-supplier-recovery\u002FSKILL.md",[],[115,116,117,118,85,87,88,119,120,121],"hotel supplier recovery","hotel","recovery","with","move","for","headroom",{"skillNo":123,"name":124,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":38},"01M71SJ4G5MPM50WZ6F66M3PNS","holiday-sales-booking","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fholiday-sales-booking\u002FSKILL.md",[],[128,86,129],"holiday sales booking","sales",{"skillNo":131,"name":132,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":38},"01M71SJ2AHHWN2C4YV2RKEE947","flight-disruption-recovery","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fflight-disruption-recovery\u002FSKILL.md",[],[136,117],"flight disruption recovery",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":38},"01M71SHYPK8HNQ80C9XAWSER53","destination-operations","Dispatches a replacement resort transfer when an arrival is at risk, rebinding any travellers on the at-risk transfer to the replacement.","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fdestination-operations\u002FSKILL.md",[],[144,87,145,146,85,147,88,148,103,149],"destination operations","destination","risk","dispatch","at","transfer"]