Skip to content

Latest commit

 

History

History
168 lines (129 loc) · 3.49 KB

File metadata and controls

168 lines (129 loc) · 3.49 KB

Contributing Guide

Thank you for considering contributing to {{PLUGIN_NAME}}!

Development Setup

  1. Fork and clone the repository:

    git clone https://github.com/YOUR_USERNAME/{{REPO_NAME}}.git
    cd {{REPO_NAME}}
  2. Install dependencies:

    # ShellCheck (for validation)
    # macOS
    brew install shellcheck
    
    # Ubuntu/Debian
    sudo apt-get install shellcheck
    
    # Windows (via chocolatey)
    choco install shellcheck
  3. Install git hooks:

    cp hooks/pre-commit.sh .git/hooks/pre-commit
    chmod +x .git/hooks/pre-commit

Development Workflow

Creating a New Skill

  1. Create skill directory:

    mkdir -p skills/your-skill-name
  2. Create skill.md with frontmatter:

    ---
    name: your-skill-name
    description: Brief description of what this skill does
    license: MIT
    ---
  3. Add skill content:

    • Activation triggers
    • Behaviour description
    • Examples
    • Version history
  4. Validate:

    ./scripts/validate-all.sh

Making Changes

  1. Create a feature branch:

    git checkout -b feature/your-feature-name
  2. Make your changes

  3. Run validation:

    ./scripts/validate-all.sh
  4. Run tests (if applicable):

    ./tests/test-all.sh
  5. Commit with conventional commit format:

    git commit -m "feat: Add new skill for X"
    git commit -m "fix: Resolve issue with Y"
    git commit -m "docs: Update README"
  6. Push and create PR:

    git push origin feature/your-feature-name

Commit Message Format

We use Conventional Commits:

  • feat: - New feature
  • fix: - Bug fix
  • docs: - Documentation changes
  • style: - Code style changes (formatting)
  • refactor: - Code refactoring
  • test: - Adding or updating tests
  • chore: - Maintenance tasks

Quality Standards

All contributions must meet these standards:

1. ShellCheck Compliance

# Zero warnings required
shellcheck scripts/*.sh

2. Naming Conventions

  • Directories: lowercase-with-hyphens
  • Skills: Match directory name in frontmatter
  • Pattern: ^[a-z0-9-]+$

3. JSON Schema

  • Valid JSON syntax
  • Author/Owner as objects: {"name": "..."}
  • Semantic versioning: x.y.z

4. Documentation

  • Update CHANGELOG.md for user-facing changes
  • Add inline comments for complex logic
  • Update README.md if needed

5. Testing

  • Test manually with /plugin install .
  • Run validation: ./scripts/validate-all.sh
  • Ensure GitHub Actions pass

Pull Request Process

  1. Update documentation if needed
  2. Add to CHANGELOG.md under [Unreleased]
  3. Ensure all checks pass:
    • ShellCheck
    • JSON validation
    • Frontmatter validation
    • Security scan
  4. Request review from maintainers
  5. Address feedback if requested
  6. Squash commits if needed before merge

Code Review Criteria

Reviewers will check:

  • ✅ Follows naming conventions
  • ✅ ShellCheck passes with zero warnings
  • ✅ JSON/YAML is valid
  • ✅ Documentation is updated
  • ✅ No hardcoded secrets
  • ✅ Commits follow conventional format
  • ✅ Tests pass (if applicable)

Need Help?

  • 📖 Check README.md for usage
  • 🔍 Review existing skills for examples
  • 💬 Open an issue for questions
  • 📧 Contact: {{AUTHOR_EMAIL}}

License

By contributing, you agree that your contributions will be licensed under the MIT License.