AI Security Analyst building the security layer for AI agents, LLM applications, and multi-agent systems.
- AI red-teaming: LLM vulnerability assessment, probe development
- MCP / agentic security: Model Context Protocol scanning, tool-use safety
- LLM guardrails: content safety policy enforcement
- DevSecOps: SAST rules, supply-chain and dependency security
49 pull requests merged by project maintainers across 14 repositories, and 86 more open upstream. (Counts verified against GitHub, 1 November 2026.)
| Repository | PR | Work |
|---|---|---|
| kestra-io/blueprints | #3326 | AI agent output safety gate with secrets and PII detection plus LLM-judged triage |
| kestra-io/blueprints | #4353 | AI agent input firewall against prompt injection |
| kestra-io/blueprints | #4360 | AI agent red-team probe harness |
| kestra-io/blueprints | #4777 | AI agent golden prompt regression harness |
| kestra-io/blueprints | #4779 | AI agent tool-call compliance audit |
| kestra-io/blueprints | #4780 | AI agent session leakage scanner |
| kestra-io/blueprints | #4784 | MCP server security regression harness |
| kestra-io/blueprints | #4805 | AI answer grounding and citation guard |
| kestra-io/blueprints | #4823 | Leaver access revocation verification gate |
| kestra-io/blueprints | #4827 | Break-glass privileged account use watchdog |
| kestra-io/plugin-elasticsearch | #147 | Honor native bulk update bodies in Bulk |
| kestra-io/plugin-elasticsearch | #151 | Carry bulk action metadata onto operations |
| kestra-io/plugin-mongodb | #199 | Reject chunk below 1 in Load and Bulk |
| kestra-io/plugin-serdes | #458 | Keep boolean-like strings in string columns with inferAllFields |
| aws-cloudformation/cfn-lint | #4781 | Require at least one resource in the Resources section (E1001) |
| aws-cloudformation/cfn-lint | #4782 | Stringify E3601 path segments so array indices do not crash message formatting |
| aws-cloudformation/cfn-lint | #4786 | Do not crash when a resource or output condition can never be true |
| aws-cloudformation/cfn-lint | #4787 | Stop E8001 rejecting condition names CloudFormation accepts |
| aws-cloudformation/cfn-lint | #4792 | fix: E3045 flag AccessControl with BucketOwnerEnforced OwnershipControls |
| aws-cloudformation/cfn-lint | #4793 | Allow Fn::If and nested Fn::Select as the Fn::Select index |
| aws-cloudformation/cfn-lint | #4805 | Extend Fn::Equals mutual-exclusion beyond AllowedValues parameters |
| aws-cloudformation/cfn-lint | #4806 | Fix E3688 false positives on IpProtocol "-1", icmpv6 and "ICMP" rules |
| aws-cloudformation/cfn-lint | #4809 | Allow array form for AWS::CloudFormation::Init commands |
| aws-cloudformation/cfn-lint | #4810 | fix(E1011): skip FindInMap key errors when map name comes from a parameter Default |
| aws-cloudformation/cfn-lint | #4814 | Report non-string condition names instead of crashing (E8001) |
| aws-cloudformation/cfn-lint | #4828 | Accept resolve:ssm: ImageId on AWS::EC2::Instance (E1152) |
| aws-cloudformation/cfn-lint | #4830 | Accept neptune and sqlserver-dev engines in E3690/E3691 |
| aws-cloudformation/cfn-lint | #4842 | Do not require StorageEncrypted on RDS read replicas (E3720) |
| aws-cloudformation/cfn-lint | #4843 | Skip DependsOn check when target condition is always true (E3005) |
| aws-cloudformation/cfn-lint | #4844 | Skip Automation schema for AppConfig SSM document types (E3051) |
| aws-cloudformation/cfn-lint | #4860 | Measure Lambda environment size as compact JSON bytes (E3697) |
| aws-cloudformation/cfn-lint | #4862 | fix(E3530): flag NotPrincipal, group ARNs, and string "*" in role trust policies |
| aws-cloudformation/cfn-lint | #4870 | Scope E3062 DBInstanceClass enum per engine |
| aws-cloudformation/cfn-lint | #4902 | fix(E3051): validate SSM Document Content given as a JSON string |
| cisco-ai-defense/mcp-scanner | #244 | Bound wildcard gaps in coercive_injection and credential_harvesting YARA rules |
| cisco-ai-defense/mcp-scanner | #276 | Bind only/must gaps in coercive_injection execution overrides to clause boundaries |
| cisco-ai-defense/mcp-scanner | #283 | Remove local import os that shadowed the module import in main() |
| NVIDIA/SkillSpector | #893 | Score writes to agent-memory files as MP3 memory manipulation |
| NVIDIA/SkillSpector | #898 | Fix deterministic layer failing closed on ordinary lists of verb names |
| NVIDIA/SkillSpector | #902 | Stop backticks/apostrophes in comments and prose from tripping static_parse_limit |
| tester-army/e2e | #1215 | Map the SDK's NoOutputGeneratedError to MODEL_OUTPUT_INVALID |
| tester-army/e2e | #1233 | Exit 3 when a passed test's cleanup failed |
| JustVugg/colibri | #2103 | Fix COLI_KV_SHARE cross-slot adoption under KV8/KV_TQ |
| JustVugg/colibri | #2104 | Refuse over-context prompts with CONTEXT_EXCEEDED instead of silently truncating |
| langflow-ai/langflow | #14502 | Replace eval() with safe literal construction in schema.py |
| thedotmack/claude-mem | #4777 | Verify the tree-sitter CLI loads, not just exists |
| promptfoo/promptfoo | #10494 | Tag RAG grader failures so inverse assertions cannot pass |
| GitGuardian/ggshield | #1562 | Anchor local hook dir to repo root when run from a subdirectory |
| trufflesecurity/trufflehog | #5445 | Add Infisical service token detector |
| Repository | Work | Status |
|---|---|---|
| NVIDIA/garak #1974 | AART probe for AI-assisted red-teaming | Open |
| BerriAI/litellm #47846 | JWKS stale-while-revalidate refresh for JWT validation | Open |
| promptfoo/promptfoo #11832 | Bounded redirect fetching with guaranteed body cancellation | Open |
| delphisecurity/xaidr #44 | Fix ANSI-C quoting bypass in command scanning (self-found, disclosed to the maintainers first) | Open |
| guardrails-ai/guardrails #1666 | Hub auth token expiry hardening | Open |
| trailofbits/mcp-context-protector #56 | Typed exception hierarchy | Open |
| aws-cloudformation/cfn-lint #4964 | Pass the whole Fn::Sub value to child rules, restoring W1019 reporting | Open |
Languages: Python, TypeScript, SQL Security: Garak, Semgrep, Bandit, OWASP Top 10 for LLM & Agentic AI AI/Infra: LangChain, FastAPI, Docker, GitHub Actions, CI/CD
Open to collaboration on AI security tooling, MCP security research, and multi-agent system hardening.


