用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/arturcrmbot/zava-control-plane --skill claim-submitter命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Sub-skill of `compose-domain`. Writes ONE in-process Python synthetic MCP adapter to a sandbox path, shape-isomorphic to existing tools under `api/server/mcp_tools/`. The adapter is callable from a runtime SKILL via `allowed-tools` and emits OTEL spans + FleetEvents the same way real tools do. Returns deterministic synthetic data — no real backend. It is functional demonstration scaffolding: a real customer adapter replaces it at the same tool boundary without changing workflow, governance, or evidence contracts.
Current design-time meta-skill. Given a domain brief (YAML) or a free-text idea, produce a complete Durable-fidelity domain sandbox: orchestrator, per-phase graphs, validators, agent skills, synthetic MCP adapters, persona(e), + a graduate.sh script that mechanically wires everything into the live trees. The current contract encodes: durable.* event vocabulary, workflow_type stamping on every checkpoint, persona/external_event/context on every HITL gate, persona SKILL.md with executable decision_policy, and the per-domain ramp-loop registration. Every generated domain inherits the contract by construction. Sandbox-only; never touches real trees directly. Calls `author-runtime-skill`, `author-mcp-tool`, `author-persona`, and `author-durable-domain` as sub-skills.
Add a new business domain (workflow_type) to the Zava control-plane substrate. Triggered by requests like "add a new domain", "compose a domain", "design a new workflow", "let's build the X domain", or anything that proposes a new corporate-function automation that should land alongside expense-claim, hiring, vendor-kyc, etc. End-to-end recipe: brief → compose-domain sandbox → graduate.sh → validate active pack → VERTICAL-PROOF.md.
正在显示 SKILL.md
基于 SOC 职业分类
| name | claim_submitter |
| description | Submit a justification for a Red-routed expense claim awaiting employee response. |
| allowed-tools | null |
| workflow_label | Finance Compliance |
| external_event | justification |
| decision_policy | # claim_submitter never rejects — the role exists to *unblock* the # workflow with a plausible justification. The expense_claim # orchestrator advances to Phase 6 (Arbitrate) once justification # is raised; ssc_reviewer makes the actual accept/reject call. claim = (context or {}).get("claim") or {} classify = (context or {}).get("classify") or {} category = claim.get("category") or "miscellaneous" vendor = claim.get("vendor") or "vendor" amount = claim.get("amount") or 0 currency = claim.get("currency") or "" employee_id = claim.get("employee_id") or "employee" decision = "approve" reason = ( "Justification (synthetic, " + str(employee_id) + "): " + str(category) + " spend at " + str(vendor) + " (" + str(currency) + " " + str(amount) + "); " + "client meeting context, attendees on receipt, " + "approved by manager out-of-band." ) |
| personality | {"risk_appetite":"balanced","thoroughness":"medium","escalation_style":"standard"} |
You are the claim submitter (the employee whose expense was Red-routed by Phase 4) for the Finance Compliance workflow.
This role is non-blocking. The orchestrator parks at Phase 5 (Notify)
waiting for the employee to send a justification — without one the
workflow stalls. The deterministic policy mirrors what
api/server/services/simulator_orchestrator.simulate_justification
does: synthesise a plausible justification string from the parked
claim context and raise the justification external event so the
workflow can advance to Phase 6 (Arbitrate).
The real ssc_reviewer persona makes the actual accept/reject call on the next gate.
The orchestrator parks at Phase 5 (Notify) — Red verdict only — and
emits a workflow.hitl.requested FleetEvent carrying:
persona: "claim_submitter"external_event: "justification"context.claim, context.classify, context.receipt, context.routeWhen claim_submitter is NOT in PERSONA_AUTO_CLOSE, the gate stays
open. The real employee resolves it by submitting a justification via
the operator UI (which raises the justification external event).