Skip to content

feat: Create language-agnostic GitHub plugin for RSE power users #59

Description

@cdcore09

Summary

Create a new standalone GitHub plugin that provides agents, skills, and commands for GitHub power users working on research software engineering (RSE) projects. This plugin must be language-agnostic and work with any project in any language or combination of languages.

This plugin is NOT meant to replace the gh CLI. Instead, it's designed to be a gh CLI power user's companion — encoding RSE best practices for GitHub Actions, releases, organization management, repository health, and project automation. It assumes the user already knows basic gh usage and focuses on advanced patterns, opinionated best practices, and RSE-specific workflows.

The current project-management plugin contains several GitHub-related skills (github-actions, github-org-management, release-management, issue-triage, pre-commit-workflows, community-health-files) and agents (github-workflow-specialist, github-org-manager), but all are scoped to scientific Python. This new plugin should generalize that content for any language ecosystem.


Scope

What This Plugin IS

  • RSE best practices for GitHub — opinionated guidance for how research software projects should use GitHub features
  • A gh CLI power user toolkit — advanced gh commands, scripting patterns, and automation recipes
  • GitHub Actions expertise — CI/CD patterns, reusable workflows, security hardening, caching strategies
  • Release engineering — versioning, changelog management, automated publishing workflows
  • Organization management — repo health auditing, lifecycle management, bulk operations
  • Project automation — issue triage, labeling, stale management, templates

What This Plugin IS NOT

  • Not a replacement for gh CLI basics (the user can read gh help)
  • Not a GitHub API tutorial (though it uses gh api extensively)
  • Not a git tutorial (the user knows git)

Core Areas

1. GitHub Actions & CI/CD

Topic Coverage
Workflow design Triggers, matrix strategies, concurrency, path filtering
Caching Language-agnostic caching strategies (not just pip/conda)
Reusable workflows Organization-shared workflows, composite actions, workflow_call
Security hardening SHA-pinned actions, minimal permissions, script injection prevention, Dependabot for actions
Self-hosted runners Setup, GPU runners, HPC integration
OIDC & Trusted Publishers Token-free authentication to package registries and cloud providers
Secrets management Repository vs environment secrets, OIDC for cloud providers
Testing patterns Matrix builds for multi-language projects, large test data management
Container builds in CI Building and pushing images (cross-references containerization plugin)
Artifact management Upload/download artifacts between jobs, retention policies

Language-specific CI patterns as reference:

  • Python (pytest, tox, nox, pixi)
  • R (R CMD check, testthat)
  • Julia (Pkg.test)
  • Rust (cargo test, cargo clippy)
  • Go (go test, golangci-lint)
  • Node.js (npm test, vitest, eslint)
  • C/C++ (CMake, CTest)

2. Release Engineering

Topic Coverage
Semantic versioning Language-agnostic SemVer guidance, pre-release conventions
Changelog management towncrier, keep-a-changelog, conventional commits, auto-generated notes
GitHub Releases Creating releases, auto-generated notes, .github/release.yml configuration
Tag management Annotated tags, tag-triggered workflows, version extraction
Automated publishing Tag-triggered workflows for any package registry
Multi-ecosystem publishing PyPI, CRAN, npm, crates.io, Maven Central, etc. — patterns for each
Coordinated releases Multi-package release coordination in monorepos

3. Organization Management

Topic Coverage
Repository health auditing Automated health checks across all org repos
Lifecycle management Active → maintenance → archive transitions
Naming conventions Org-wide naming standards and enforcement
The .github repository Organization-wide defaults, profile README
Team & permissions Team structure, least-privilege access, branch protection
Bulk operations Multi-repo management with gh CLI scripting
Repository templates Template repos for consistent project scaffolding

4. Project Automation

Topic Coverage
Issue triage Label taxonomies, priority frameworks, triage workflows
Issue & PR templates Templates for bug reports, feature requests, RFCs
Stale management Stale bot configuration, close policies
GitHub Projects Project boards, custom fields, automation rules
Branch protection Required reviews, status checks, merge strategies
CODEOWNERS Ownership patterns for monorepos and multi-team projects
Community health files CODE_OF_CONDUCT, CONTRIBUTING, SECURITY, SUPPORT, CITATION

5. Advanced gh CLI Patterns

Topic Coverage
gh api scripting Complex API queries, pagination, bulk operations
gh alias Custom command aliases for common RSE workflows
gh extension Useful extensions for RSE work
jq patterns JSON processing for gh output
Cross-repo scripting Operating across multiple repos in an organization

Proposed Plugin Structure

