enterprise-readiness
Enterprise Readiness Assessment
When to Use
- Production/enterprise readiness evaluations
- Supply chain security: SLSA provenance, cosign signing, SBOMs
- CI/CD hardening, workflow permissions
- OpenSSF Best Practices (Passing/Silver/Gold), OSPS Baseline (L1/2/3)
- Scorecard optimization (Token-Permissions, Branch-Protection, Pinned-Deps)
- Code review, ADRs, changelogs, SECURITY.md
Assessment Workflow
- Discovery: Identify platform, languages, existing CI/CD, dependabot.yml
- Scoring: Apply checklists; check Scorecard, badge criteria, coverage
- Gap Analysis: List missing controls by severity
- Implementation: Apply fixes (SHA-pin actions, harden permissions, add workflows)
- Verification: Re-score and compare
Mandatory Workflows & Badges
Coverage required: CI, CodeQL, OpenSSF Scorecard, dependency review, security (composer audit + SBOM). Each may be a dedicated .github/workflows/<name>.yml OR a job that calls the netresearch reusable workflow. Badges: CI, Codecov, Scorecard, Best Practices, Baseline. See references/badges-and-workflows.md.
Key Hardening Patterns
- Permissions: Declare
permissions: contents: readat workflow-level; grant write only per-job - SHA pinning: Third-party actions pinned to SHA with version comment (
# v4.2.0). Org-internal reusable workflows use@main - Harden-Runner:
step-security/harden-runneras first step in every job; preferegress-policy: blockwith allowed-endpoints - Dependabot: Configure
dependabot.ymlwith all ecosystems (composer,npm,github-actions,docker); set up auto-merge workflow for dependency PRs usingpull_request_target - Coverage: Upload via
codecov-action; configurecodecov.ymlwith patch coverage threshold - Duplicate CI prevention: Scope
push:trigger tobranches: [main]whenpull_request:is also present - SLSA provenance: Use
actions/attest-build-provenancewithid-token: writeandattestations: writepermissions; verify withgh attestation verify - Security policy: Create
SECURITY.mdwith vulnerability disclosure process and response SLA (Critical: 7 days, High: 30 days)
Critical Rules
- NEVER interpolate
${{ github.event.* }}or${{ inputs.* }}inrun:blocks (script injection) - NEVER guess action versions -- fetch from GitHub API and verify SHA against tags
- ALWAYS include
https://URLs in badge justifications - ALWAYS configure auto-merge for repos with Dependabot/Renovate
References
| Reference | Use |
|---|---|
references/general.md |
Always |
references/scorecard-playbook.md |
Scorecard optimization |
references/badges-and-workflows.md |
Badge URLs, workflows |
references/mandatory-requirements.md |
Checklist |
references/ci-patterns.md |
CI/CD, hooks |
references/code-review.md |
PR quality |
references/documentation.md |
ADRs, changelogs |
references/slsa-provenance.md |
SLSA Level 3 |
references/signed-releases.md |
Cosign/GPG |
references/openssf-badge-silver.md |
Silver |
references/openssf-badge-gold.md |
Gold |
references/openssf-badge-baseline.md |
OSPS Baseline |
references/harden-runner-guide.md |
Harden-Runner |
references/solo-maintainer-guide.md |
N/A criteria |
Related skills: go-development, github-project, security-audit, git-workflow.
Credits & Attribution
This skill is based on the excellent work by Netresearch DTT GmbH.
Original repository: https://github.com/netresearch/enterprise-readiness-skill
Copyright (c) Netresearch DTT GmbH — Methodology and best practices (MIT / CC-BY-SA-4.0)
Special thanks to Netresearch DTT GmbH for their generous open-source contributions to the TYPO3 community, which helped shape this skill collection. Adapted by webconsulting.at for this skill collection