|
| 1 | +## ADDED Requirements |
| 2 | + |
| 3 | +### Requirement: Pull request checks for protected main |
| 4 | +The repository SHALL run CI and CodeQL workflows on pull requests targeting `main` so branch-protection rules can require real pre-merge status checks. |
| 5 | + |
| 6 | +#### Scenario: CI runs on pull requests |
| 7 | +- **WHEN** a pull request targets `main` |
| 8 | +- **THEN** `.github/workflows/ci.yml` triggers for that pull request |
| 9 | +- **AND** the workflow remains enabled for direct pushes to `main`. |
| 10 | + |
| 11 | +#### Scenario: CodeQL runs on pull requests |
| 12 | +- **WHEN** a pull request targets `main` |
| 13 | +- **THEN** `.github/workflows/codeql.yml` triggers for that pull request |
| 14 | +- **AND** the scheduled scan remains enabled. |
| 15 | + |
| 16 | +### Requirement: Signed GitHub release assets |
| 17 | +The release workflow SHALL publish signed GitHub release assets for the package tarball in addition to npm provenance. |
| 18 | + |
| 19 | +#### Scenario: Release uploads signed artifacts |
| 20 | +- **WHEN** `.github/workflows/release.yml` runs for a published release |
| 21 | +- **THEN** it builds the npm tarball, generates a SHA256 checksum, creates a Sigstore bundle for the tarball, and uploads those files to the matching GitHub release |
| 22 | +- **AND** the workflow continues to publish to npm with provenance when the version is not already published. |
| 23 | + |
| 24 | +### Requirement: Pinned dependency and update metadata |
| 25 | +The repository SHALL keep supply-chain metadata aligned with stricter Scorecard expectations. |
| 26 | + |
| 27 | +#### Scenario: Package specs stay exact |
| 28 | +- **WHEN** runtime or dev dependencies are declared in `package.json` |
| 29 | +- **THEN** their versions are pinned exactly |
| 30 | +- **AND** `package-lock.json` reflects those exact specifiers. |
| 31 | + |
| 32 | +#### Scenario: Automated update coverage includes npm |
| 33 | +- **WHEN** Dependabot configuration is evaluated |
| 34 | +- **THEN** it schedules updates for both npm dependencies and GitHub Actions. |
| 35 | + |
| 36 | +### Requirement: Security and ownership metadata points at this repository |
| 37 | +Repository security and ownership metadata SHALL reference the live GitGuardex repository surfaces. |
| 38 | + |
| 39 | +#### Scenario: Security reporting points at this repo |
| 40 | +- **WHEN** maintainers or users read `SECURITY.md` |
| 41 | +- **THEN** the private advisory link targets `recodeee/gitguardex`. |
| 42 | + |
| 43 | +#### Scenario: Code owners cover default review paths |
| 44 | +- **WHEN** repository-wide ownership is evaluated |
| 45 | +- **THEN** `.github/CODEOWNERS` defines default owners for all files. |
0 commit comments