oss-signal 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -2
- package/README.md +26 -8
- package/action.yml +1 -1
- package/docs/adoption-evidence.md +19 -5
- package/docs/codex-for-oss-application.md +21 -10
- package/docs/codex-for-oss-form-answers.md +94 -0
- package/docs/examples/github-action-workflow.yml +1 -1
- package/docs/examples/github-code-scanning-workflow.yml +2 -2
- package/docs/examples/github-issue-body.md +37 -0
- package/docs/examples/github-url-report.md +1 -1
- package/docs/examples/self-audit.sarif +2 -2
- package/docs/maintainer-playbook.md +11 -3
- package/docs/release-notes/v0.5.0.md +22 -0
- package/docs/release-notes/v0.5.1.md +22 -0
- package/docs/release-process.md +9 -2
- package/docs/self-audit.md +1 -1
- package/package.json +1 -1
- package/src/action.js +6 -3
- package/src/cli.js +8 -4
- package/src/index.js +44 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,11 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
## 0.5.1
|
|
6
|
+
|
|
7
|
+
- Published the Issue-ready output release on a clean tag after release workflow hardening.
|
|
8
|
+
- Guarded automatic npm publishing behind an explicit repository variable.
|
|
9
|
+
|
|
10
|
+
## 0.5.0
|
|
11
|
+
|
|
12
|
+
- Added `--format issue` for generating human-reviewed GitHub Issue bodies from audit findings.
|
|
13
|
+
- Added an issue-output example and maintainer playbook guidance for audit-to-issue workflows.
|
|
7
14
|
|
|
8
15
|
## 0.4.0
|
|
9
16
|
|
|
17
|
+
- Added a maintainer playbook for audit-to-issue, PR, CI gate, and SARIF workflows.
|
|
18
|
+
- Added a documented release process and tag-triggered release workflow with npm dry-run verification.
|
|
19
|
+
|
|
10
20
|
- Added SARIF output for GitHub Code Scanning and other security dashboards.
|
|
11
21
|
- Added Action support for `format: sarif`.
|
|
12
22
|
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
`oss-signal` is a dependency-light CLI for auditing open-source repository maintenance readiness.
|
|
11
11
|
|
|
12
|
-
It checks the files and automation that reduce maintainer load: README, license, contributing guide, security policy, CI, tests, issue templates, pull request templates, Dependabot, and release notes. The output is a score plus concrete next steps in Markdown, JSON, or
|
|
12
|
+
It checks the files and automation that reduce maintainer load: README, license, contributing guide, security policy, CI, tests, issue templates, pull request templates, Dependabot, and release notes. The output is a score plus concrete next steps in Markdown, JSON, SARIF, or a GitHub Issue-ready Markdown body.
|
|
13
13
|
|
|
14
14
|