plugins/github/
  .claude-plugin/
    plugin.json
  README.md
  LICENSE
  agents/
    github-actions-expert.md          # CI/CD workflow design and optimization
    github-org-strategist.md          # Org management, health, lifecycle
    release-engineer.md               # Release automation and versioning
  skills/
    github-actions/                   # CI/CD patterns (language-agnostic)
      SKILL.md
      assets/                         # Reusable workflow templates
      references/                     # Security hardening, caching strategies
    release-engineering/              # Versioning, changelogs, publishing
      SKILL.md
      assets/                         # release.yml, changelog templates
      references/                     # SemVer guide, registry-specific patterns
    org-management/                   # Organization health and lifecycle
      SKILL.md
      assets/                         # Audit scripts, health check templates
      references/                     # Health metrics, lifecycle policies
    issue-management/                 # Triage, templates, automation
      SKILL.md
      assets/                         # Issue templates, label configs
      references/                     # Triage workflows, stale policies
    community-health/                 # Community health files and standards
      SKILL.md
      assets/                         # Template CONTRIBUTING, CoC, SECURITY, CITATION
      references/
    branch-protection/                # Protection rules, merge strategies, CODEOWNERS
      SKILL.md
      assets/
      references/
    gh-cli-advanced/                  # Power user gh CLI patterns
      SKILL.md
      assets/                         # Alias configs, scripts
      references/                     # jq patterns, API recipes
    github-projects/                  # Project boards, automation, tracking
      SKILL.md
      assets/
      references/
  commands/
    setup-ci.md                       # Scaffold CI for any project
    audit-org.md                      # Run org health audit
    plan-release.md                   # Plan and execute a release
    triage.md                         # Triage an issue or batch of issues
    setup-community-files.md          # Scaffold community health files

Key Requirements

  1. Language-agnostic by default. All skills, agents, and commands must work for any language. Language-specific CI/release patterns should be reference material, not the primary guidance.
  2. gh CLI power user orientation. Assume the user knows basic gh usage. Focus on advanced patterns, scripting, and automation — not basic commands.
  3. RSE best practices. Opinionated guidance tailored to research software: CITATION.cff, reproducibility concerns, long deprecation cycles, HPC considerations, etc.
  4. Adapt existing content. The current project-management plugin contains good Python-specific GitHub content that should be adapted and generalized:
    • skills/github-actions → generalize to any language
    • skills/github-org-management → preserve and expand
    • skills/release-management → generalize beyond Python/PyPI
    • skills/issue-triage → mostly language-agnostic already
    • skills/community-health-files → mostly language-agnostic already
    • skills/pre-commit-workflows → generalize to any pre-commit ecosystem
    • agents/github-workflow-specialist.md → generalize
    • agents/github-org-manager.md → preserve and expand
  5. Security throughout. SHA-pinned actions, minimal permissions, OIDC tokens, secret scanning, Dependabot — security is not optional.
  6. GitHub Projects coverage. Project boards, custom fields, and automation are increasingly important for RSE teams but poorly documented for this audience.
  7. Advanced gh CLI patterns. The gh api + jq combination is extremely powerful for org management. Include real, tested recipes.

Migration Plan

Once this plugin is complete:

  • The GitHub-related skills in project-management (github-actions, github-org-management, release-management, issue-triage, community-health-files, pre-commit-workflows) should be deprecated or replaced with pointers to this plugin
  • The GitHub-related agents in project-management (github-workflow-specialist, github-org-manager) should be deprecated in favor of this plugin's agents
  • The project-management plugin should be refactored to focus on project onboarding, handoffs, documentation validation, and other non-GitHub concerns
  • Python-specific CI/release patterns from the existing skills should be included as language-specific reference material in the new plugin

Acceptance Criteria

  • Plugin structure follows the established pattern (plugin.json, agents/, skills/, commands/)
  • All skills work for projects in any language, not just Python
  • GitHub Actions skill covers CI patterns for at least 4 languages beyond Python
  • Release engineering skill covers publishing to at least 3 package registries beyond PyPI
  • Org management skill includes health auditing scripts and lifecycle management
  • Issue management covers triage, templates, and stale policies
  • Community health files templates are language-agnostic
  • Advanced gh CLI patterns skill includes gh api + jq recipes
  • GitHub Projects coverage included
  • Security hardening guidance woven throughout (SHA pinning, permissions, OIDC)
  • Existing Python-specific content from project-management is preserved/adapted
  • README with overview and usage instructions
  • At least one command that scaffolds CI for a project in any detected language

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestplanningPlanning Issues for Project Management

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions