Shared community-health files and reusable GitHub Actions reusable workflows
for the parasxos/cpp26-adapter family of Claude Code plugins.
Universal CI lifecycle for a Claude Code plugin repo: checkout → install →
pytest → (optionally) package + size-budget check. Plugin-specific steps
(corpus validators, eval invocations) live in the caller's own ci.yml
as additional jobs.
Calling pattern:
# In <plugin-repo>/.github/workflows/ci.yml
name: ci
on:
push:
branches: [main]
tags: ['v*']
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
shared:
uses: parasxos/.github/.github/workflows/plugin-ci.yml@main
with:
python-version: '3.11'
install-spec: 'mcp-server[dev]'
test-paths: 'mcp-server/tests agents/tests'
run-package: true
package-script: 'tools/package.sh'
tarball-glob: 'dist/cpp26-adapter-*.tgz'
size-budget-kb: 5120Reusable workflow that opens a PR against
parasxos/claude-plugins bumping a plugin entry's version and source.ref to a new tag. Triggered from each plugin repo's release workflow on tags: ['v*'].
One-time per plugin repo:
- Generate a fine-grained PAT at https://github.com/settings/personal-access-tokens
- Resource owner:
parasxos - Repository access:
parasxos/claude-plugins(only) - Permissions:
contents=write,pull-requests=write
- Resource owner:
- Add as repo secret
MARKETPLACE_PATin plugin repo Settings → Secrets and variables → Actions.
Then drop a release.yml like this in the plugin repo:
name: release
on:
push:
tags: ['v*']
workflow_dispatch:
inputs:
tag:
description: 'Tag to act on (e.g. v0.9.3)'
required: true
type: string
jobs:
bump:
uses: parasxos/.github/.github/workflows/bump-marketplace.yml@main
with:
plugin-name: cpp26-adapter
tag: ${{ inputs.tag || github.ref_name }}
secrets:
pat: ${{ secrets.MARKETPLACE_PAT }}CC0 — copy freely.