This document details which workflow presets work together, potential conflicts, and recommended combinations for different project types.
- Preset Compatibility
- Language Presets
- Feature Presets
- Conflicts and Resolutions
- Recommended Stacks
- Secrets Requirements
This matrix shows which presets can be combined. All combinations marked with a checkmark are fully compatible.
| Preset | nodejs | python | go | rust | java | dotnet | ruby | quality | security | releases | docker |
|---|---|---|---|---|---|---|---|---|---|---|---|
| nodejs | - | - | - | - | - | - | - | ✅ | ✅ | ✅ | ✅ |
| python | - | - | - | - | - | - | - | ✅ | ✅ | ✅ | ✅ |
| go | - | - | - | - | - | - | - | ✅ | ✅ | ✅ | ✅ |
| rust | - | - | - | - | - | - | - | ✅ | ✅ | ✅ | ✅ |
| java | - | - | - | - | - | - | - | ✅ | ✅ | ✅ | ✅ |
| dotnet | - | - | - | - | - | - | - | ✅ | ✅ | ✅ | ✅ |
| ruby | - | - | - | - | - | - | - | ✅ | ✅ | ✅ | ✅ |
| quality | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ | ✅ |
| security | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ |
| releases | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | ✅ |
| docker | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - |
| Preset | community | docs | notifications | observability | mobile | infrastructure |
|---|---|---|---|---|---|---|
| nodejs | ✅ | ✅ | ✅ | ✅ | ✅ | |
| python | ✅ | ✅ | ✅ | ✅ | - | ✅ |
| go | ✅ | ✅ | ✅ | ✅ | - | ✅ |
| quality | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| security | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| releases | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| mobile | ✅ | ✅ | ✅ | ✅ | - | - |
Legend:
- ✅ Fully compatible
⚠️ Compatible with considerations (see notes)-Not typically combined or not applicable
Included workflows:
ci-nodejs.yml- Build and test with Node.jspublish-npm.yml- Publish to npm registry
Commonly paired with:
quality- E2E testing, formattingsecurity- CodeQL, dependency reviewreleases- release-pleasevercelornetlify- Deployment
Secrets required:
| Secret | Required For | Setup URL |
|---|---|---|
NPM_TOKEN |
npm publishing | npm tokens |
Included workflows:
ci-python.yml- Build and test with Pythonpublish-pypi.yml- Publish to PyPI
Commonly paired with:
quality- Coverage, formattingsecurity- CodeQL, Snykreleases- release-pleasedocs- API documentation
Secrets required:
| Secret | Required For | Setup URL |
|---|---|---|
PYPI_API_TOKEN |
PyPI publishing | PyPI tokens |
Included workflows:
ci-go.yml- Build and test with Gopublish-cli-binaries.yml- Cross-compile CLI binaries
Commonly paired with:
quality- Format check, golangci-lintsecurity- CodeQL, Trivyreleases- release-pleasedocker- Container builds
Secrets required:
| Secret | Required For |
|---|---|
| None required | Basic usage |
Included workflows:
ci-rust.yml- Build and test with Cargopublish-crates.yml- Publish to crates.io
Commonly paired with:
quality- Clippy, fmtsecurity- CodeQLreleases- release-please
Secrets required:
| Secret | Required For | Setup URL |
|---|---|---|
CRATES_TOKEN |
crates.io publishing | crates.io tokens |
Included workflows:
ci-java.yml- Build and test with Maven/Gradlepublish-maven.yml- Publish to Maven Central
Commonly paired with:
quality- SonarCloudsecurity- CodeQL, Snykreleases- release-please
Secrets required:
| Secret | Required For |
|---|---|
MAVEN_USERNAME |
Maven Central |
MAVEN_PASSWORD |
Maven Central |
GPG_PRIVATE_KEY |
Artifact signing |
GPG_PASSPHRASE |
Artifact signing |
Included workflows:
ci-dotnet.yml- Build and test with .NETpublish-nuget.yml- Publish to NuGet
Commonly paired with:
quality- Code coveragesecurity- CodeQLreleases- release-pleaseazure- Azure deployment
Secrets required:
| Secret | Required For | Setup URL |
|---|---|---|
NUGET_API_KEY |
NuGet publishing | NuGet API keys |
Included workflows:
commitlint.yml- Commit message validationformat-check.yml- Code formattinge2e-playwright.yml- End-to-end testinglighthouse.yml- Performance auditscodecov.yml- Code coverage
Compatible with: All language presets
Included workflows:
codeql.yml- GitHub code scanningdependency-review.yml- PR dependency audittrivy.yml- Container scanningscorecard.yml- OpenSSF metricssbom.yml- SBOM generation
Compatible with: All language presets
Included workflows:
release-please.yml- Automated releases
Triggers on release:
- Language-specific publish workflows
sentry-release.yml(if configured)
Conflicts with: release-drafter (choose one approach)
Included workflows:
publish-docker.yml- Build and push imagestrivy.yml- Container scanning
Registry options:
- GitHub Container Registry (GHCR) - No secrets needed
- Docker Hub - Requires
DOCKER_USERNAME,DOCKER_PASSWORD - AWS ECR - Requires AWS credentials
- Google GCR - Requires GCP credentials
- Azure ACR - Requires Azure credentials
Included workflows:
welcome.yml- Greet new contributorsstale.yml- Manage inactive issuesall-contributors.yml- Recognize contributorsauto-labeler.yml- Auto-label PRs
Compatible with: All presets (no conflicts)
Included workflows:
markdown-lint.yml- Lint markdownspell-check.yml- Check spellinglink-checker.yml- Validate URLsdocs-api.yml- API documentationdeploy-github-pages.yml- Publish docs
Compatible with: All presets
Included workflows:
notify-slack.yml- Slack alertsnotify-discord.yml- Discord alertsnotify-teams.yml- Teams alerts
Secrets required:
| Secret | Required For |
|---|---|
SLACK_WEBHOOK_URL |
Slack notifications |
DISCORD_WEBHOOK_URL |
Discord notifications |
TEAMS_WEBHOOK_URL |
Teams notifications |
| Workflow A | Workflow B | Conflict | Resolution |
|---|---|---|---|
release-please.yml |
release-drafter.yml |
Both manage releases | Choose one approach |
Recommendation:
- Use
release-pleasefor automated releases with conventional commits - Use
release-drafterfor manual releases with PR-based changelogs
| Workflow A | Workflow B | Overlap | Resolution |
|---|---|---|---|
super-linter.yml |
Individual linters | Redundant checks | Choose based on need |
Recommendation:
- Use
super-linterfor polyglot projects (single config, many languages) - Use individual linters for fine-grained control per language
| Workflow A | Workflow B | Overlap | Resolution |
|---|---|---|---|
snyk.yml |
trivy.yml |
Container scanning | Both provide value |
snyk.yml |
codeql.yml |
Code scanning | Both provide value |
Recommendation:
codeql.yml- Free, GitHub-native, always recommendedtrivy.yml- Free, excellent for containers and IaCsnyk.yml- Enterprise features, unified dashboard (paid for advanced)
Both Snyk and Trivy can run together without conflicts.
| Workflow A | Workflow B | Conflict |
|---|---|---|
visual-regression-percy.yml |
visual-regression-chromatic.yml |
Redundant |
visual-regression-chromatic.yml |
visual-regression-backstop.yml |
Redundant |
Recommendation: Choose ONE visual regression tool:
- Percy - General visual testing, integrates with Cypress/Playwright
- Chromatic - Storybook-specific, component-level testing
- BackstopJS - Self-hosted, open-source option
For new projects with basic needs:
# Copy minimal stack
cp templates/workflows/{ci-nodejs,release-please,dependency-review}.yml .github/workflows/| Workflow | Purpose |
|---|---|
ci-nodejs.yml |
Build and test |
release-please.yml |
Automated releases |
dependency-review.yml |
Security on PRs |
For projects prioritizing code quality:
# Copy quality stack
cp templates/workflows/{ci-nodejs,commitlint,format-check,e2e-playwright,codecov,lighthouse,a11y}.yml .github/workflows/| Workflow | Purpose |
|---|---|
ci-nodejs.yml |
Build and test |
commitlint.yml |
Enforce commit standards |
format-check.yml |
Code formatting |
e2e-playwright.yml |
E2E testing |
codecov.yml |
Coverage reporting |
lighthouse.yml |
Performance audits |
a11y.yml |
Accessibility testing |
For projects with strict security requirements:
# Copy security stack
cp templates/workflows/{ci-nodejs,codeql,dependency-review,trivy,snyk,scorecard,sbom,license-check}.yml .github/workflows/| Workflow | Purpose |
|---|---|
codeql.yml |
Static analysis |
dependency-review.yml |
Dependency audit |
trivy.yml |
Container/IaC scanning |
snyk.yml |
Comprehensive scanning |
scorecard.yml |
OpenSSF metrics |
sbom.yml |
Software inventory |
license-check.yml |
License compliance |
For projects deploying to production:
# Copy deployment stack
cp templates/workflows/{ci-nodejs,e2e-playwright,release-please,publish-docker,deploy-kubernetes,notify-slack,sentry-release,datadog-ci}.yml .github/workflows/| Workflow | Purpose |
|---|---|
ci-nodejs.yml |
Build and test |
e2e-playwright.yml |
E2E before deploy |
release-please.yml |
Manage releases |
publish-docker.yml |
Build containers |
deploy-kubernetes.yml |
Deploy to K8s |
notify-slack.yml |
Deployment alerts |
sentry-release.yml |
Error tracking |
datadog-ci.yml |
CI observability |
| Secret | Workflows | Required |
|---|---|---|
NPM_TOKEN |
publish-npm | Yes |
PYPI_API_TOKEN |
publish-pypi | Yes |
CRATES_TOKEN |
publish-crates | Yes |
RUBYGEMS_API_KEY |
publish-rubygems | Yes |
NUGET_API_KEY |
publish-nuget | Yes |
DOCKER_USERNAME |
publish-docker-hub | Yes |
DOCKER_PASSWORD |
publish-docker-hub | Yes |
| Secret | Workflows | Required |
|---|---|---|
AWS_ACCESS_KEY_ID |
deploy-aws-*, publish-docker-ecr | Yes |
AWS_SECRET_ACCESS_KEY |
deploy-aws-*, publish-docker-ecr | Yes |
AZURE_CREDENTIALS |
deploy-azure-*, publish-docker-acr | Yes |
GCP_CREDENTIALS |
deploy-gcp-*, publish-docker-gcr | Yes |
| Secret | Workflows | Required |
|---|---|---|
VERCEL_TOKEN |
deploy-vercel | Yes |
VERCEL_ORG_ID |
deploy-vercel | Yes |
VERCEL_PROJECT_ID |
deploy-vercel | Yes |
NETLIFY_AUTH_TOKEN |
deploy-netlify | Yes |
NETLIFY_SITE_ID |
deploy-netlify | Yes |
FLY_API_TOKEN |
deploy-fly | Yes |
KUBE_CONFIG |
deploy-kubernetes | Yes |
| Secret | Workflows | Required |
|---|---|---|
SNYK_TOKEN |
snyk | Yes |
SONAR_TOKEN |
sonarcloud | Yes |
| Secret | Workflows | Required |
|---|---|---|
SLACK_WEBHOOK_URL |
notify-slack | Yes |
DISCORD_WEBHOOK_URL |
notify-discord | Yes |
TEAMS_WEBHOOK_URL |
notify-teams | Yes |
| Secret | Workflows | Required |
|---|---|---|
DD_API_KEY |
datadog-ci | Yes |
SENTRY_AUTH_TOKEN |
sentry-release | Yes |
SENTRY_ORG |
sentry-release | Yes |
SENTRY_PROJECT |
sentry-release | Yes |
- Workflow Diagrams - Visual dependency graphs
- Workflow Metadata - Full metadata index
- Workflow README - Quick reference
- /github-setup skill - Interactive setup