Files
DevOps-Security-Agent-Skills/CONTRIBUTING.md
T

257 lines
6.4 KiB
Markdown
Raw Permalink Normal View History

2026-01-27 17:35:45 -05:00
# Contributing to DevOps Security Agent Skills
Thank you for your interest in contributing! This document provides guidelines for adding new skills or improving existing ones.
## Table of Contents
- [Getting Started](#getting-started)
- [Skill Structure](#skill-structure)
- [SKILL.md Template](#skillmd-template)
- [Naming Conventions](#naming-conventions)
- [Writing Guidelines](#writing-guidelines)
- [Submission Process](#submission-process)
## Getting Started
1. Fork this repository
2. Clone your fork locally
3. Create a new branch for your contribution
4. Make your changes
5. Submit a pull request
## Skill Structure
Each skill is a directory containing at minimum a `SKILL.md` file:
```
skill-name/
├── SKILL.md # Required: instructions + metadata
├── scripts/ # Optional: executable code
├── references/ # Optional: detailed documentation
└── assets/ # Optional: templates, configs
```
### When to Include Additional Directories
- **scripts/**: Include when the skill benefits from automation (validation scripts, setup helpers)
- **references/**: Include for detailed technical documentation that would bloat SKILL.md
- **assets/**: Include for templates, configuration files, or example resources
## SKILL.md Template
Use this template when creating new skills:
```markdown
---
name: skill-name
description: A clear description of what this skill does and when to use it. Include specific keywords that help agents identify relevant tasks.
license: MIT
metadata:
author: your-github-username
version: "1.0"
---
# Skill Title
Brief introduction to the skill and its purpose.
## When to Use This Skill
Use this skill when:
- Condition 1
- Condition 2
- User mentions specific keywords or concepts
## Prerequisites
List any required:
- Tools or CLI utilities
- Access permissions
- Environment setup
## Instructions
### Task 1: Description
Step-by-step instructions:
1. First step
2. Second step
3. Third step
Example:
\`\`\`bash
# Example command
command --flag value
\`\`\`
### Task 2: Description
Continue with additional tasks...
## Common Issues
### Issue 1
**Problem**: Description of the issue
**Solution**: How to resolve it
### Issue 2
**Problem**: Description of the issue
**Solution**: How to resolve it
## Best Practices
- Practice 1
- Practice 2
- Practice 3
## Related Skills
- [Related Skill 1](../related-skill-1/)
- [Related Skill 2](../related-skill-2/)
```
## Naming Conventions
### Skill Names
- Use lowercase letters, numbers, and hyphens only
- Maximum 64 characters
- Must not start or end with a hyphen
- Must not contain consecutive hyphens
- Directory name must match the `name` field in frontmatter
**Good Examples:**
- `github-actions`
- `terraform-aws`
- `linux-hardening`
**Bad Examples:**
- `GitHub-Actions` (uppercase not allowed)
- `-github-actions` (starts with hyphen)
- `github--actions` (consecutive hyphens)
### File Names
- Use lowercase with hyphens for markdown files
- Use lowercase with underscores for scripts
- Keep names descriptive but concise
## Writing Guidelines
### Description Field
The description should:
- Be 1-1024 characters
- Explain what the skill does AND when to use it
- Include specific keywords for agent matching
**Good:**
```yaml
description: Deploy and manage Docker containers including building images, optimizing Dockerfiles, managing volumes, and troubleshooting container issues. Use when working with Docker, containers, or containerization.
```
**Poor:**
```yaml
description: Helps with Docker.
```
### Instructions
- Write clear, actionable steps
- Include code examples with proper syntax highlighting
- Explain the "why" not just the "how"
- Keep the main SKILL.md under 500 lines
- Move detailed reference material to separate files
### Code Examples
- Always test your examples before submitting
- Include comments explaining non-obvious commands
- Show both the command and expected output where helpful
- Use realistic but safe example values
### Progressive Disclosure
Structure skills for efficient context usage:
1. **Frontmatter** (~100 tokens): Name and description only
2. **Main Instructions** (<5000 tokens): Core guidance in SKILL.md
3. **References** (as needed): Detailed docs in separate files
## Domain Organization
Place skills in the appropriate domain and category:
```
devops/
├── ci-cd/ # CI/CD pipelines and automation
├── containers/ # Container management
├── orchestration/ # Kubernetes and orchestration
├── observability/ # Monitoring, logging, alerting
└── release/ # Release and deployment strategies
security/
├── scanning/ # Vulnerability and code scanning
├── secrets/ # Secrets management
├── hardening/ # System and container hardening
├── network/ # Network security
└── operations/ # Security operations
infrastructure/
├── cloud-aws/ # AWS services
├── cloud-azure/ # Azure services
├── cloud-gcp/ # GCP services
├── servers/ # Server management
├── networking/ # Network infrastructure
├── databases/ # Database management
└── storage/ # Storage solutions
compliance/
├── frameworks/ # Compliance frameworks
├── governance/ # Governance and policy
├── auditing/ # Audit and logging
└── continuity/ # Business continuity
```
## Submission Process
### Before Submitting
1. **Validate your skill** using skills-ref:
```bash
skills-ref validate ./path/to/your-skill
```
2. **Test your instructions** - ensure they work as documented
3. **Check for duplicates** - ensure a similar skill doesn't already exist
4. **Review the style** - match the conventions of existing skills
### Pull Request Guidelines
- Use a clear, descriptive title
- Reference any related issues
- Describe what the skill does and why it's useful
- Include any testing you've done
### Review Criteria
Submissions are reviewed for:
- **Accuracy**: Instructions must be correct and tested
- **Clarity**: Easy to understand and follow
- **Completeness**: Covers common use cases and edge cases
- **Consistency**: Follows repository conventions
- **Value**: Adds meaningful capability for DevOps/Security tasks
## Questions?
Open an issue for:
- Questions about contributing
- Suggestions for new skills
- Feedback on existing skills
Thank you for contributing!