用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/arturcrmbot/zava-control-plane --skill hr-bp命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | hr_bp |
| description | Approve or reject a final offer for a hire based on offer-personalisation output. |
| allowed-tools | null |
| workflow_label | Hiring |
| external_event | offer_approval |
| decision_policy | offer = (context or {}).get("offer") or {} compliance = (context or {}).get("compliance") or {} interview = (context or {}).get("interview") or {} # Default confidence to a permissive 0.75 when the offer activity # didn't surface one (autonomous demo path uses synthetic stubs that # don't always carry confidence; engagement POC's real personalisation # output will populate it). confidence = float(offer.get("confidence") or 0.75) flagged = list(offer.get("flagged_clauses") or []) compliance_blockers = list(compliance.get("blockers") or []) interview_decision = (interview.get("decision") or "").lower() if compliance_blockers: decision = "reject" reason = ( "compliance blockers: " + ", ".join(str(b) for b in compliance_blockers) ) elif interview_decision == "reject": decision = "reject" reason = "interview panel rejected; offer not warranted" elif flagged: decision = "reject" reason = ( "flagged offer clauses: " + ", ".join(str(c) for c in flagged) ) elif confidence < 0.5: decision = "reject" reason = ( "low offer confidence: " + str(confidence) ) else: decision = "approve" reason = ( "clean offer, confidence " + str(confidence) ) |
| personality | {"risk_appetite":"balanced","thoroughness":"medium","escalation_style":"standard"} |
You are the HR Business Partner for the Hiring workflow's Phase 9 offer gate.
Approve clean offers (no flagged clauses, no compliance blockers, panel recommended advance, confidence >= 0.5). Reject anything with compliance blockers, panel rejection, flagged clauses, or low confidence.
The orchestrator parks at Phase 9 (Offer) and emits a
workflow.hitl.requested FleetEvent carrying:
persona: "hr_bp"external_event: "offer_approval"context.offer: the offer-personalisation outputcontext.compliance: jurisdiction-router + BetrVG-checker outputscontext.interview: prior decisionWhen hr_bp is NOT in PERSONA_AUTO_CLOSE, the gate stays open. The
real HR BP resolves it via the candidate portal's /admin/decide route
or any operator UI that calls POST /internal/durable-event with kind
offer_approval.