Install
1
Install the plugin$
npx claudepluginhub diegouis/provectus-marketplace --plugin proagent-hrWant just this hook?
Then install: npx claudepluginhub u/[userId]/[slug]
Risk Indicators
Executes bash commandsModifies files
Source
Defined in hooks/hooks.json
Configuration
{
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "which jq >/dev/null 2>&1 || exit 0; jq -r '.tool_input.command // empty' | { read cmd; if echo \"$cmd\" | grep -qiE 'rm\\s+-rf\\s+(hr|reviews|compensation|onboarding|hiring|cv-screening|candidates)/'; then echo '[proagent-hr] Destructive operation on HR documents detected. Verify this is intentional.' >&2; exit 2; fi; }",
"timeout": 10
}
],
"matcher": "Bash"
},
{
"hooks": [
{
"type": "command",
"command": "which jq >/dev/null 2>&1 || exit 0; jq -r '.tool_input.content // empty' | { read -r content; if echo \"$content\" | grep -qiE '(\\bage\\b|\\bgender\\b|\\bethnicity\\b|\\brace\\b|\\bdisability\\b|\\breligion\\b|\\bpregnant|\\bmarital)'; then echo '[proagent-hr] WARNING: CV screening output may reference protected characteristics. Review for bias before proceeding.' >&2; fi; }",
"timeout": 10
},
{
"type": "command",
"command": "which jq >/dev/null 2>&1 || exit 0; jq -r '.tool_input.file_path // empty' | { read fp; if echo \"$fp\" | grep -qiE 'prescreening.*questionnaire'; then jq -r '.tool_input.content // empty' | { read -r content; if echo \"$content\" | grep -qiE '(how old|\\bage\\b|date of birth|\\bdob\\b|\\bmarried\\b|\\bchildren\\b|\\bkids\\b|\\breligion\\b|\\bnationality\\b|\\bcitizenship\\b|\\bdisability\\b|\\bhealth\\b|\\bpregnant|family.planning|maiden.name|place.of.birth|military.service|\\bveteran\\b|\\barrest\\b|criminal.record|criminal.history|\\bconviction\\b|salary.history|previous.salary|current.salary|how much.*(earn|make|paid))'; then echo '[proagent-hr] BLOCKED: Prescreening questionnaire contains potentially illegal questions (age, DOB, marital status, children, religion, nationality, citizenship, disability, health, military service, arrest/criminal record, salary history). Remove prohibited questions before proceeding.' >&2; exit 2; fi; }; fi; }",
"timeout": 10
},
{
"type": "command",
"command": "which jq >/dev/null 2>&1 || exit 0; jq -r '.tool_input.file_path // empty' | { read fp; if echo \"$fp\" | grep -qiE '(evaluation|interview-eval|hr-eval|technical-eval)'; then jq -r '.tool_input.content // empty' | { read -r content; if echo \"$content\" | grep -qiE '(\\baccent\\b|\\bappearance\\b|\\bpedigree\\b|\\battractiv|\\bdress|looked.like)'; then echo '[proagent-hr] WARNING: Evaluation file may contain bias indicators (accent, appearance, pedigree). Review for bias before proceeding.' >&2; fi; }; fi; }",
"timeout": 10
}
],
"matcher": "Write"
}
],
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"command": "which jq >/dev/null 2>&1 || exit 0; jq -r '.tool_input.file_path // empty' | { read fp; if echo \"$fp\" | grep -qiE '(job-description|hiring|onboarding|review|compensation).*\\.md$'; then echo '[proagent-hr] HR document written. Verify inclusive language, required sections, and no PII exposure.'; fi; }",
"timeout": 10
},
{
"type": "command",
"command": "which jq >/dev/null 2>&1 || exit 0; jq -r '.tool_input.file_path // empty' | { read fp; if echo \"$fp\" | grep -qiE '(scorecard|comparison-matrix|recommendation|cv-screening)'; then echo '[proagent-hr] CV screening artifact written. Verify blind review protocol: no PII in scoring rationale.'; fi; }",
"timeout": 10
},
{
"type": "command",
"command": "which jq >/dev/null 2>&1 || exit 0; jq -r '.tool_input.file_path // empty' | { read fp; if echo \"$fp\" | grep -qiE 'cv_validation_session\\.json$'; then echo '[proagent-hr] Session state updated.'; fi; }",
"timeout": 10
},
{
"type": "command",
"command": "which jq >/dev/null 2>&1 || exit 0; jq -r '.tool_input.file_path // empty' | { read fp; if echo \"$fp\" | grep -qiE '(evaluation|interview-eval|hr-eval|technical-eval|final-recommendation)'; then jq -r '.tool_input.content // empty' | { read -r content; if echo \"$content\" | grep -qiE '(Candidate [A-Z]|\\b[A-Z][a-z]+ [A-Z][a-z]+\\b.*(score|rating|recommend|advance|decline|reject|hire))'; then echo '[proagent-hr] WARNING: Evaluation or recommendation file may contain candidate names. Verify blind review protocol: use candidate numbers only until final output.'; fi; }; fi; }",
"timeout": 10
},
{
"type": "command",
"command": "which jq >/dev/null 2>&1 || exit 0; jq -r '.tool_input.file_path // empty' | { read fp; if echo \"$fp\" | grep -qiE 'candidate_pipeline_session\\.json$'; then echo '[proagent-hr] Candidate pipeline session state updated.'; fi; }",
"timeout": 10
}
],
"matcher": "Write"
}
]
}Summary
{
"riskFlags": {
"touchesBash": true,
"matchAllTools": false,
"touchesFileWrites": true
},
"typeStats": {
"command": 9
},
"eventStats": {
"PreToolUse": 4,
"PostToolUse": 5
},
"originCounts": {
"absolutePaths": 0,
"pluginScripts": 0,
"projectScripts": 0
},
"timeoutStats": {
"commandsWithoutTimeout": 0
}
}Stats
Stars2
Forks1
Last CommitMar 6, 2026