Keeps credentials, company names, personal names and PII out of the model's context. Enforcement lives in Claude Code hooks rather than in instructions to the agent: a skill alone cannot protect anything, because by the time the agent reads a rule the surrounding context has already been sent. Credentials are removed irreversibly and marked. Entities from a user-supplied dictionary become stable aliases, rewritten back to real values on their way to disk and to the shell, so code and commands referring to them still work. Published from a clean tree; development history is not included.
64 lines
1.5 KiB
JSON
64 lines
1.5 KiB
JSON
{
|
|
"description": "ctxguard - sanitizes everything entering the model's context, and rehydrates on the way back to disk",
|
|
"hooks": {
|
|
"SessionStart": [
|
|
{
|
|
"matcher": "startup|resume|clear|compact|fork",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/scripts/ctxguard.py\" hook session-start",
|
|
"timeout": 10
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"UserPromptSubmit": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/scripts/ctxguard.py\" hook user-prompt-submit",
|
|
"timeout": 15
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PreToolUse": [
|
|
{
|
|
"matcher": "*",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/scripts/ctxguard.py\" hook pre-tool-use",
|
|
"timeout": 20
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PostToolUse": [
|
|
{
|
|
"matcher": "Write|Edit|NotebookEdit",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/scripts/ctxguard.py\" hook post-tool-use",
|
|
"timeout": 15
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"SessionEnd": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/scripts/ctxguard.py\" hook session-end",
|
|
"timeout": 30
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|