|
|
15
15
|
|
|
@@ -87,6 +87,12 @@ Generate a report that can be attached to an issue:
|
|
|
87
87
|
oss-signal . --format markdown --output docs/maintainer-readiness.md
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
+
Generate a maintainer-friendly issue body:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
oss-signal platformatic/massimo --format issue --output maintainer-follow-up.md
|
|
94
|
+
```
|
|
95
|
+
|
|
90
96
|
## Checks
|
|
91
97
|
|
|
92
98
|
`oss-signal` currently checks:
|
|
@@ -97,7 +103,7 @@ oss-signal . --format markdown --output docs/maintainer-readiness.md
|
|
|
97
103
|
|
|
98
104
|
See [docs/rules.md](docs/rules.md) for rule details and scoring weights.
|
|
99
105
|
|
|
100
|
-
SARIF output reports failed maintainer-readiness checks as warning-level results. This lets teams upload the audit to code scanning dashboards while keeping the Markdown report available for maintainers.
|
|
106
|
+
SARIF output reports failed maintainer-readiness checks as warning-level results. This lets teams upload the audit to code scanning dashboards while keeping the Markdown report available for maintainers. Issue output turns the same findings into a human-reviewed checklist that can be edited before posting.
|
|
101
107
|
|
|
102
108
|
For GitHub URL audits, `oss-signal` reads the repository file tree through the GitHub API and also uses GitHub's community profile signal when available. This lets it detect organization-level files such as a shared code of conduct.
|
|
103
109
|
|
|
@@ -114,9 +120,9 @@ Summary:
|
|
|
114
120
|
- Total checks: 15
|
|
115
121
|
```
|
|
116
122
|
|
|
117
|
-
See [docs/self-audit.md](docs/self-audit.md) for the full local self-audit report, [docs/examples/github-url-report.md](docs/examples/github-url-report.md) for the GitHub URL audit output, and [docs/examples/self-audit.sarif](docs/examples/self-audit.sarif) for SARIF output.
|
|
123
|
+
See [docs/self-audit.md](docs/self-audit.md) for the full local self-audit report, [docs/examples/github-url-report.md](docs/examples/github-url-report.md) for the GitHub URL audit output, [docs/examples/github-issue-body.md](docs/examples/github-issue-body.md) for issue output, and [docs/examples/self-audit.sarif](docs/examples/self-audit.sarif) for SARIF output.
|
|
118
124
|
|
|
119
|
-
The [Repository health workflow](.github/workflows/repository-health.yml) runs `SalmonPlays/oss-signal@v0.
|
|
125
|
+
The [Repository health workflow](.github/workflows/repository-health.yml) runs `SalmonPlays/oss-signal@v0.5.1`, uploads the Markdown report as an artifact, and uploads SARIF to GitHub Code Scanning on non-PR runs.
|
|
120
126
|
|
|
121
127
|
## Field Audits
|
|
122
128
|
|
|
@@ -130,6 +136,8 @@ See [docs/outreach](docs/outreach) for the reports and draft issue text. Drafts
|
|
|
130
136
|
|
|
131
137
|
For a compact maintainer/adoption summary, see [docs/adoption-evidence.md](docs/adoption-evidence.md).
|
|
132
138
|
|
|
139
|
+
Separate public workflow evidence: [SalmonPlays/oss-signal-adoption-demo](https://github.com/SalmonPlays/oss-signal-adoption-demo) runs `SalmonPlays/oss-signal@v0.4.0` and produced a successful [workflow run](https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26862361229) with a report artifact.
|
|
140
|
+
|
|
133
141
|
## Example Recommendation Output
|
|
134
142
|
|
|
135
143
|
```text
|
|
@@ -157,7 +165,7 @@ oss-signal . --fail-under 80
|
|
|
157
165
|
Add `oss-signal` directly to a GitHub Actions workflow:
|
|
158
166
|
|
|
159
167
|
```yaml
|
|
160
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
168
|
+
- uses: SalmonPlays/oss-signal@v0.5.1
|
|
161
169
|
id: oss-signal
|
|
162
170
|
with:
|
|
163
171
|
fail-under: "80"
|
|
@@ -170,6 +178,16 @@ The Action writes a concise GitHub Actions step summary by default, so reviewers
|
|
|
170
178
|
|
|
171
179
|

|
|
172
180
|
|
|
181
|
+
Generate an editable Issue body from CI:
|
|
182
|
+
|
|
183
|
+
```yaml
|
|
184
|
+
- uses: SalmonPlays/oss-signal@v0.5.1
|
|
185
|
+
with:
|
|
186
|
+
format: issue
|
|
187
|
+
output: maintainer-follow-up.md
|
|
188
|
+
summary: "true"
|
|
189
|
+
```
|
|
190
|
+
|
|
173
191
|
Full workflow example:
|
|
174
192
|
|
|
175
193
|
```yaml
|
|
@@ -185,7 +203,7 @@ jobs:
|
|
|
185
203
|
runs-on: ubuntu-latest
|
|
186
204
|
steps:
|
|
187
205
|
- uses: actions/checkout@v4
|
|
188
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
206
|
+
- uses: SalmonPlays/oss-signal@v0.5.1
|
|
189
207
|
id: oss-signal
|
|
190
208
|
with:
|
|
191
209
|
fail-under: "80"
|
|
@@ -208,7 +226,7 @@ permissions:
|
|
|
208
226
|
|
|
209
227
|
steps:
|
|
210
228
|
- uses: actions/checkout@v4
|
|
211
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
229
|
+
- uses: SalmonPlays/oss-signal@v0.5.1
|
|
212
230
|
with:
|
|
213
231
|
format: sarif
|
|
214
232
|
output: oss-signal.sarif
|
|
@@ -218,7 +236,7 @@ steps:
|
|
|
218
236
|
sarif_file: oss-signal.sarif
|
|
219
237
|
```
|
|
220
238
|
|
|
221
|
-
This repository dogfoods the public Action tag in [Repository health](.github/workflows/repository-health.yml), which runs `SalmonPlays/oss-signal@v0.
|
|
239
|
+
This repository dogfoods the public Action tag in [Repository health](.github/workflows/repository-health.yml), which runs `SalmonPlays/oss-signal@v0.5.1` against the repository, uploads the Markdown report artifact, and publishes SARIF to Code Scanning on non-PR runs.
|
|
222
240
|
|
|
223
241
|
You can also run the CLI directly in CI:
|
|
224
242
|
|
package/action.yml
CHANGED
|
@@ -5,11 +5,13 @@ This page collects the public evidence that `oss-signal` is built for real open-
|
|
|
5
5
|
## Project Links
|
|
6
6
|
|
|
7
7
|
- Repository: https://github.com/SalmonPlays/oss-signal
|
|
8
|
-
- npm package: https://www.npmjs.com/package/oss-signal (`0.
|
|
9
|
-
- GitHub Release: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.
|
|
10
|
-
- GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.
|
|
8
|
+
- npm package: https://www.npmjs.com/package/oss-signal (`0.5.1` latest)
|
|
9
|
+
- GitHub Release: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.5.1
|
|
10
|
+
- GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.5.1
|
|
11
11
|
- GitHub Action metadata: [action.yml](../action.yml)
|
|
12
12
|
- Public dogfood workflow: [.github/workflows/repository-health.yml](../.github/workflows/repository-health.yml)
|
|
13
|
+
- Separate public workflow demo: https://github.com/SalmonPlays/oss-signal-adoption-demo
|
|
14
|
+
- Separate public workflow run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26862361229
|
|
13
15
|
- Self-audit report: [docs/self-audit.md](self-audit.md)
|
|
14
16
|
- SARIF self-audit output: [docs/examples/self-audit.sarif](examples/self-audit.sarif)
|
|
15
17
|
- GitHub URL audit report: [docs/examples/github-url-report.md](examples/github-url-report.md)
|
|
@@ -17,6 +19,7 @@ This page collects the public evidence that `oss-signal` is built for real open-
|
|
|
17
19
|
- Maintainer playbook: [docs/maintainer-playbook.md](maintainer-playbook.md)
|
|
18
20
|
- Release process: [docs/release-process.md](release-process.md)
|
|
19
21
|
- Codex for Open Source application brief: [docs/codex-for-oss-application.md](codex-for-oss-application.md)
|
|
22
|
+
- Codex for Open Source form answers: [docs/codex-for-oss-form-answers.md](codex-for-oss-form-answers.md)
|
|
20
23
|
- Rule reference: [docs/rules.md](rules.md)
|
|
21
24
|
|
|
22
25
|
## Maintainer Use Case
|
|
@@ -32,6 +35,16 @@ It also ships as a GitHub Action, so maintainers can gate repository hygiene in
|
|
|
32
35
|
|
|
33
36
|
The [maintainer playbook](maintainer-playbook.md) documents the end-to-end workflow from audit to issue, pull request, CI gate, and Code Scanning evidence. The [release process](release-process.md) documents pre-release verification, tag consistency, npm publish checks, and post-release smoke tests.
|
|
34
37
|
|
|
38
|
+
## Separate Public Workflow Evidence
|
|
39
|
+
|
|
40
|
+
The public repository https://github.com/SalmonPlays/oss-signal-adoption-demo runs `SalmonPlays/oss-signal@v0.4.0` from a separate workflow file:
|
|
41
|
+
|
|
42
|
+
- Workflow file: https://github.com/SalmonPlays/oss-signal-adoption-demo/blob/main/.github/workflows/oss-signal.yml
|
|
43
|
+
- Successful workflow run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26862361229
|
|
44
|
+
- Artifact: `oss-signal-adoption-demo-report`, containing `oss-signal-report.md` and `oss-signal.sarif`
|
|
45
|
+
|
|
46
|
+
This is not claimed as independent third-party adoption because the repository is owned by `SalmonPlays`. It is evidence that the public `v0.4.0` Action tag works outside the main repository and can publish maintainer-readiness reports from another public workflow.
|
|
47
|
+
|
|
35
48
|
## Public Field Audits And PRs
|
|
36
49
|
|
|
37
50
|
The tool has been used to generate maintainer-readiness reports for public repositories and convert them into respectful cleanup issues:
|
|
@@ -53,16 +66,17 @@ npm run check
|
|
|
53
66
|
npm run audit:github
|
|
54
67
|
node src/cli.js . --format sarif --output docs/examples/self-audit.sarif
|
|
55
68
|
node src/cli.js platformatic/massimo --format json
|
|
56
|
-
|
|
69
|
+
npm exec --yes --package=oss-signal@0.5.1 -- oss-signal SalmonPlays/oss-signal --format json
|
|
57
70
|
```
|
|
58
71
|
|
|
59
|
-
The current repository self-audit score is 100/100, the GitHub community profile health score is 100, and CI verifies the local GitHub Action wrapper. The public `v0.
|
|
72
|
+
The current repository self-audit score is 100/100, the GitHub community profile health score is 100, and CI verifies the local GitHub Action wrapper. The public `v0.5.1` Action tag is used by the repository health workflow for Markdown and SARIF output. The published npm `0.5.1` package has also been executed from a clean temporary directory against the public GitHub repository, returning 100/100 (A).
|
|
60
73
|
|
|
61
74
|
Public CI evidence:
|
|
62
75
|
|
|
63
76
|
- CI workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/ci.yml
|
|
64
77
|
- Repository health workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml
|
|
65
78
|
- CodeQL workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/codeql.yml
|
|
79
|
+
- Separate workflow demo run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26862361229
|
|
66
80
|
|
|
67
81
|
## Boundaries
|
|
68
82
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Codex for Open Source Application Brief
|
|
2
2
|
|
|
3
|
-
Snapshot: 2026-06-
|
|
3
|
+
Snapshot: 2026-06-03T05:11:50Z
|
|
4
4
|
|
|
5
5
|
This document summarizes why `oss-signal` is a fit for OpenAI's Codex for Open Source program. The official program page says open-source maintainers can apply, with emphasis on core maintainers, widely used public projects, and projects that play an important ecosystem role: https://developers.openai.com/community/codex-for-oss
|
|
6
6
|
|
|
@@ -8,12 +8,14 @@ This document summarizes why `oss-signal` is a fit for OpenAI's Codex for Open S
|
|
|
8
8
|
|
|
9
9
|
- Repository: https://github.com/SalmonPlays/oss-signal
|
|
10
10
|
- npm package: https://www.npmjs.com/package/oss-signal
|
|
11
|
-
- GitHub Release: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.
|
|
12
|
-
- GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.
|
|
11
|
+
- GitHub Release: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.5.1
|
|
12
|
+
- GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.5.1
|
|
13
13
|
- CI workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/ci.yml
|
|
14
14
|
- Repository health workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml
|
|
15
15
|
- CodeQL workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/codeql.yml
|
|
16
|
+
- Separate public workflow demo: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26862361229
|
|
16
17
|
- Maintainer evidence: [adoption-evidence.md](adoption-evidence.md)
|
|
18
|
+
- Form answer pack: [codex-for-oss-form-answers.md](codex-for-oss-form-answers.md)
|
|
17
19
|
- Maintainer playbook: [maintainer-playbook.md](maintainer-playbook.md)
|
|
18
20
|
- Release process: [release-process.md](release-process.md)
|
|
19
21
|
|
|
@@ -42,19 +44,26 @@ This project is designed around repeatable maintainer workflows where Codex is u
|
|
|
42
44
|
|
|
43
45
|
The repository currently has:
|
|
44
46
|
|
|
45
|
-
- A published npm package with `0.
|
|
46
|
-
- A published GitHub Release for v0.
|
|
47
|
+
- A published npm package with `0.5.1` as the latest release.
|
|
48
|
+
- A published GitHub Release for v0.5.1 with issue-output release notes and CI usage guidance.
|
|
47
49
|
- A reusable GitHub Action with `score`, `grade`, `failed`, and `report-path` outputs.
|
|
48
50
|
- SARIF output for GitHub Code Scanning integration.
|
|
49
|
-
- A v0.
|
|
50
|
-
- A public dogfood workflow that runs `SalmonPlays/oss-signal@v0.
|
|
51
|
+
- A v0.5.1 GitHub Action tag with step summary, SARIF support, and Issue-ready output.
|
|
52
|
+
- A public dogfood workflow that runs `SalmonPlays/oss-signal@v0.5.1` against the repository, uploads the Markdown report artifact, and uploads SARIF to GitHub Code Scanning on non-PR runs.
|
|
53
|
+
- A separate public workflow demo that runs `SalmonPlays/oss-signal@v0.4.0` from another repository and uploads a report artifact.
|
|
51
54
|
- A maintainer playbook that documents audit, triage, issue, PR, CI, and SARIF workflows.
|
|
52
55
|
- A release process and tag-triggered release workflow that verify package contents and support npm provenance publishing when repository secrets are configured.
|
|
53
56
|
- CI and CodeQL workflows passing on `main`.
|
|
54
57
|
- A local self-audit score of 100/100.
|
|
55
|
-
- A clean-directory smoke test of `
|
|
58
|
+
- A clean-directory smoke test of `npm exec --yes --package=oss-signal@0.5.1 -- oss-signal SalmonPlays/oss-signal --format json`, returning 100/100 (A).
|
|
56
59
|
- Public reports, issues, and PRs created from real repository audits.
|
|
57
60
|
|
|
61
|
+
## Separate Workflow Demo
|
|
62
|
+
|
|
63
|
+
The repository https://github.com/SalmonPlays/oss-signal-adoption-demo runs the public `SalmonPlays/oss-signal@v0.4.0` Action tag from a separate workflow. The successful run at https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26862361229 uploaded an `oss-signal-adoption-demo-report` artifact containing Markdown and SARIF output.
|
|
64
|
+
|
|
65
|
+
This is intentionally described as a separate public workflow demo rather than third-party adoption because the repository is also owned by `SalmonPlays`. It still proves that the published Action tag is consumable outside the main repository.
|
|
66
|
+
|
|
58
67
|
## Field Audits And Follow-Up PRs
|
|
59
68
|
|
|
60
69
|
| Repository | Report | Issue | PR | Status |
|
|
@@ -71,14 +80,16 @@ Recommended application angle:
|
|
|
71
80
|
|
|
72
81
|
`oss-signal` is not yet a widely adopted project, but it is a public OSS maintainer tool built specifically for repeatable Codex-assisted maintenance. The project already has a working CLI, npm distribution, GitHub Action, passing CI/CodeQL, self-audit evidence, and three public field-audit PRs. Codex support would be used to continue auditing repositories, prepare focused maintainer PRs, improve Action automation, and document repeatable OSS maintenance workflows.
|
|
73
82
|
|
|
83
|
+
Prepared official form answers are in [codex-for-oss-form-answers.md](codex-for-oss-form-answers.md). The applicant still needs to fill personal identity fields and their OpenAI Organization ID directly.
|
|
84
|
+
|
|
74
85
|
## Current Gaps
|
|
75
86
|
|
|
76
87
|
- External PRs are open but not yet merged.
|
|
77
88
|
- npm download metrics are still early because the package is newly published.
|
|
78
|
-
- The project needs
|
|
89
|
+
- The project needs independent maintainer-owned repositories using the Action in their own workflows.
|
|
79
90
|
|
|
80
91
|
## Next Evidence To Collect
|
|
81
92
|
|
|
82
93
|
- One or more merged external PRs.
|
|
83
|
-
- A public workflow run in
|
|
94
|
+
- A public workflow run in an independent maintainer-owned repository using `SalmonPlays/oss-signal@v0.5.1`, ideally with SARIF upload enabled.
|
|
84
95
|
- npm download data once the registry starts reporting weekly/monthly counts.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Codex for Open Source Form Answers
|
|
2
|
+
|
|
3
|
+
Snapshot: 2026-06-03T05:11:50Z
|
|
4
|
+
|
|
5
|
+
This page prepares concise answers for the official Codex for Open Source application form: https://openai.com/form/codex-for-oss/
|
|
6
|
+
|
|
7
|
+
The official form asks for personal identity fields that must be filled by the applicant:
|
|
8
|
+
|
|
9
|
+
- First name
|
|
10
|
+
- Last name
|
|
11
|
+
- Email associated with the applicant's ChatGPT account
|
|
12
|
+
- OpenAI Organization ID
|
|
13
|
+
|
|
14
|
+
## First Name
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
Fill manually.
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Last Name
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
Fill manually.
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Email
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
Fill manually with the email associated with the applicant's ChatGPT account.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## GitHub Username
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
SalmonPlays
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## GitHub Repository URL
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
https://github.com/SalmonPlays/oss-signal
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Describe Your Role
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
Primary maintainer
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Why This Repository Qualifies
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
oss-signal is a public OSS maintainer tool for reducing triage and review load. It ships as npm package oss-signal@0.5.1 and GitHub Action SalmonPlays/oss-signal@v0.5.1, supports Markdown/JSON/SARIF/Issue output, passes CI/CodeQL, and has public field-audit issues/PRs plus a separate workflow demo.
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Interest
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
Codex Security
|
|
60
|
+
API credits for my project
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## OpenAI Organization ID
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
Fill manually from https://platform.openai.com/settings/organization/general
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## API Credit Use
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
Use Codex/API credits to run repeatable public repository audits, draft focused maintainer PRs and issue summaries from reports, build organization-level maintainer-readiness inventories, improve release/Code Scanning automation, and keep every public follow-up behind human review before posting or opening PRs.
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Anything Else
|
|
76
|
+
|
|
77
|
+
```text
|
|
78
|
+
The project is early, so I am not overstating adoption. Current evidence includes npm 0.5.1, a published v0.5.1 release, a reusable GitHub Action, self-audit score 100/100, public CodeQL/CI, public field-audit PRs, and a separate public workflow run using SalmonPlays/oss-signal@v0.4.0 with a report artifact.
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Evidence Links
|
|
82
|
+
|
|
83
|
+
- npm package: https://www.npmjs.com/package/oss-signal
|
|
84
|
+
- GitHub Release v0.5.1: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.5.1
|
|
85
|
+
- Main repository health workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml
|
|
86
|
+
- Separate workflow demo repository: https://github.com/SalmonPlays/oss-signal-adoption-demo
|
|
87
|
+
- Separate successful workflow run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26862361229
|
|
88
|
+
- Adoption evidence: https://github.com/SalmonPlays/oss-signal/blob/main/docs/adoption-evidence.md
|
|
89
|
+
|
|
90
|
+
## Character Counts
|
|
91
|
+
|
|
92
|
+
- Why this repository qualifies: 299/500
|
|
93
|
+
- API credit use: 312/500
|
|
94
|
+
- Anything else: 309/500
|
|
@@ -15,13 +15,13 @@ jobs:
|
|
|
15
15
|
runs-on: ubuntu-latest
|
|
16
16
|
steps:
|
|
17
17
|
- uses: actions/checkout@v4
|
|
18
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
18
|
+
- uses: SalmonPlays/oss-signal@v0.5.1
|
|
19
19
|
id: oss-signal
|
|
20
20
|
with:
|
|
21
21
|
fail-under: "80"
|
|
22
22
|
output: oss-signal-report.md
|
|
23
23
|
summary: "true"
|
|
24
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
24
|
+
- uses: SalmonPlays/oss-signal@v0.5.1
|
|
25
25
|
with:
|
|
26
26
|
format: sarif
|
|
27
27
|
output: oss-signal.sarif
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Maintainer Readiness Follow-Up
|
|
2
|
+
|
|
3
|
+
oss-signal scored this repository **64/100 (D)**.
|
|
4
|
+
|
|
5
|
+
Source: GitHub (platformatic/massimo@main)
|
|
6
|
+
Generated: 2026-06-03T05:12:35.488Z
|
|
7
|
+
|
|
8
|
+
## Scope
|
|
9
|
+
|
|
10
|
+
This issue is limited to maintainer-readiness signals: documentation, contribution paths, CI, security reporting, and package hygiene. It does not claim there is a product-code bug.
|
|
11
|
+
|
|
12
|
+
## Suggested Next Steps
|
|
13
|
+
|
|
14
|
+
- [ ] **Security policy** (9 pts): Add SECURITY.md with supported versions, reporting instructions, and response expectations.
|
|
15
|
+
- [ ] **Changelog** (6 pts): Keep CHANGELOG.md with dated release entries and migration notes.
|
|
16
|
+
- [ ] **Issue templates** (5 pts): Add bug report and feature request templates under .github/ISSUE_TEMPLATE/.
|
|
17
|
+
- [ ] **Pull request template** (5 pts): Add .github/PULL_REQUEST_TEMPLATE.md with a short checklist.
|
|
18
|
+
- [ ] **Dependency update automation** (5 pts): Add .github/dependabot.yml for the package ecosystems used in the repository.
|
|
19
|
+
- [ ] **Support policy** (4 pts): Add SUPPORT.md describing where to ask questions, what is in scope, and expected response times.
|
|
20
|
+
- [ ] **Static security analysis** (4 pts): Add a CodeQL or equivalent security scanning workflow.
|
|
21
|
+
|
|
22
|
+
## Why These Checks Matter
|
|
23
|
+
|
|
24
|
+
- **Security policy**: Responsible disclosure needs a private, documented path.
|
|
25
|
+
- **Changelog**: Users need a durable place to understand release impact.
|
|
26
|
+
- **Issue templates**: Issue templates collect the facts maintainers need to reproduce and triage.
|
|
27
|
+
- **Pull request template**: PR templates nudge contributors to include tests, docs, and review context.
|
|
28
|
+
- **Dependency update automation**: Automated dependency updates reduce security and compatibility drift.
|
|
29
|
+
- **Support policy**: Support boundaries help maintainers avoid turning every request into unpaid consulting.
|
|
30
|
+
- **Static security analysis**: Static analysis finds common vulnerability patterns before releases.
|
|
31
|
+
|
|
32
|
+
## Notes For Maintainers
|
|
33
|
+
|
|
34
|
+
If any item is intentionally absent, documenting that decision is a valid outcome. Please close or edit this issue if it does not match the project's priorities.
|
|
35
|
+
|
|
36
|
+
_Generated by oss-signal; review before posting._
|
|
37
|
+
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"tool": {
|
|
7
7
|
"driver": {
|
|
8
8
|
"name": "oss-signal",
|
|
9
|
-
"semanticVersion": "0.
|
|
9
|
+
"semanticVersion": "0.5.1",
|
|
10
10
|
"informationUri": "https://github.com/SalmonPlays/oss-signal",
|
|
11
11
|
"rules": [
|
|
12
12
|
{
|
|
@@ -400,7 +400,7 @@
|
|
|
400
400
|
"score": 100,
|
|
401
401
|
"grade": "A",
|
|
402
402
|
"source": "local",
|
|
403
|
-
"generatedAt": "2026-06-
|
|
403
|
+
"generatedAt": "2026-06-03T05:12:33.963Z"
|
|
404
404
|
}
|
|
405
405
|
}
|
|
406
406
|
]
|
|
@@ -28,6 +28,12 @@ Use SARIF when the findings should appear in Code Scanning:
|
|
|
28
28
|
oss-signal . --format sarif --output oss-signal.sarif
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
+
Generate an issue body that can be reviewed and edited before posting:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
oss-signal owner/repo --format issue --output owner-repo-issue.md
|
|
35
|
+
```
|
|
36
|
+
|
|
31
37
|
## 2. Triage Findings
|
|
32
38
|
|
|
33
39
|
Prioritize missing checks that reduce maintainer load:
|
|
@@ -48,6 +54,8 @@ For an issue, include:
|
|
|
48
54
|
- Why it matters for maintainers.
|
|
49
55
|
- One concrete proposed fix.
|
|
50
56
|
|
|
57
|
+
`--format issue` generates that structure as a Markdown checklist. Review it before posting, remove anything that does not fit the repository, and keep the title specific to the missing maintainer-readiness signal.
|
|
58
|
+
|
|
51
59
|
For a pull request, keep the change narrow. Good PRs add or improve files such as `CONTRIBUTING.md`, `SECURITY.md`, `.github/ISSUE_TEMPLATE/*`, `.github/PULL_REQUEST_TEMPLATE.md`, or a small CI workflow. Avoid broad product-code changes unless the maintainer asked for them.
|
|
52
60
|
|
|
53
61
|
The field-audit examples in [docs/outreach](outreach) show this pattern for public repositories.
|
|
@@ -57,7 +65,7 @@ The field-audit examples in [docs/outreach](outreach) show this pattern for publ
|
|
|
57
65
|
Add the GitHub Action to keep the signal visible:
|
|
58
66
|
|
|
59
67
|
```yaml
|
|
60
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
68
|
+
- uses: SalmonPlays/oss-signal@v0.5.1
|
|
61
69
|
id: oss-signal
|
|
62
70
|
with:
|
|
63
71
|
fail-under: "80"
|
|
@@ -78,7 +86,7 @@ permissions:
|
|
|
78
86
|
|
|
79
87
|
steps:
|
|
80
88
|
- uses: actions/checkout@v4
|
|
81
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
89
|
+
- uses: SalmonPlays/oss-signal@v0.5.1
|
|
82
90
|
with:
|
|
83
91
|
format: sarif
|
|
84
92
|
output: oss-signal.sarif
|
|
@@ -94,7 +102,7 @@ See [docs/examples/github-code-scanning-workflow.yml](examples/github-code-scann
|
|
|
94
102
|
|
|
95
103
|
Useful evidence for maintainers and reviewers:
|
|
96
104
|
|
|
97
|
-
- A public workflow run that uses `SalmonPlays/oss-signal@v0.
|
|
105
|
+
- A public workflow run that uses `SalmonPlays/oss-signal@v0.5.1`.
|
|
98
106
|
- A generated Markdown report attached as an artifact.
|
|
99
107
|
- A SARIF upload in Code Scanning.
|
|
100
108
|
- A small issue or PR that follows from an audit finding.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# oss-signal v0.5.0
|
|
2
|
+
|
|
3
|
+
`oss-signal` v0.5.0 adds Issue-ready output for maintainers who want to turn a deterministic audit into a reviewed GitHub Issue body.
|
|
4
|
+
|
|
5
|
+
## Changes
|
|
6
|
+
|
|
7
|
+
- Added `--format issue` to the CLI.
|
|
8
|
+
- Added `format: issue` support to the GitHub Action.
|
|
9
|
+
- Added an issue-output example at `docs/examples/github-issue-body.md`.
|
|
10
|
+
- Updated the maintainer playbook with audit-to-issue guidance.
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
oss-signal owner/repo --format issue --output maintainer-follow-up.md
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The generated Markdown includes the score, scope, missing maintainer-readiness checks, why each check matters, and a reminder to review before posting.
|
|
19
|
+
|
|
20
|
+
## Maintainer Workflow
|
|
21
|
+
|
|
22
|
+
This release strengthens the audit-to-triage workflow: run a public repository audit, generate a focused issue checklist, edit it for the repository's context, then post or turn it into a narrow PR only when the suggested changes are useful.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# oss-signal v0.5.1
|
|
2
|
+
|
|
3
|
+
`oss-signal` v0.5.1 publishes the Issue-ready maintainer workflow on a clean release tag.
|
|
4
|
+
|
|
5
|
+
## Changes
|
|
6
|
+
|
|
7
|
+
- Includes `--format issue` for generating human-reviewed GitHub Issue bodies from audit findings.
|
|
8
|
+
- Includes `format: issue` support in the GitHub Action.
|
|
9
|
+
- Includes the issue-output example at `docs/examples/github-issue-body.md`.
|
|
10
|
+
- Guards automatic npm publishing behind an explicit `NPM_PUBLISH_ENABLED=true` repository variable.
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
oss-signal owner/repo --format issue --output maintainer-follow-up.md
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The generated Markdown includes the score, scope, missing maintainer-readiness checks, why each check matters, and a reminder to review before posting.
|
|
19
|
+
|
|
20
|
+
## Maintainer Workflow
|
|
21
|
+
|
|
22
|
+
Use this release to run a public repository audit, generate a focused issue checklist, edit it for the repository's context, then post or turn it into a narrow PR only when the suggested changes are useful.
|
package/docs/release-process.md
CHANGED
|
@@ -43,7 +43,7 @@ git push origin main --tags
|
|
|
43
43
|
|
|
44
44
|
Create a GitHub Release for the tag and use the release notes in `docs/release-notes/` when available.
|
|
45
45
|
|
|
46
|
-
For example, `v0.
|
|
46
|
+
For example, `v0.5.1` uses [docs/release-notes/v0.5.1.md](release-notes/v0.5.1.md).
|
|
47
47
|
|
|
48
48
|
## npm Publish
|
|
49
49
|
|
|
@@ -55,7 +55,14 @@ npm publish --access public
|
|
|
55
55
|
|
|
56
56
|
Automation path:
|
|
57
57
|
|
|
58
|
-
The tag-triggered [release workflow](../.github/workflows/release.yml) runs the same checks
|
|
58
|
+
The tag-triggered [release workflow](../.github/workflows/release.yml) runs the same checks and verifies the package with `npm publish --dry-run`.
|
|
59
|
+
|
|
60
|
+
It publishes with provenance only when both release controls are configured:
|
|
61
|
+
|
|
62
|
+
- Repository secret `NPM_TOKEN` contains an npm automation token.
|
|
63
|
+
- Repository variable `NPM_PUBLISH_ENABLED` is set to `true`.
|
|
64
|
+
|
|
65
|
+
If either control is missing, the workflow prints a notice and stops after dry-run verification. This keeps tag verification useful when npm publishing is handled manually.
|
|
59
66
|
|
|
60
67
|
## Post-Release Verification
|
|
61
68
|
|
package/docs/self-audit.md
CHANGED
package/package.json
CHANGED
package/src/action.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { promises as fs } from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import { auditTarget, renderMarkdown, renderSarif } from "./index.js";
|
|
5
|
+
import { auditTarget, renderIssue, renderMarkdown, renderSarif } from "./index.js";
|
|
6
6
|
|
|
7
7
|
const OUTPUT_DELIMITER = "oss_signal_output";
|
|
8
8
|
|
|
@@ -42,8 +42,8 @@ export async function runAction(env = process.env, stdout = process.stdout, stde
|
|
|
42
42
|
|
|
43
43
|
export function parseActionInputs(env = process.env) {
|
|
44
44
|
const format = getInput(env, "format") || "markdown";
|
|
45
|
-
if (!["markdown", "json", "sarif"].includes(format)) {
|
|
46
|
-
throw new Error("format must be markdown, json, or
|
|
45
|
+
if (!["markdown", "json", "sarif", "issue"].includes(format)) {
|
|
46
|
+
throw new Error("format must be markdown, json, sarif, or issue");
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
return {
|
|
@@ -64,6 +64,9 @@ function renderReport(report, format) {
|
|
|
64
64
|
if (format === "sarif") {
|
|
65
65
|
return renderSarif(report);
|
|
66
66
|
}
|
|
67
|
+
if (format === "issue") {
|
|
68
|
+
return renderIssue(report);
|
|
69
|
+
}
|
|
67
70
|
return renderMarkdown(report);
|
|
68
71
|
}
|
|
69
72
|
|
package/src/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { promises as fs } from "node:fs";
|
|
3
|
-
import { auditTarget, renderMarkdown, renderSarif, VERSION } from "./index.js";
|
|
3
|
+
import { auditTarget, renderIssue, renderMarkdown, renderSarif, VERSION } from "./index.js";
|
|
4
4
|
|
|
5
5
|
async function main(argv) {
|
|
6
6
|
const options = parseArgs(argv);
|
|
@@ -85,8 +85,8 @@ function parseArgs(argv) {
|
|
|
85
85
|
if (positionals.length === 1) {
|
|
86
86
|
options.path = positionals[0];
|
|
87
87
|
}
|
|
88
|
-
if (!["markdown", "json", "sarif"].includes(options.format)) {
|
|
89
|
-
throw new Error("--format must be markdown, json, or
|
|
88
|
+
if (!["markdown", "json", "sarif", "issue"].includes(options.format)) {
|
|
89
|
+
throw new Error("--format must be markdown, json, sarif, or issue");
|
|
90
90
|
}
|
|
91
91
|
return options;
|
|
92
92
|
}
|
|
@@ -98,6 +98,9 @@ function renderReport(report, format) {
|
|
|
98
98
|
if (format === "sarif") {
|
|
99
99
|
return renderSarif(report);
|
|
100
100
|
}
|
|
101
|
+
if (format === "issue") {
|
|
102
|
+
return renderIssue(report);
|
|
103
|
+
}
|
|
101
104
|
return renderMarkdown(report);
|
|
102
105
|
}
|
|
103
106
|
|
|
@@ -121,12 +124,13 @@ function helpText() {
|
|
|
121
124
|
return `oss-signal audits open-source repository maintenance readiness.
|
|
122
125
|
|
|
123
126
|
Usage:
|
|
124
|
-
oss-signal [path-or-github-url] [--format markdown|json|sarif] [--output file] [--fail-under score]
|
|
127
|
+
oss-signal [path-or-github-url] [--format markdown|json|sarif|issue] [--output file] [--fail-under score]
|
|
125
128
|
|
|
126
129
|
Examples:
|
|
127
130
|
oss-signal .
|
|
128
131
|
oss-signal https://github.com/SalmonPlays/oss-signal
|
|
129
132
|
oss-signal platformatic/massimo --format json
|
|
133
|
+
oss-signal owner/repo --format issue --output maintainer-follow-up.md
|
|
130
134
|
|
|
131
135
|
Options:
|
|
132
136
|
--format Output format. Defaults to markdown.
|
package/src/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { promises as fs } from "node:fs";
|
|
|
2
2
|
import https from "node:https";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
|
|
5
|
-
export const VERSION = "0.
|
|
5
|
+
export const VERSION = "0.5.1";
|
|
6
6
|
|
|
7
7
|
const SARIF_RULE_LOCATIONS = {
|
|
8
8
|
readme: "README.md",
|
|
@@ -294,6 +294,49 @@ export function renderMarkdown(report) {
|
|
|
294
294
|
return `${lines.join("\n")}\n`;
|
|
295
295
|
}
|
|
296
296
|
|
|
297
|
+
export function renderIssue(report) {
|
|
298
|
+
const lines = [
|
|
299
|
+
"# Maintainer Readiness Follow-Up",
|
|
300
|
+
"",
|
|
301
|
+
`oss-signal scored this repository **${report.score}/100 (${report.grade})**.`,
|
|
302
|
+
"",
|
|
303
|
+
`Source: ${sourceSummary(report.source)}`,
|
|
304
|
+
`Generated: ${report.generatedAt}`,
|
|
305
|
+
"",
|
|
306
|
+
"## Scope",
|
|
307
|
+
"",
|
|
308
|
+
"This issue is limited to maintainer-readiness signals: documentation, contribution paths, CI, security reporting, and package hygiene. It does not claim there is a product-code bug.",
|
|
309
|
+
"",
|
|
310
|
+
"## Suggested Next Steps",
|
|
311
|
+
""
|
|
312
|
+
];
|
|
313
|
+
|
|
314
|
+
if (report.recommendations.length === 0) {
|
|
315
|
+
lines.push("No missing maintainer-readiness checks were found. Keep the report current as the repository evolves.");
|
|
316
|
+
} else {
|
|
317
|
+
for (const recommendation of report.recommendations) {
|
|
318
|
+
lines.push(`- [ ] **${recommendation.label}** (${recommendation.weight} pts): ${recommendation.fix}`);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
lines.push("", "## Why These Checks Matter", "");
|
|
322
|
+
for (const recommendation of report.recommendations) {
|
|
323
|
+
lines.push(`- **${recommendation.label}**: ${recommendation.why}`);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
lines.push(
|
|
328
|
+
"",
|
|
329
|
+
"## Notes For Maintainers",
|
|
330
|
+
"",
|
|
331
|
+
"If any item is intentionally absent, documenting that decision is a valid outcome. Please close or edit this issue if it does not match the project's priorities.",
|
|
332
|
+
"",
|
|
333
|
+
"_Generated by oss-signal; review before posting._",
|
|
334
|
+
""
|
|
335
|
+
);
|
|
336
|
+
|
|
337
|
+
return `${lines.join("\n")}\n`;
|
|
338
|
+
}
|
|
339
|
+
|
|
297
340
|
export function renderSarif(report) {
|
|
298
341
|
const rules = report.checks.map((check) => ({
|
|
299
342
|
id: `oss-signal/${check.id}`,
|