[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RP4D8R6E9MA398VWGPWKB":3,"skill-same:01M71RP4D8R6E9MA398VWGPWKB":84},{"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":31,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":63,"commitSha":64,"skillDirectory":65,"forksCount":66,"repositoryHtmlUrl":67,"repositoryHomepageUrl":6,"ownerHtmlUrl":68,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":69,"install":70,"resources":83},"01M71RP4D8R6E9MA398VWGPWKB","head_of_data_science",null,"Head of Data Science; sign-off on modelling approach and measurement frameworks for marketing.","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\u002Fhead_of_data_science\u002FSKILL.md",[18,23,28],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000019","营销推广","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",{"categoryNo":29,"categoryName":30,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000035","市场营销",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"data science","head of data science","head","science","data","marketing","decision","context","payload","claim","get","delegation","measurement","action","matrix","float","authority","request","balanced","auth","2026-11-10 13:02:02",false,"---\nname: head_of_data_science\ndescription: Head of Data Science; sign-off on modelling approach and measurement frameworks for marketing.\nallowed-tools:\nworkflow_label: Marketing — data science\nexternal_event: head_of_data_science_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 \"head_of_data_science_decision\"\n\n    auth = authority_check(\n        role=\"head_of_data_science\",\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 head_of_data_science delegation per matrix rule \" + rule\n            + \": \" + str(category) + \" GBP \" + str(value)\n        )\n    else:\n        decision = \"escalate\"\n        reason = (\n            \"outside head_of_data_science 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# head_of_data_science\n\nYou are the **head_of_data_science** for the **Marketing — data science** 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.\n\nThresholds live in `api\u002Fshared\u002Fauthority.py`'s `AUTHORITY` table.\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: \"head_of_data_science\"`\n- `external_event: \"head_of_data_science_decision\"`\n- `context`: payload with at minimum `amount` (GBP) and `category`\n\n## How a real human resolves the same gate\n\nWhen `head_of_data_science` is NOT in `PERSONA_AUTO_CLOSE`, the gate stays open\nindefinitely.\n","# head_of_data_science\n\nYou are the **head_of_data_science** for the **Marketing — data science** 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.\n\nThresholds live in `api\u002Fshared\u002Fauthority.py`'s `AUTHORITY` table.\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: \"head_of_data_science\"`\n- `external_event: \"head_of_data_science_decision\"`\n- `context`: payload with at minimum `amount` (GBP) and `category`\n\n## How a real human resolves the same gate\n\nWhen `head_of_data_science` is NOT in `PERSONA_AUTO_CLOSE`, the gate stays open\nindefinitely.\n",{"name":5,"description":7,"personality":57,"allowed-tools":6,"external_event":60,"workflow_label":61,"decision_policy":62},{"thoroughness":58,"risk_appetite":50,"escalation_style":59},"medium","standard","head_of_data_science_decision","Marketing — data science","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 \"head_of_data_science_decision\"\n\nauth = authority_check(\n    role=\"head_of_data_science\",\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 head_of_data_science delegation per matrix rule \" + rule\n        + \": \" + str(category) + \" GBP \" + str(value)\n    )\nelse:\n    decision = \"escalate\"\n    reason = (\n        \"outside head_of_data_science delegation per matrix rule \" + rule\n        + \": \" + str(category) + \" GBP \" + str(value)\n        + \" — \" + str(auth.get(\"reason\") or \"\")\n    )\n","main","db273d7d646605c0bf0175dc9c8057b9ad2628b5","api\u002Fserver\u002Fpersonae\u002Fhead_of_data_science",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":71,"prompt":81,"zipAvailable":82},[72,75,78],{"tool":73,"command":74},"npx","npx skills add arturcrmbot\u002Fzava-control-plane --skill head_of_data_science",{"tool":76,"command":77},"bunx","bunx skills add arturcrmbot\u002Fzava-control-plane --skill head_of_data_science",{"tool":79,"command":80},"pnpm","pnpm dlx skills add arturcrmbot\u002Fzava-control-plane --skill head_of_data_science","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fapi\u002Fserver\u002Fpersonae\u002Fhead_of_data_science\u002FSKILL.md",true,[],[85,105,122,136,144,151],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":52},"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",[],[92,93,94,95,96,45,97,98,99,100,101,102,103,104],"proactive","customer","proactive customer care","customer care","gesture","bounded","status","check","booking","operations","travel","issue","itinerary",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":52},"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",[],[112,113,114,115,116,100,117,118,119,98,120,121,99,101,102],"payment","payment exception","it","retry","balance","when","release","complete","capacity","inventory",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":52},"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",[],[129,130,131,132,99,101,102,133,134,135],"hotel supplier recovery","hotel","recovery","with","move","for","headroom",{"skillNo":137,"name":138,"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":139,"categories":140,"keywords":141,"publishedAt":52},"01M71SJ4G5MPM50WZ6F66M3PNS","holiday-sales-booking","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fholiday-sales-booking\u002FSKILL.md",[],[142,100,143],"holiday sales booking","sales",{"skillNo":145,"name":146,"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":147,"categories":148,"keywords":149,"publishedAt":52},"01M71SJ2AHHWN2C4YV2RKEE947","flight-disruption-recovery","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fflight-disruption-recovery\u002FSKILL.md",[],[150,131],"flight disruption recovery",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":52},"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",[],[158,101,159,160,99,161,102,162,117,163],"destination operations","destination","risk","dispatch","at","transfer"]