[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RGGWS6NT3FPVTNX04RFMQ":3,"skill-same:01M71RGGWS6NT3FPVTNX04RFMQ":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},"01M71RGGWS6NT3FPVTNX04RFMQ","contract_finance_bp",null,"Approve or reject a contract renewal based on the proposed cost change percent — auto-approve at or below 10%.","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\u002Fcontract_finance_bp\u002FSKILL.md",[18,23,28],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",{"categoryNo":29,"categoryName":30,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000040","财务",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"contract finance bp","finance","contract","orchestrator","human","top","audit trail","change","float","phase","balanced","either","auto","authority","persona","usd","decision","auth","get","validator","2026-11-10 13:02:02",false,"---\nname: contract_finance_bp\ndescription: Approve or reject a contract renewal based on the proposed cost change percent — auto-approve at or below 10%.\nallowed-tools:\nworkflow_label: Contract renewal\nexternal_event: finance_signoff_decision\ndecision_policy: |\n    rt = (context or {}).get(\"renewal_terms_drafter\") or {}\n    pct = rt.get(\"cost_change_pct\")\n    # The orchestrator may pass either the raw skill payload (proposed_value\n    # at top level) or the validator's wrapper (payload nested under\n    # 'renewal_terms_drafter' or 'payload'). Read whichever is present.\n    inner = rt.get(\"renewal_terms_drafter\") or rt.get(\"payload\") or rt\n    proposed_value = inner.get(\"proposed_annual_value_usd\") or rt.get(\"proposed_annual_value_usd\")\n    try:\n        pct_f = float(pct) if pct is not None else None\n    except (TypeError, ValueError):\n        pct_f = None\n    try:\n        value_f = float(proposed_value) if proposed_value is not None else None\n    except (TypeError, ValueError):\n        value_f = None\n\n    # Cross-reference the delegated-authority matrix so the audit trail\n    # carries a governing_rule_id alongside the decision. The behavioural\n    # rule (10% auto-approve, >25% escalate) remains the persona's\n    # judgement; the matrix lookup confirms whether contract_finance_bp\n    # is authorised for the value band.\n    category = \"flat_renewal\"\n    if pct_f is not None and abs(pct_f) > 25.0:\n        category = \"price_jump\"\n    auth = authority_check(\n        role=\"contract_finance_bp\",\n        action=\"contract_renewal_signoff\",\n        value=value_f,\n        category=category,\n    )\n\n    if pct_f is None:\n        decision = \"reject\"\n        reason = \"missing cost_change_pct\"\n    elif pct_f > 25.0:\n        # Phase 6 escalate: large price jumps need a human, not auto-reject.\n        decision = \"escalate\"\n        reason = (\n            \"price jump \" + str(pct_f) + \"% > 25% (matrix rule \"\n            + str(auth.get(\"governing_rule_id\") or \"n\u002Fa\")\n            + \") — requires human signoff\"\n        )\n    elif pct_f > 10.0:\n        decision = \"reject\"\n        reason = (\n            \"cost change \" + str(pct_f) + \"% exceeds 10% threshold (matrix rule \"\n            + str(auth.get(\"governing_rule_id\") or \"n\u002Fa\") + \")\"\n        )\n    else:\n        decision = \"approve\"\n        reason = (\n            \"cost change \" + str(pct_f) + \"% within 10% threshold (matrix rule \"\n            + str(auth.get(\"governing_rule_id\") or \"n\u002Fa\") + \")\"\n        )\npersonality:\n  risk_appetite: balanced\n  thoroughness: medium\n  escalation_style: standard\n---\n\n# contract_finance_bp\n\nYou are the **contract_finance_bp** for the **Contract renewal** workflow.\n\n## Decision policy\n\nApprove when `renewal_terms_drafter.cost_change_pct` is at or below 10.\nOtherwise reject naming the proposed change.\n\nThe same rule lives, in executable form, in the YAML frontmatter\n`decision_policy` block. The persona responder reads the frontmatter\nand applies that code against the parked workflow context whenever\nthis persona is in the `PERSONA_AUTO_CLOSE` env-var allow-list.\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: \"contract_finance_bp\"`\n- `external_event: \"finance_signoff_decision\"`\n- `context.renewal_terms_drafter`: the agent verdict including\n  `verdict`, `proposed_terms`, `cost_change_pct`,\n  `proposed_annual_value_usd`, `current_annual_value_usd`,\n  `cited_clauses`, `amendment_delta`\n- `context.market_benchmarker`: the agent verdict including\n  `verdict`, `comparable_contracts`, `market_quotes`,\n  `amendment_summary`, `benchmark_band_low_usd`,\n  `benchmark_band_high_usd`\n\n## How a real human resolves the same gate\n\nWhen `contract_finance_bp` is NOT in `PERSONA_AUTO_CLOSE`, the gate\nstays open indefinitely. The real contract_finance_bp resolves it via\nwhatever UI surface the domain provides (or by directly POSTing to\n`\u002Finternal\u002Fdurable-event` with kind `finance_signoff_decision`).\n","# contract_finance_bp\n\nYou are the **contract_finance_bp** for the **Contract renewal** workflow.\n\n## Decision policy\n\nApprove when `renewal_terms_drafter.cost_change_pct` is at or below 10.\nOtherwise reject naming the proposed change.\n\nThe same rule lives, in executable form, in the YAML frontmatter\n`decision_policy` block. The persona responder reads the frontmatter\nand applies that code against the parked workflow context whenever\nthis persona is in the `PERSONA_AUTO_CLOSE` env-var allow-list.\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: \"contract_finance_bp\"`\n- `external_event: \"finance_signoff_decision\"`\n- `context.renewal_terms_drafter`: the agent verdict including\n  `verdict`, `proposed_terms`, `cost_change_pct`,\n  `proposed_annual_value_usd`, `current_annual_value_usd`,\n  `cited_clauses`, `amendment_delta`\n- `context.market_benchmarker`: the agent verdict including\n  `verdict`, `comparable_contracts`, `market_quotes`,\n  `amendment_summary`, `benchmark_band_low_usd`,\n  `benchmark_band_high_usd`\n\n## How a real human resolves the same gate\n\nWhen `contract_finance_bp` is NOT in `PERSONA_AUTO_CLOSE`, the gate\nstays open indefinitely. The real contract_finance_bp resolves it via\nwhatever UI surface the domain provides (or by directly POSTing to\n`\u002Finternal\u002Fdurable-event` with kind `finance_signoff_decision`).\n",{"name":5,"description":7,"personality":57,"allowed-tools":6,"external_event":60,"workflow_label":61,"decision_policy":62},{"thoroughness":58,"risk_appetite":42,"escalation_style":59},"medium","standard","finance_signoff_decision","Contract renewal","rt = (context or {}).get(\"renewal_terms_drafter\") or {}\npct = rt.get(\"cost_change_pct\")\n# The orchestrator may pass either the raw skill payload (proposed_value\n# at top level) or the validator's wrapper (payload nested under\n# 'renewal_terms_drafter' or 'payload'). Read whichever is present.\ninner = rt.get(\"renewal_terms_drafter\") or rt.get(\"payload\") or rt\nproposed_value = inner.get(\"proposed_annual_value_usd\") or rt.get(\"proposed_annual_value_usd\")\ntry:\n    pct_f = float(pct) if pct is not None else None\nexcept (TypeError, ValueError):\n    pct_f = None\ntry:\n    value_f = float(proposed_value) if proposed_value is not None else None\nexcept (TypeError, ValueError):\n    value_f = None\n\n# Cross-reference the delegated-authority matrix so the audit trail\n# carries a governing_rule_id alongside the decision. The behavioural\n# rule (10% auto-approve, >25% escalate) remains the persona's\n# judgement; the matrix lookup confirms whether contract_finance_bp\n# is authorised for the value band.\ncategory = \"flat_renewal\"\nif pct_f is not None and abs(pct_f) > 25.0:\n    category = \"price_jump\"\nauth = authority_check(\n    role=\"contract_finance_bp\",\n    action=\"contract_renewal_signoff\",\n    value=value_f,\n    category=category,\n)\n\nif pct_f is None:\n    decision = \"reject\"\n    reason = \"missing cost_change_pct\"\nelif pct_f > 25.0:\n    # Phase 6 escalate: large price jumps need a human, not auto-reject.\n    decision = \"escalate\"\n    reason = (\n        \"price jump \" + str(pct_f) + \"% > 25% (matrix rule \"\n        + str(auth.get(\"governing_rule_id\") or \"n\u002Fa\")\n        + \") — requires human signoff\"\n    )\nelif pct_f > 10.0:\n    decision = \"reject\"\n    reason = (\n        \"cost change \" + str(pct_f) + \"% exceeds 10% threshold (matrix rule \"\n        + str(auth.get(\"governing_rule_id\") or \"n\u002Fa\") + \")\"\n    )\nelse:\n    decision = \"approve\"\n    reason = (\n        \"cost change \" + str(pct_f) + \"% within 10% threshold (matrix rule \"\n        + str(auth.get(\"governing_rule_id\") or \"n\u002Fa\") + \")\"\n    )\n","main","db273d7d646605c0bf0175dc9c8057b9ad2628b5","api\u002Fserver\u002Fpersonae\u002Fcontract_finance_bp",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 contract_finance_bp",{"tool":76,"command":77},"bunx","bunx skills add arturcrmbot\u002Fzava-control-plane --skill contract_finance_bp",{"tool":79,"command":80},"pnpm","pnpm dlx skills add arturcrmbot\u002Fzava-control-plane --skill contract_finance_bp","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fapi\u002Fserver\u002Fpersonae\u002Fcontract_finance_bp\u002FSKILL.md",true,[],[85,106,123,137,145,152],{"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,97,98,99,100,101,102,103,104,105],"proactive","customer","proactive customer care","customer care","gesture","action","bounded","status","check","booking","operations","travel","issue","itinerary",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"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",[],[113,114,115,116,117,101,118,119,120,99,121,122,100,102,103],"payment","payment exception","it","retry","balance","when","release","complete","capacity","inventory",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"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",[],[130,131,132,133,100,102,103,134,135,136],"hotel supplier recovery","hotel","recovery","with","move","for","headroom",{"skillNo":138,"name":139,"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":140,"categories":141,"keywords":142,"publishedAt":52},"01M71SJ4G5MPM50WZ6F66M3PNS","holiday-sales-booking","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fholiday-sales-booking\u002FSKILL.md",[],[143,101,144],"holiday sales booking","sales",{"skillNo":146,"name":147,"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":148,"categories":149,"keywords":150,"publishedAt":52},"01M71SJ2AHHWN2C4YV2RKEE947","flight-disruption-recovery","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fflight-disruption-recovery\u002FSKILL.md",[],[151,132],"flight disruption recovery",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"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",[],[159,102,160,161,100,162,103,163,118,164],"destination operations","destination","risk","dispatch","at","transfer"]