Security policies, vulnerability reporting, and hardening guidelines for this repository and its AI agent workflows.
If you discover a security vulnerability, please report it responsibly:
- Do not open a public issue
- Email the maintainers or use the repository's private vulnerability reporting
- Include steps to reproduce, impact assessment, and suggested fix if possible
- Allow reasonable time for a fix before public disclosure
These conventions are enforced by the security rule domain
(see .agentkit/spec/rules.yaml):
- No hardcoded secrets — API keys, tokens, passwords must never appear in source
- Least privilege — request minimum necessary permissions
- Deny by default — explicitly allow actions rather than deny
- Input validation — validate all external input at system boundaries
- Dependency audit — regularly scan dependencies for known vulnerabilities
- Encryption — use TLS for transit, encrypt sensitive data at rest
AgentKit Forge installs hook scripts that guard against common risks:
| Hook | Trigger | Protection |
|---|---|---|
protect-sensitive.sh |
Write/Edit operations | Blocks writes to .env, credentials, CI secrets |
guard-destructive-commands.sh |
Bash execution | Blocks rm -rf /, git push --force, etc. |
warn-uncommitted.sh |
Write/Edit operations | Warns when uncommitted changes accumulate |
When base and overlay permissions conflict, deny always wins:
# Base allows git push
permissions:
allow: ["git push"]
# Overlay denies force push — this wins
permissions:
deny: ["git push --force"]The sync engine sanitizes all template variable values, stripping shell
metacharacters (` $ \ ; | & < > ! { } ( )) to prevent injection
through overlay values.
See .claude/settings.json for the full list. Permissions are sourced from:
.agentkit/spec/settings.yaml— base permissions.agentkit/overlays/<repo>/settings.yaml— repo-specific additions
Explicitly denied operations (these override any allow entries):
rm -rf /andrm -rf ~*— catastrophic deletiongit push --forceandgit push -f— history rewritinggit reset --hard— working tree destructionterraform destroy— infrastructure destructionaz group delete— Azure resource group deletiongh repo delete— repository deletion
The validate command scans for common secret patterns:
- AWS access keys (
AKIA...) - GitHub tokens (
ghp_...) - API keys (
sk-...) - Generic patterns (
password=,secret=,token=in non-template files)
- Use
.gitignoreto exclude sensitive files (.env,*.pem,credentials.*) - Use environment variables or secret managers for runtime secrets
- The
protect-sensitive.shhook blocks AI agents from writing to sensitive paths
This policy is maintained by AgentKit Forge. Run pnpm -C .agentkit agentkit:sync to regenerate.