Human Resources pack
Human Resources reference pack, employee directory, leave balances and requests, payroll summary, on fictitious data with a simulated HRIS.
Reference
| Field | Value |
|---|---|
| Name | hr |
| Version | 1.0.0 |
| Licence | MIT |
| Type | Reference pack |
format | pack |
domain | hr |
| Category | hr |
namespace | enterprise-ai-packs |
publisher | Enterprise AI reference packs |
owner | enterprise-ai-packs |
compatibility.platform | >=1.0.0 <2.0.0 |
compatibility.sdk | >=1.0.0 <2.0.0 |
compatibility.runtimes | navin |
dependencies | None |
| Source | packs/hr/plugin.yaml |
| Documentation | packs/hr/docs/en/README.md, packs/hr/docs/fr/README.md |
Capabilities
| Kind | Name |
|---|---|
tool | hr-employee-lookup |
tool | hr-leave-balance |
tool | hr-leave-request |
tool | hr-payroll-summary |
connector | hr-hris |
policy | hr |
Requested permissions
The administrator grants a subset at install time; only the granted scopes are enforced.
| Scope | Sensitive | Classification | Reason |
|---|---|---|---|
hr.employees.read | No | confidential | Look up an employee in the directory (masked contact data). |
hr.leave.read | No | confidential | Read leave balances and the leave policy. |
hr.leave.write | Yes | confidential | Submit a leave request on behalf of the employee after a human approval. |
hr.payroll.read | Yes | restricted | Summarize the payslip of the requesting employee. |
Data protection
| Field | Value |
|---|---|
classification_max | restricted |
pii | true |
residency | eu-west-1 |
retention_days | 30 |
dlp | mask |
fictitious_data | true |
piiDetectionRequired | true |
maskingPolicy | mask |
externalExportDefault | deny |
Approvals
Required for: install, upgrade, sensitivePermissions, production, externalExport, resume.
| Gate | Quorum | Roles |
|---|---|---|
install | 1 | tenant_admin, security_officer |
sensitive | 2 | tenant_admin, security_officer |
production | 2 | tenant_admin, security_officer |
Security and test flags
| Field | Value |
|---|---|
security.signedArtifactRequired | true |
security.sandboxRequired | true |
security.dynamicAuthorization | true |
security.auditRequired | true |
testFlags.sdkConformance | true |
testFlags.authorization | true |
testFlags.security | true |
Configuration
Properties of spec.configSchema, set by the administrator at install time:
| Name | Type | Constraints |
|---|---|---|
model_id | string | {"minLength": 3} |
mcp_servers | object | {"additionalProperties": {"additionalProperties": false, "properties": {"url": {"pattern": "^https?://", "type": "string"}}, "required": ["url"], "type": "object"}} |
Components
| Kind | Name | Version | Description | Details | Path |
|---|---|---|---|---|---|
| Agent | hr-assistant | 1.0.0 | Answers employees on the directory, leave balances and policy, submits leave requests after approval, summarizes payslips. | risk_level: limited, autonomy.level: supervised, tools tool:hr-employee-lookup, tool:hr-leave-balance, tool:hr-leave-request, tool:hr-payroll-summary | packs/hr/agents/hr-assistant.yaml |
| Subagent | hr-policy-reviewer | 1.0.0 | Checks a prepared leave request against the leave policy and the balance before the human approval. | risk_level: minimal, autonomy.level: assisted, tools tool:hr-leave-balance | packs/hr/subagents/hr-policy-reviewer.yaml |
| Prompt | hr-leave-answer | - | Answer of the HR assistant on a leave balance. | variables employee_id, remaining, kind, language | packs/hr/prompts/hr-leave-answer.yaml |
| Prompt | hr-payslip-summary | - | Payslip summary for the requesting employee. | variables employee_id, period, gross, net, language | packs/hr/prompts/hr-payslip-summary.yaml |
| MCP server | hr-mcp | - | MCP server of the HR pack (official MCP Python SDK, MIT licence). | transport: streamable_http, tools hr_employee_lookup, hr_leave_balance, hr_leave_request, hr_payroll_summary | packs/hr/mcp/servers/hr-mcp.yaml |
| MCP tool | hr-employee-lookup | 1.0.0 | Directory entry of a fictitious employee, contact data masked, through the HR MCP server. | action: read, scopes hr.employees.read, risk_level: limited, requires_approval: false | packs/hr/mcp/tools/hr-employee-lookup.yaml |
| MCP tool | hr-leave-balance | 1.0.0 | Remaining leave days of a fictitious employee through the HR MCP server. | action: read, scopes hr.leave.read, risk_level: limited, requires_approval: false | packs/hr/mcp/tools/hr-leave-balance.yaml |
| MCP tool | hr-leave-request | 1.0.0 | Submit a leave request, idempotent per key, after a human approval. | action: write, scopes hr.leave.write, risk_level: high, requires_approval: true | packs/hr/mcp/tools/hr-leave-request.yaml |
| MCP tool | hr-payroll-summary | 1.0.0 | Payslip summary of the requesting employee (no bank details) through the HR MCP server. | action: read, scopes hr.payroll.read, risk_level: high, requires_approval: false | packs/hr/mcp/tools/hr-payroll-summary.yaml |
| Connector | hr-hris | 1.0.0 | HRIS connector of the HR pack. Simulated on fictitious employees until the tenant configures it. | system: hris, auth.type: api_key, scopes hr.employees.read, hr.leave.read, hr.leave.write, hr.payroll.read | packs/hr/connectors/hr-hris.yaml |
| Workflow | hr-leave-request | - | Leave request with a policy review and a human approval. | steps balance, review, approval, submit, on_failure: stop | packs/hr/workflows/hr-leave-request.yaml |
| Knowledge base | hr-knowledge | - | Knowledge base of the HR pack (fictitious leave policy). | classification: internal | packs/hr/rag/config.yaml |
| Skill | hr-leave-policy | 1.0.0 | Applies the leave policy when answering on balances or preparing a leave request. | scopes hr.leave.read, data_classification_max: confidential | packs/hr/skills/hr-leave-policy/SKILL.md |
| Skill | hr-payroll-summary | 1.0.0 | Summarizes the payslip of the requesting employee, never anyone else's. | scopes hr.payroll.read, data_classification_max: restricted | packs/hr/skills/hr-payroll-summary/SKILL.md |
Evaluations and tests
| Name | Type | Path | Threshold |
|---|---|---|---|
hr-answers | promptfoo | evaluations/promptfoo.yaml | 1.0 |
hr-retrieval | ragas | evaluations/ragas.jsonl | 0.8 |
| Kind | Path |
|---|---|
unit | tests/unit |
integration | tests/integration |
authz | tests/authz |
security | tests/security |
opa | policies/opa |
Files
| Kind | Path |
|---|---|
| Rules | packs/hr/rules/hr-rules.md |
| Policies | packs/hr/policies/opa/hr.rego, packs/hr/policies/opa/hr_test.rego, packs/hr/policies/openfga/model.fga, packs/hr/policies/openfga/tests.fga.yaml |
| Observability | packs/hr/observability/alerts/hr.yaml |
| Knowledge base documents | packs/hr/rag/documents/leave-policy.md |
Install it
Validate, build, sign and publish the pack, then install it from the Marketplace: the preflight checks the capabilities and the configuration before the installation.
enterprise-ai plugin validate packs/hr
enterprise-ai plugin build packs/hr --out /tmp/hr-dist
COSIGN_PASSWORD=... enterprise-ai plugin sign packs/hr --out /tmp/hr-dist --key cosign.key --signer <publisher>
enterprise-ai plugin publish packs/hr --out /tmp/hr-dist --key cosign.key \
--oci <registry>/packs/hr:1.0.0
cosign.key: signing key of your organization. <publisher>: publisher name registered in the Marketplace. <registry>: OCI registry of the Marketplace. Then call POST /v1/marketplace/preflight and POST /v1/marketplace/installations, see the Marketplace guide.