Contributions are welcome. This repo follows a skills-based structure — each security automation is a self-contained skill under skills/.
- Create a directory under the layered skill tree that matches the work:
skills/ingestion/<skill-name>/skills/discovery/<skill-name>/skills/detection/<skill-name>/skills/evaluation/<skill-name>/skills/view/<skill-name>/skills/remediation/<skill-name>/
- Add a
SKILL.mdwith the required frontmatter:
---
name: your-skill-name
description: >-
One-paragraph description of what this skill does and when to use it.
license: Apache-2.0
compatibility: >-
Runtime requirements (Python version, cloud SDKs, permissions needed).
metadata:
author: your-github-handle
version: 0.1.0
frameworks:
- Framework names this skill maps to
cloud: aws | gcp | azure | multi
---- Put source code in
src/within your skill directory - Put infrastructure-as-code in
infra/only when the skill needs it - Put tests in
tests/— every skill should have tests - Add a
REFERENCES.mdthat links only to the official docs, schemas, APIs, or benchmark sources the skill depends on - Make sure
SKILL.mdexplicitly includes bothUse when...andDo NOT use... - Document whether the skill is read-only, dry-run capable, HITL-gated, or side-effectful
- Add tests for malformed input, provider quirks, and any deprecated API shape you are intentionally supporting during migration
- Add your skill to the catalog in
README.mdandskills/README.md - Add or update the skill entry in
docs/framework-coverage.jsonwhen the change affects framework, provider, or asset coverage
- Python 3.11+ with type hints
- No hardcoded credentials — use environment variables or AWS Secrets Manager
- Least-privilege IAM — document every permission your skill needs
- Tests use
pytestwithmotofor AWS mocking - Map to compliance frameworks where applicable (CIS, MITRE, NIST, OWASP)
- Prefer only official vendor docs, schemas, and APIs in
REFERENCES.md - Put structured results on
stdout, debug/warning detail onstderr, and fail closed on invalid input - Follow
docs/SKILL_CONTRACT.mdfor the minimum shipped-skill bar - Keep framework claims measurable and machine-readable via
docs/COVERAGE_MODEL.mdanddocs/framework-coverage.json - Design for all execution modes up front: CLI, CI, MCP, and persistent/serverless wrappers should not require different skill code
- If the skill can write state, require dry-run-first behavior and document the approval/audit model
- Fork the repo and create a feature branch
- Add or modify skills following the structure above
- Ensure tests pass:
pytest skills/<layer>/your-skill/tests/ -v - Ensure linting passes:
ruff check . - Ensure shared validators pass:
python scripts/validate_skill_contract.py,python scripts/validate_skill_integrity.py,python scripts/validate_dependency_consistency.py,python scripts/validate_framework_coverage.py, andpython scripts/validate_safe_skill_bar.py - Open a PR against
mainwith a clear description
If you find a security vulnerability, do NOT open a public issue. See SECURITY.md for responsible disclosure instructions.