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: read at 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-runner as first step in every job; prefer egress-policy: block with allowed-endpoints
- Dependabot: Configure
dependabot.yml with all ecosystems (composer, npm, github-actions, docker); set up auto-merge workflow for dependency PRs using pull_request_target
- Coverage: Upload via
codecov-action; configure codecov.yml with patch coverage threshold
- Duplicate CI prevention: Scope
push: trigger to branches: [main] when pull_request: is also present
- SLSA provenance: Use
actions/attest-build-provenance with id-token: write and attestations: write permissions; verify with gh attestation verify
- Security policy: Create
SECURITY.md with vulnerability disclosure process and response SLA (Critical: 7 days, High: 30 days)
Critical Rules
- NEVER interpolate
${{ github.event.* }} or ${{ inputs.* }} in run: 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 |
references/npm-pnpm-supply-chain.md |
pnpm |
Related skills: go-development, github-project, security-audit, git-workflow.
1---2name: enterprise-readiness3description: Use when evaluating projects for production or enterprise readiness, implementing supply chain security (SLSA, cosign, SBOMs, pnpm), hardening CI/CD pipelines, establishing quality gates (TYPO3: CI matrix PHP 8.2-8.5 x TYPO3 12.4/13.4/14.3 LTS), pursuing OpenSSF Best Practices Badge (Passing/Silver/Gold) or OSPS Baseline levels, reviewing code quality, writing ADRs, or configuring Git hooks and CI pipelines.4license: (MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.05---67# Enterprise Readiness Assessment89## When to Use1011- Production/enterprise readiness evaluations12- Supply chain security: SLSA provenance, cosign signing, SBOMs13- CI/CD hardening, workflow permissions14- OpenSSF Best Practices (Passing/Silver/Gold), OSPS Baseline (L1/2/3)15- Scorecard optimization (Token-Permissions, Branch-Protection, Pinned-Deps)16- Code review, ADRs, changelogs, SECURITY.md1718## Assessment Workflow19201. **Discovery**: Identify platform, languages, existing CI/CD, dependabot.yml212. **Scoring**: Apply checklists; check Scorecard, badge criteria, coverage223. **Gap Analysis**: List missing controls by severity234. **Implementation**: Apply fixes (SHA-pin actions, harden permissions, add workflows)245. **Verification**: Re-score and compare2526## Mandatory Workflows & Badges2728Coverage 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`.2930## Key Hardening Patterns3132- **Permissions**: Declare `permissions: contents: read` at workflow-level; grant write only per-job33- **SHA pinning**: Third-party actions pinned to SHA with version comment (`# v4.2.0`). Org-internal reusable workflows use `@main`34- **Harden-Runner**: `step-security/harden-runner` as first step in every job; prefer `egress-policy: block` with allowed-endpoints35- **Dependabot**: Configure `dependabot.yml` with all ecosystems (`composer`, `npm`, `github-actions`, `docker`); set up auto-merge workflow for dependency PRs using `pull_request_target`36- **Coverage**: Upload via `codecov-action`; configure `codecov.yml` with patch coverage threshold37- **Duplicate CI prevention**: Scope `push:` trigger to `branches: [main]` when `pull_request:` is also present38- **SLSA provenance**: Use `actions/attest-build-provenance` with `id-token: write` and `attestations: write` permissions; verify with `gh attestation verify`39- **Security policy**: Create `SECURITY.md` with vulnerability disclosure process and response SLA (Critical: 7 days, High: 30 days)4041## Critical Rules4243- **NEVER** interpolate `${{ github.event.* }}` or `${{ inputs.* }}` in `run:` blocks (script injection)44- **NEVER** guess action versions -- fetch from GitHub API and verify SHA against tags45- **ALWAYS** include `https://` URLs in badge justifications46- **ALWAYS** configure auto-merge for repos with Dependabot/Renovate4748## References4950| Reference | Use |51|-----------|-----|52| `references/general.md` | Always |53| `references/scorecard-playbook.md` | Scorecard optimization |54| `references/badges-and-workflows.md` | Badge URLs, workflows |55| `references/mandatory-requirements.md` | Checklist |56| `references/ci-patterns.md` | CI/CD, hooks |57| `references/code-review.md` | PR quality |58| `references/documentation.md` | ADRs, changelogs |59| `references/slsa-provenance.md` | SLSA Level 3 |60| `references/signed-releases.md` | Cosign/GPG |61| `references/openssf-badge-silver.md` | Silver |62| `references/openssf-badge-gold.md` | Gold |63| `references/openssf-badge-baseline.md` | OSPS Baseline |64| `references/harden-runner-guide.md` | Harden-Runner |65| `references/solo-maintainer-guide.md` | N/A criteria |66| `references/npm-pnpm-supply-chain.md` | pnpm |6768Related skills: `go-development`, `github-project`, `security-audit`, `git-workflow`.