oss-signal 0.5.1 → 0.6.3
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 +21 -0
- package/README.md +48 -15
- package/action.yml +8 -5
- package/docs/adoption-evidence.md +56 -17
- package/docs/codex-for-oss-application.md +27 -19
- package/docs/codex-for-oss-form-answers.md +14 -7
- package/docs/examples/github-action-workflow.yml +1 -1
- package/docs/examples/github-code-scanning-workflow.yml +2 -2
- package/docs/examples/github-inventory-workflow.yml +27 -0
- package/docs/examples/github-url-report.md +1 -1
- package/docs/examples/inventory-report.md +14 -0
- package/docs/examples/inventory-targets.txt +5 -0
- package/docs/examples/self-audit.sarif +2 -2
- package/docs/maintainer-playbook.md +21 -3
- package/docs/outreach/README.md +1 -0
- package/docs/outreach/flox-install-flox-action-issue-draft.md +24 -0
- package/docs/outreach/flox-install-flox-action-report.md +45 -0
- package/docs/release-notes/v0.6.0.md +23 -0
- package/docs/release-notes/v0.6.1.md +18 -0
- package/docs/release-notes/v0.6.2.md +17 -0
- package/docs/release-notes/v0.6.3.md +16 -0
- package/docs/release-process.md +14 -8
- package/docs/reviewer-evidence.md +74 -0
- package/docs/self-audit.md +1 -1
- package/package.json +1 -1
- package/src/action.js +112 -15
- package/src/cli.js +79 -11
- package/src/index.js +82 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.6.3
|
|
6
|
+
|
|
7
|
+
- Updated the release workflow to use Node 24 and npm 11.16 for npm Trusted Publishing support.
|
|
8
|
+
- Published through GitHub Actions without an npm OTP.
|
|
9
|
+
|
|
10
|
+
## 0.6.2
|
|
11
|
+
|
|
12
|
+
- Switched the release workflow from token-gated publishing to npm Trusted Publishing with provenance.
|
|
13
|
+
- Removed the repository-variable gate so tag releases can publish through GitHub Actions OIDC without npm OTP.
|
|
14
|
+
|
|
15
|
+
## 0.6.1
|
|
16
|
+
|
|
17
|
+
- Added GitHub Release creation to the tag-triggered release workflow.
|
|
18
|
+
- Published the repository inventory release with a GitHub Release page and npm package verification path.
|
|
19
|
+
|
|
20
|
+
## 0.6.0
|
|
21
|
+
|
|
22
|
+
- Added repository inventory mode for auditing newline-delimited lists of local paths, GitHub URLs, and `owner/repo` shorthands.
|
|
23
|
+
- Added GitHub Action inventory support with step summary output and average-score Action outputs.
|
|
24
|
+
- Added inventory examples, reviewer verification steps, and maintainer playbook guidance.
|
|
25
|
+
|
|
5
26
|
## 0.5.1
|
|
6
27
|
|
|
7
28
|
- Published the Issue-ready output release on a clean tag after release workflow hardening.
|
package/README.md
CHANGED
|
@@ -13,6 +13,18 @@ It checks the files and automation that reduce maintainer load: README, license,
|
|
|
13
13
|
|
|
14
14
|

|
|
15
15
|
|
|
16
|
+
## Maintainer Evidence Snapshot
|
|
17
|
+
|
|
18
|
+
Public evidence for the maintainer workflow is collected in [docs/reviewer-evidence.md](docs/reviewer-evidence.md) and [docs/adoption-evidence.md](docs/adoption-evidence.md).
|
|
19
|
+
|
|
20
|
+
- Published package: [`oss-signal@0.6.3`](https://www.npmjs.com/package/oss-signal), with `latest` pointing at `0.6.3`.
|
|
21
|
+
- Published GitHub Action: [`SalmonPlays/oss-signal@v0.6.3`](https://github.com/SalmonPlays/oss-signal/tree/v0.6.3).
|
|
22
|
+
- Public checks: CI, Repository health, and CodeQL are passing on `main`.
|
|
23
|
+
- Self-audit: this repository scores **100/100 (A)** locally and through GitHub URL mode.
|
|
24
|
+
- Field use: four public maintainer-readiness audits have been turned into four issues and four focused follow-up PRs.
|
|
25
|
+
- Inventory mode: the CLI and Action can audit a newline-delimited list of repositories for organization-level triage.
|
|
26
|
+
- Separate workflow demo: [oss-signal-adoption-demo](https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26883001038) runs the public Action tag and uploads Markdown, SARIF, and Issue-ready artifacts.
|
|
27
|
+
|
|
16
28
|
## Why
|
|
17
29
|
|
|
18
30
|
Open-source projects often fail quietly because the maintainer workflow is undocumented. `oss-signal` gives maintainers a repeatable checklist they can run locally, in CI, or before asking contributors to help.
|
|
@@ -75,6 +87,14 @@ Use JSON in automation:
|
|
|
75
87
|
oss-signal . --format json --fail-under 80
|
|
76
88
|
```
|
|
77
89
|
|
|
90
|
+
Audit multiple repositories from one newline-delimited inventory file:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
oss-signal --inventory docs/examples/inventory-targets.txt --format markdown --output inventory-report.md
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
See [docs/examples/inventory-report.md](docs/examples/inventory-report.md) for a generated inventory report.
|
|
97
|
+
|
|
78
98
|
Write SARIF for GitHub Code Scanning or other dashboards:
|
|
79
99
|
|
|
80
100
|
```bash
|
|
@@ -122,21 +142,22 @@ Summary:
|
|
|
122
142
|
|
|
123
143
|
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.
|
|
124
144
|
|
|
125
|
-
The [Repository health workflow](.github/workflows/repository-health.yml) runs `SalmonPlays/oss-signal@v0.
|
|
145
|
+
The [Repository health workflow](.github/workflows/repository-health.yml) runs `SalmonPlays/oss-signal@v0.6.3`, uploads the Markdown report as an artifact, and uploads SARIF to GitHub Code Scanning on non-PR runs. The [Repository inventory workflow](.github/workflows/repository-inventory.yml) runs the inventory mode from CI and uploads a multi-repository report artifact.
|
|
126
146
|
|
|
127
147
|
## Field Audits
|
|
128
148
|
|
|
129
|
-
`oss-signal` has been run against public repositories to produce maintainer-readiness reports
|
|
149
|
+
`oss-signal` has been run against public repositories to produce maintainer-readiness reports, respectful issue drafts, and focused follow-up PRs:
|
|
130
150
|
|
|
131
|
-
- [platformatic/massimo report](docs/outreach/platformatic-massimo-report.md)
|
|
132
|
-
- [supermarkt/checkjebon report](docs/outreach/supermarkt-checkjebon-report.md)
|
|
133
|
-
- [sammorrisdesign/interactive-feed report](docs/outreach/sammorrisdesign-interactive-feed-report.md)
|
|
151
|
+
- [platformatic/massimo report](docs/outreach/platformatic-massimo-report.md), [issue #159](https://github.com/platformatic/massimo/issues/159), and [PR #160](https://github.com/platformatic/massimo/pull/160)
|
|
152
|
+
- [supermarkt/checkjebon report](docs/outreach/supermarkt-checkjebon-report.md), [issue #22](https://github.com/supermarkt/checkjebon/issues/22), and [PR #23](https://github.com/supermarkt/checkjebon/pull/23)
|
|
153
|
+
- [sammorrisdesign/interactive-feed report](docs/outreach/sammorrisdesign-interactive-feed-report.md), [issue #14](https://github.com/sammorrisdesign/interactive-feed/issues/14), and [PR #15](https://github.com/sammorrisdesign/interactive-feed/pull/15)
|
|
154
|
+
- [flox/install-flox-action report](docs/outreach/flox-install-flox-action-report.md), [issue #204](https://github.com/flox/install-flox-action/issues/204), and [PR #205](https://github.com/flox/install-flox-action/pull/205)
|
|
134
155
|
|
|
135
156
|
See [docs/outreach](docs/outreach) for the reports and draft issue text. Drafts are not posted automatically; maintainers should only receive specific, useful, and respectful suggestions.
|
|
136
157
|
|
|
137
|
-
For a compact maintainer/adoption summary, see [docs/adoption-evidence.md](docs/adoption-evidence.md).
|
|
158
|
+
For a compact maintainer/adoption summary, see [docs/adoption-evidence.md](docs/adoption-evidence.md). For a reviewer-oriented verification path, see [docs/reviewer-evidence.md](docs/reviewer-evidence.md).
|
|
138
159
|
|
|
139
|
-
Separate public workflow evidence: [SalmonPlays/oss-signal-adoption-demo](https://github.com/SalmonPlays/oss-signal-adoption-demo) runs `SalmonPlays/oss-signal@v0.
|
|
160
|
+
Separate public workflow evidence: [SalmonPlays/oss-signal-adoption-demo](https://github.com/SalmonPlays/oss-signal-adoption-demo) runs `SalmonPlays/oss-signal@v0.5.1` and produced a successful [workflow run](https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26883001038) with Markdown, SARIF, and Issue-ready report artifacts.
|
|
140
161
|
|
|
141
162
|
## Example Recommendation Output
|
|
142
163
|
|
|
@@ -165,7 +186,7 @@ oss-signal . --fail-under 80
|
|
|
165
186
|
Add `oss-signal` directly to a GitHub Actions workflow:
|
|
166
187
|
|
|
167
188
|
```yaml
|
|
168
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
189
|
+
- uses: SalmonPlays/oss-signal@v0.6.3
|
|
169
190
|
id: oss-signal
|
|
170
191
|
with:
|
|
171
192
|
fail-under: "80"
|
|
@@ -178,10 +199,22 @@ The Action writes a concise GitHub Actions step summary by default, so reviewers
|
|
|
178
199
|
|
|
179
200
|

|
|
180
201
|
|
|
202
|
+
Run an inventory from CI:
|
|
203
|
+
|
|
204
|
+
```yaml
|
|
205
|
+
- uses: SalmonPlays/oss-signal@v0.6.3
|
|
206
|
+
env:
|
|
207
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
208
|
+
with:
|
|
209
|
+
inventory: docs/examples/inventory-targets.txt
|
|
210
|
+
output: inventory-report.md
|
|
211
|
+
summary: "true"
|
|
212
|
+
```
|
|
213
|
+
|
|
181
214
|
Generate an editable Issue body from CI:
|
|
182
215
|
|
|
183
216
|
```yaml
|
|
184
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
217
|
+
- uses: SalmonPlays/oss-signal@v0.6.3
|
|
185
218
|
with:
|
|
186
219
|
format: issue
|
|
187
220
|
output: maintainer-follow-up.md
|
|
@@ -203,7 +236,7 @@ jobs:
|
|
|
203
236
|
runs-on: ubuntu-latest
|
|
204
237
|
steps:
|
|
205
238
|
- uses: actions/checkout@v4
|
|
206
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
239
|
+
- uses: SalmonPlays/oss-signal@v0.6.3
|
|
207
240
|
id: oss-signal
|
|
208
241
|
with:
|
|
209
242
|
fail-under: "80"
|
|
@@ -215,7 +248,7 @@ jobs:
|
|
|
215
248
|
path: oss-signal-report.md
|
|
216
249
|
```
|
|
217
250
|
|
|
218
|
-
See [docs/examples/github-action-workflow.yml](docs/examples/github-action-workflow.yml) for a copyable workflow and [docs/examples/github-code-scanning-workflow.yml](docs/examples/github-code-scanning-workflow.yml) for a workflow that uploads SARIF to GitHub Code Scanning.
|
|
251
|
+
See [docs/examples/github-action-workflow.yml](docs/examples/github-action-workflow.yml) for a copyable workflow, [docs/examples/github-inventory-workflow.yml](docs/examples/github-inventory-workflow.yml) for an inventory workflow, and [docs/examples/github-code-scanning-workflow.yml](docs/examples/github-code-scanning-workflow.yml) for a workflow that uploads SARIF to GitHub Code Scanning.
|
|
219
252
|
|
|
220
253
|
Upload SARIF to GitHub Code Scanning:
|
|
221
254
|
|
|
@@ -226,7 +259,7 @@ permissions:
|
|
|
226
259
|
|
|
227
260
|
steps:
|
|
228
261
|
- uses: actions/checkout@v4
|
|
229
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
262
|
+
- uses: SalmonPlays/oss-signal@v0.6.3
|
|
230
263
|
with:
|
|
231
264
|
format: sarif
|
|
232
265
|
output: oss-signal.sarif
|
|
@@ -236,7 +269,7 @@ steps:
|
|
|
236
269
|
sarif_file: oss-signal.sarif
|
|
237
270
|
```
|
|
238
271
|
|
|
239
|
-
This repository dogfoods the public Action tag in [Repository health](.github/workflows/repository-health.yml), which runs `SalmonPlays/oss-signal@v0.
|
|
272
|
+
This repository dogfoods the public Action tag in [Repository health](.github/workflows/repository-health.yml), which runs `SalmonPlays/oss-signal@v0.6.3` against the repository, uploads the Markdown report artifact, and publishes SARIF to Code Scanning on non-PR runs.
|
|
240
273
|
|
|
241
274
|
You can also run the CLI directly in CI:
|
|
242
275
|
|
|
@@ -255,11 +288,11 @@ You can also run the CLI directly in CI:
|
|
|
255
288
|
- Ecosystem-specific profiles for Python, Rust, Go, and JavaScript packages
|
|
256
289
|
- Release automation and provenance metadata checks
|
|
257
290
|
- Maintainer score trends over time
|
|
258
|
-
- Organization-level repository inventory
|
|
291
|
+
- Organization-level repository inventory dashboards
|
|
259
292
|
|
|
260
293
|
## Release Process
|
|
261
294
|
|
|
262
|
-
Releases use the checklist in [docs/release-process.md](docs/release-process.md). The repository also includes a tag-triggered [release workflow](.github/workflows/release.yml) that verifies the package,
|
|
295
|
+
Releases use the checklist in [docs/release-process.md](docs/release-process.md). The repository also includes a tag-triggered [release workflow](.github/workflows/release.yml) that verifies the package, creates a GitHub Release, and publishes to npm with Trusted Publishing provenance.
|
|
263
296
|
|
|
264
297
|
## Contributing
|
|
265
298
|
|
package/action.yml
CHANGED
|
@@ -9,8 +9,11 @@ inputs:
|
|
|
9
9
|
description: Local repository path, GitHub URL, or owner/repo shorthand to audit.
|
|
10
10
|
required: false
|
|
11
11
|
default: "."
|
|
12
|
+
inventory:
|
|
13
|
+
description: Newline-delimited file of local paths, GitHub URLs, or owner/repo shorthands to audit as an inventory.
|
|
14
|
+
required: false
|
|
12
15
|
format:
|
|
13
|
-
description: Output format, either markdown, json, sarif, or issue.
|
|
16
|
+
description: Output format, either markdown, json, sarif, or issue. Inventory mode supports markdown or json.
|
|
14
17
|
required: false
|
|
15
18
|
default: markdown
|
|
16
19
|
output:
|
|
@@ -22,7 +25,7 @@ inputs:
|
|
|
22
25
|
required: false
|
|
23
26
|
default: "true"
|
|
24
27
|
fail-under:
|
|
25
|
-
description: Fail the action when the score is below this number.
|
|
28
|
+
description: Fail the action when the score, or any inventory target score, is below this number.
|
|
26
29
|
required: false
|
|
27
30
|
max-files:
|
|
28
31
|
description: Maximum files to inspect.
|
|
@@ -33,11 +36,11 @@ inputs:
|
|
|
33
36
|
required: false
|
|
34
37
|
outputs:
|
|
35
38
|
score:
|
|
36
|
-
description: Numeric maintainer-readiness score.
|
|
39
|
+
description: Numeric maintainer-readiness score, or average score in inventory mode.
|
|
37
40
|
grade:
|
|
38
|
-
description: Letter grade for the maintainer-readiness score.
|
|
41
|
+
description: Letter grade for the maintainer-readiness score, or average grade in inventory mode.
|
|
39
42
|
failed:
|
|
40
|
-
description: Number of failed checks.
|
|
43
|
+
description: Number of failed checks, or total failed checks in inventory mode.
|
|
41
44
|
report-path:
|
|
42
45
|
description: Path to the generated report file, when output is enabled.
|
|
43
46
|
runs:
|
|
@@ -2,21 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
This page collects the public evidence that `oss-signal` is built for real open-source maintainer workflows.
|
|
4
4
|
|
|
5
|
+
Last verified: 2026-06-04T02:42:51Z
|
|
6
|
+
|
|
5
7
|
## Project Links
|
|
6
8
|
|
|
7
9
|
- 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.
|
|
10
|
+
- npm package: https://www.npmjs.com/package/oss-signal (`0.6.3` latest)
|
|
11
|
+
- GitHub Release: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.6.3
|
|
12
|
+
- GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.6.3
|
|
11
13
|
- GitHub Action metadata: [action.yml](../action.yml)
|
|
12
14
|
- Public dogfood workflow: [.github/workflows/repository-health.yml](../.github/workflows/repository-health.yml)
|
|
15
|
+
- Public inventory workflow: [.github/workflows/repository-inventory.yml](../.github/workflows/repository-inventory.yml)
|
|
13
16
|
- 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/
|
|
17
|
+
- Separate public workflow run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26883001038
|
|
15
18
|
- Self-audit report: [docs/self-audit.md](self-audit.md)
|
|
16
19
|
- SARIF self-audit output: [docs/examples/self-audit.sarif](examples/self-audit.sarif)
|
|
17
20
|
- GitHub URL audit report: [docs/examples/github-url-report.md](examples/github-url-report.md)
|
|
18
21
|
- GitHub Action workflow example: [docs/examples/github-action-workflow.yml](examples/github-action-workflow.yml)
|
|
22
|
+
- Inventory target example: [docs/examples/inventory-targets.txt](examples/inventory-targets.txt)
|
|
23
|
+
- Inventory report example: [docs/examples/inventory-report.md](examples/inventory-report.md)
|
|
19
24
|
- Maintainer playbook: [docs/maintainer-playbook.md](maintainer-playbook.md)
|
|
25
|
+
- Reviewer evidence quickstart: [docs/reviewer-evidence.md](reviewer-evidence.md)
|
|
20
26
|
- Release process: [docs/release-process.md](release-process.md)
|
|
21
27
|
- Codex for Open Source application brief: [docs/codex-for-oss-application.md](codex-for-oss-application.md)
|
|
22
28
|
- Codex for Open Source form answers: [docs/codex-for-oss-form-answers.md](codex-for-oss-form-answers.md)
|
|
@@ -30,33 +36,64 @@ The CLI supports two practical modes:
|
|
|
30
36
|
|
|
31
37
|
- Local repository audit for maintainers working in a clone.
|
|
32
38
|
- Public GitHub repository audit for quick triage without cloning.
|
|
39
|
+
- Repository inventory audit for maintainers comparing several repositories at once.
|
|
33
40
|
|
|
34
|
-
It also ships as a GitHub Action, so maintainers can gate repository hygiene in CI, show the result in the GitHub Actions step summary, upload a Markdown report as a workflow artifact, and upload failed maintainer-readiness checks as SARIF for GitHub Code Scanning. This repository dogfoods the public Action tag through the Repository health
|
|
41
|
+
It also ships as a GitHub Action, so maintainers can gate repository hygiene in CI, show the result in the GitHub Actions step summary, upload a Markdown report as a workflow artifact, run inventory reports, and upload failed maintainer-readiness checks as SARIF for GitHub Code Scanning. This repository dogfoods the public Action tag through the Repository health and Repository inventory workflows.
|
|
35
42
|
|
|
36
43
|
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.
|
|
37
44
|
|
|
45
|
+
## Published Package Verification
|
|
46
|
+
|
|
47
|
+
The npm package is publicly available as `oss-signal@0.6.3` with `latest` pointing at `0.6.3`.
|
|
48
|
+
|
|
49
|
+
The npm downloads API returned 356 downloads for both last-week and last-month windows on 2026-06-04. Download counts can lag publication, so this is treated as supporting evidence rather than proof of broad adoption.
|
|
50
|
+
|
|
51
|
+
Clean-directory execution against the public GitHub repository returned:
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"version": "0.6.3",
|
|
56
|
+
"score": 100,
|
|
57
|
+
"grade": "A",
|
|
58
|
+
"source": "github"
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Current public workflow status:
|
|
63
|
+
|
|
64
|
+
- CI: passing
|
|
65
|
+
- Repository health: passing
|
|
66
|
+
- CodeQL: passing
|
|
67
|
+
- Release: passing
|
|
68
|
+
- Separate public workflow demo: passing
|
|
69
|
+
|
|
70
|
+
The npm registry returned `0.6.3` for both the package version and `latest` dist-tag on 2026-06-04T02:42:51Z. The same check returned 356 downloads for the last-week and last-month windows.
|
|
71
|
+
|
|
38
72
|
## Separate Public Workflow Evidence
|
|
39
73
|
|
|
40
|
-
The public repository https://github.com/SalmonPlays/oss-signal-adoption-demo runs `SalmonPlays/oss-signal@v0.
|
|
74
|
+
The public repository https://github.com/SalmonPlays/oss-signal-adoption-demo runs `SalmonPlays/oss-signal@v0.5.1` from a separate workflow file:
|
|
41
75
|
|
|
42
76
|
- 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/
|
|
44
|
-
- Artifact: `oss-signal-adoption-demo-report`, containing `oss-signal-report.md
|
|
77
|
+
- Successful workflow run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26883001038
|
|
78
|
+
- Artifact: `oss-signal-adoption-demo-report`, containing `oss-signal-report.md`, `oss-signal.sarif`, and `maintainer-follow-up.md`
|
|
45
79
|
|
|
46
|
-
This is not claimed as independent third-party adoption because the repository is owned by `SalmonPlays`. It is evidence that the public `v0.
|
|
80
|
+
This is not claimed as independent third-party adoption because the repository is owned by `SalmonPlays`. It is evidence that the public `v0.5.1` Action tag works outside the main repository and can publish Markdown, SARIF, and Issue-ready maintainer-readiness reports from another public workflow.
|
|
47
81
|
|
|
48
82
|
## Public Field Audits And PRs
|
|
49
83
|
|
|
50
84
|
The tool has been used to generate maintainer-readiness reports for public repositories and convert them into respectful cleanup issues:
|
|
51
85
|
|
|
52
|
-
| Repository | Report | Posted issue | Follow-up PR |
|
|
53
|
-
| --- | --- | --- | --- |
|
|
54
|
-
| `platformatic/massimo` | [report](outreach/platformatic-massimo-report.md) | https://github.com/platformatic/massimo/issues/159 | https://github.com/platformatic/massimo/pull/160 |
|
|
55
|
-
| `supermarkt/checkjebon` | [report](outreach/supermarkt-checkjebon-report.md) | https://github.com/supermarkt/checkjebon/issues/22 | https://github.com/supermarkt/checkjebon/pull/23 |
|
|
56
|
-
| `sammorrisdesign/interactive-feed` | [report](outreach/sammorrisdesign-interactive-feed-report.md) | https://github.com/sammorrisdesign/interactive-feed/issues/14 | https://github.com/sammorrisdesign/interactive-feed/pull/15 |
|
|
86
|
+
| Repository | Report | Posted issue | Follow-up PR | Status |
|
|
87
|
+
| --- | --- | --- | --- | --- |
|
|
88
|
+
| `platformatic/massimo` | [report](outreach/platformatic-massimo-report.md) | https://github.com/platformatic/massimo/issues/159 | https://github.com/platformatic/massimo/pull/160 | open, clean |
|
|
89
|
+
| `supermarkt/checkjebon` | [report](outreach/supermarkt-checkjebon-report.md) | https://github.com/supermarkt/checkjebon/issues/22 | https://github.com/supermarkt/checkjebon/pull/23 | open, clean |
|
|
90
|
+
| `sammorrisdesign/interactive-feed` | [report](outreach/sammorrisdesign-interactive-feed-report.md) | https://github.com/sammorrisdesign/interactive-feed/issues/14 | https://github.com/sammorrisdesign/interactive-feed/pull/15 | open |
|
|
91
|
+
| `flox/install-flox-action` | [report](outreach/flox-install-flox-action-report.md) | https://github.com/flox/install-flox-action/issues/204 | https://github.com/flox/install-flox-action/pull/205 | open, checks pending |
|
|
57
92
|
|
|
58
93
|
These issues and pull requests are evidence of the intended maintainer workflow: run a deterministic audit, explain the missing signals, and give maintainers a small set of actionable improvements. Each PR is intentionally limited to documentation or GitHub templates.
|
|
59
94
|
|
|
95
|
+
All four follow-up PRs were still open when checked from GitHub on 2026-06-04T02:42:51Z. They are not claimed as accepted adoption unless a maintainer merges or otherwise endorses them.
|
|
96
|
+
|
|
60
97
|
## Verification Commands
|
|
61
98
|
|
|
62
99
|
From this repository:
|
|
@@ -65,18 +102,20 @@ From this repository:
|
|
|
65
102
|
npm run check
|
|
66
103
|
npm run audit:github
|
|
67
104
|
node src/cli.js . --format sarif --output docs/examples/self-audit.sarif
|
|
105
|
+
node src/cli.js --inventory docs/examples/inventory-targets.txt --format markdown --output docs/examples/inventory-report.md
|
|
68
106
|
node src/cli.js platformatic/massimo --format json
|
|
69
|
-
npm exec --yes --package=oss-signal@0.
|
|
107
|
+
npm exec --yes --package=oss-signal@0.6.3 -- oss-signal SalmonPlays/oss-signal --format json
|
|
70
108
|
```
|
|
71
109
|
|
|
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.
|
|
110
|
+
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.6.3` Action tag is used by the repository health workflow for Markdown and SARIF output. The published npm `0.6.3` package has also been executed from a clean temporary directory against the public GitHub repository, returning 100/100 (A).
|
|
73
111
|
|
|
74
112
|
Public CI evidence:
|
|
75
113
|
|
|
76
114
|
- CI workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/ci.yml
|
|
77
115
|
- Repository health workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml
|
|
78
116
|
- 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/
|
|
117
|
+
- Separate workflow demo run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26883001038
|
|
118
|
+
- Reviewer verification quickstart: [reviewer-evidence.md](reviewer-evidence.md)
|
|
80
119
|
|
|
81
120
|
## Boundaries
|
|
82
121
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Codex for Open Source Application Brief
|
|
2
2
|
|
|
3
|
-
Snapshot: 2026-06-
|
|
3
|
+
Snapshot: 2026-06-04T02:42:51Z
|
|
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,13 +8,15 @@ 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.6.3
|
|
12
|
+
- GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.6.3
|
|
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
|
+
- Repository inventory workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-inventory.yml
|
|
15
16
|
- 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/
|
|
17
|
+
- Separate public workflow demo: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26883001038
|
|
17
18
|
- Maintainer evidence: [adoption-evidence.md](adoption-evidence.md)
|
|
19
|
+
- Reviewer evidence quickstart: [reviewer-evidence.md](reviewer-evidence.md)
|
|
18
20
|
- Form answer pack: [codex-for-oss-form-answers.md](codex-for-oss-form-answers.md)
|
|
19
21
|
- Maintainer playbook: [maintainer-playbook.md](maintainer-playbook.md)
|
|
20
22
|
- Release process: [release-process.md](release-process.md)
|
|
@@ -27,13 +29,14 @@ This document summarizes why `oss-signal` is a fit for OpenAI's Codex for Open S
|
|
|
27
29
|
- CI, tests, issue templates, pull request templates, Dependabot, and CodeQL-style security workflow.
|
|
28
30
|
- Package metadata and lockfile hygiene.
|
|
29
31
|
|
|
30
|
-
The output is a deterministic score plus actionable next steps in Markdown, JSON, or
|
|
32
|
+
The output is a deterministic score plus actionable next steps in Markdown, JSON, SARIF, or an Issue-ready Markdown body. The GitHub Action also writes a workflow step summary so maintainers and reviewers can see the result without downloading an artifact.
|
|
31
33
|
|
|
32
34
|
## Why Codex Helps
|
|
33
35
|
|
|
34
36
|
This project is designed around repeatable maintainer workflows where Codex is useful:
|
|
35
37
|
|
|
36
38
|
- Run audits against public repositories without cloning.
|
|
39
|
+
- Compare several repositories with an inventory report.
|
|
37
40
|
- Convert findings into focused cleanup issues or pull requests.
|
|
38
41
|
- Keep repository hygiene visible in CI.
|
|
39
42
|
- Upload failed maintainer-readiness checks to GitHub Code Scanning through SARIF.
|
|
@@ -44,23 +47,27 @@ This project is designed around repeatable maintainer workflows where Codex is u
|
|
|
44
47
|
|
|
45
48
|
The repository currently has:
|
|
46
49
|
|
|
47
|
-
- A published npm package with `0.
|
|
48
|
-
-
|
|
50
|
+
- A published npm package with `0.6.3` as the latest release.
|
|
51
|
+
- npm download API evidence showing 356 last-week and last-month downloads on 2026-06-04.
|
|
52
|
+
- A published GitHub Release for v0.6.3 with repository inventory release notes and CI usage guidance.
|
|
49
53
|
- A reusable GitHub Action with `score`, `grade`, `failed`, and `report-path` outputs.
|
|
54
|
+
- A repository inventory mode for organization-level maintainer-readiness triage, available in both CLI and GitHub Action form.
|
|
55
|
+
- A clean npm smoke test of `oss-signal@0.6.3` returning version `0.6.3`, score `100`, grade `A`, and source `github`.
|
|
50
56
|
- SARIF output for GitHub Code Scanning integration.
|
|
51
|
-
- A v0.
|
|
52
|
-
- A public dogfood workflow that runs `SalmonPlays/oss-signal@v0.
|
|
53
|
-
- A
|
|
57
|
+
- A v0.6.3 GitHub Action tag with step summary, SARIF support, inventory support, and Issue-ready output.
|
|
58
|
+
- A public dogfood workflow that runs `SalmonPlays/oss-signal@v0.6.3` against the repository, uploads the Markdown report artifact, and uploads SARIF to GitHub Code Scanning on non-PR runs.
|
|
59
|
+
- A public dogfood inventory workflow that runs `SalmonPlays/oss-signal@v0.6.3` against a repository target list and uploads an inventory artifact.
|
|
60
|
+
- A separate public workflow demo that runs `SalmonPlays/oss-signal@v0.5.1` from another repository and uploads Markdown, SARIF, and Issue-ready report artifacts.
|
|
54
61
|
- A maintainer playbook that documents audit, triage, issue, PR, CI, and SARIF workflows.
|
|
55
62
|
- A release process and tag-triggered release workflow that verify package contents and support npm provenance publishing when repository secrets are configured.
|
|
56
|
-
- CI
|
|
63
|
+
- CI, Repository health, CodeQL, and Release workflows passing publicly.
|
|
57
64
|
- A local self-audit score of 100/100.
|
|
58
|
-
- A clean-directory smoke test of `npm exec --yes --package=oss-signal@0.
|
|
59
|
-
- Public reports, issues, and PRs created from real repository audits.
|
|
65
|
+
- A clean-directory smoke test of `npm exec --yes --package=oss-signal@0.6.3 -- oss-signal SalmonPlays/oss-signal --format json`, returning 100/100 (A).
|
|
66
|
+
- Public reports, issues, and PRs created from real repository audits, including four posted field-audit issues and four follow-up PRs.
|
|
60
67
|
|
|
61
68
|
## Separate Workflow Demo
|
|
62
69
|
|
|
63
|
-
The repository https://github.com/SalmonPlays/oss-signal-adoption-demo runs the public `SalmonPlays/oss-signal@v0.
|
|
70
|
+
The repository https://github.com/SalmonPlays/oss-signal-adoption-demo runs the public `SalmonPlays/oss-signal@v0.5.1` Action tag from a separate workflow. The successful run at https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26883001038 uploaded an `oss-signal-adoption-demo-report` artifact containing Markdown, SARIF, and Issue-ready output.
|
|
64
71
|
|
|
65
72
|
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
73
|
|
|
@@ -68,9 +75,10 @@ This is intentionally described as a separate public workflow demo rather than t
|
|
|
68
75
|
|
|
69
76
|
| Repository | Report | Issue | PR | Status |
|
|
70
77
|
| --- | --- | --- | --- | --- |
|
|
71
|
-
| `platformatic/massimo` | [report](outreach/platformatic-massimo-report.md) | https://github.com/platformatic/massimo/issues/159 | https://github.com/platformatic/massimo/pull/160 | open,
|
|
72
|
-
| `supermarkt/checkjebon` | [report](outreach/supermarkt-checkjebon-report.md) | https://github.com/supermarkt/checkjebon/issues/22 | https://github.com/supermarkt/checkjebon/pull/23 | open,
|
|
73
|
-
| `sammorrisdesign/interactive-feed` | [report](outreach/sammorrisdesign-interactive-feed-report.md) | https://github.com/sammorrisdesign/interactive-feed/issues/14 | https://github.com/sammorrisdesign/interactive-feed/pull/15 | open
|
|
78
|
+
| `platformatic/massimo` | [report](outreach/platformatic-massimo-report.md) | https://github.com/platformatic/massimo/issues/159 | https://github.com/platformatic/massimo/pull/160 | open, clean |
|
|
79
|
+
| `supermarkt/checkjebon` | [report](outreach/supermarkt-checkjebon-report.md) | https://github.com/supermarkt/checkjebon/issues/22 | https://github.com/supermarkt/checkjebon/pull/23 | open, clean |
|
|
80
|
+
| `sammorrisdesign/interactive-feed` | [report](outreach/sammorrisdesign-interactive-feed-report.md) | https://github.com/sammorrisdesign/interactive-feed/issues/14 | https://github.com/sammorrisdesign/interactive-feed/pull/15 | open |
|
|
81
|
+
| `flox/install-flox-action` | [report](outreach/flox-install-flox-action-report.md) | https://github.com/flox/install-flox-action/issues/204 | https://github.com/flox/install-flox-action/pull/205 | open, checks pending |
|
|
74
82
|
|
|
75
83
|
These PRs are intentionally small and maintainer-friendly. They add documentation or GitHub templates rather than changing product code.
|
|
76
84
|
|
|
@@ -78,7 +86,7 @@ These PRs are intentionally small and maintainer-friendly. They add documentatio
|
|
|
78
86
|
|
|
79
87
|
Recommended application angle:
|
|
80
88
|
|
|
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
|
|
89
|
+
`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, four public field-audit issues, and four 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.
|
|
82
90
|
|
|
83
91
|
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
92
|
|
|
@@ -91,5 +99,5 @@ Prepared official form answers are in [codex-for-oss-form-answers.md](codex-for-
|
|
|
91
99
|
## Next Evidence To Collect
|
|
92
100
|
|
|
93
101
|
- One or more merged external PRs.
|
|
94
|
-
- A public workflow run in an independent maintainer-owned repository using `SalmonPlays/oss-signal@v0.
|
|
102
|
+
- A public workflow run in an independent maintainer-owned repository using `SalmonPlays/oss-signal@v0.6.3`, ideally with SARIF or inventory upload enabled.
|
|
95
103
|
- npm download data once the registry starts reporting weekly/monthly counts.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Codex for Open Source Form Answers
|
|
2
2
|
|
|
3
|
-
Snapshot: 2026-06-
|
|
3
|
+
Snapshot: 2026-06-04T02:42:51Z
|
|
4
4
|
|
|
5
5
|
This page prepares concise answers for the official Codex for Open Source application form: https://openai.com/form/codex-for-oss/
|
|
6
6
|
|
|
@@ -50,7 +50,7 @@ Primary maintainer
|
|
|
50
50
|
## Why This Repository Qualifies
|
|
51
51
|
|
|
52
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.
|
|
53
|
+
oss-signal is a public OSS maintainer tool for reducing triage and review load. It ships as npm package oss-signal@0.6.3 and GitHub Action SalmonPlays/oss-signal@v0.6.3, supports Markdown/JSON/SARIF/Issue/Inventory output, passes CI/CodeQL/Release, has a 100/100 self-audit, and has four public field-audit issues plus four PRs.
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
## Interest
|
|
@@ -60,6 +60,12 @@ Codex Security
|
|
|
60
60
|
API credits for my project
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
+
## Codex Security Use
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
Use Codex Security to review oss-signal's CLI, GitHub Action, SARIF output, and repository-audit workflow for vulnerabilities before maintainers rely on it in CI. The project analyzes public repository metadata and writes reports, so security coverage helps catch unsafe workflow assumptions, dependency issues, and action-handling risks before field-audit PRs are shared with other OSS maintainers.
|
|
67
|
+
```
|
|
68
|
+
|
|
63
69
|
## OpenAI Organization ID
|
|
64
70
|
|
|
65
71
|
```text
|
|
@@ -75,20 +81,21 @@ Use Codex/API credits to run repeatable public repository audits, draft focused
|
|
|
75
81
|
## Anything Else
|
|
76
82
|
|
|
77
83
|
```text
|
|
78
|
-
The project is early, so I am not overstating adoption. Current evidence includes npm 0.
|
|
84
|
+
The project is early, so I am not overstating adoption. Current evidence includes npm 0.6.3 latest, 356 npm downloads reported by the registry API, a published v0.6.3 release, a reusable GitHub Action with inventory mode, a clean npm smoke test returning 100/A, public CI/Repository health/CodeQL/Release, four field-audit issues, four PRs, and a workflow demo with artifacts.
|
|
79
85
|
```
|
|
80
86
|
|
|
81
87
|
## Evidence Links
|
|
82
88
|
|
|
83
89
|
- npm package: https://www.npmjs.com/package/oss-signal
|
|
84
|
-
- GitHub Release v0.
|
|
90
|
+
- GitHub Release v0.6.3: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.6.3
|
|
85
91
|
- Main repository health workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml
|
|
86
92
|
- 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/
|
|
93
|
+
- Separate successful workflow run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26883001038
|
|
88
94
|
- Adoption evidence: https://github.com/SalmonPlays/oss-signal/blob/main/docs/adoption-evidence.md
|
|
89
95
|
|
|
90
96
|
## Character Counts
|
|
91
97
|
|
|
92
|
-
- Why this repository qualifies:
|
|
98
|
+
- Why this repository qualifies: 328/500
|
|
99
|
+
- Codex Security use: 399/500
|
|
93
100
|
- API credit use: 312/500
|
|
94
|
-
- Anything else:
|
|
101
|
+
- Anything else: 376/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.6.3
|
|
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.6.3
|
|
25
25
|
with:
|
|
26
26
|
format: sarif
|
|
27
27
|
output: oss-signal.sarif
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: Repository inventory
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
schedule:
|
|
6
|
+
- cron: "0 9 * * 1"
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
inventory:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
- uses: SalmonPlays/oss-signal@v0.6.3
|
|
17
|
+
id: oss-signal
|
|
18
|
+
env:
|
|
19
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
20
|
+
with:
|
|
21
|
+
inventory: docs/examples/inventory-targets.txt
|
|
22
|
+
output: inventory-report.md
|
|
23
|
+
summary: "true"
|
|
24
|
+
- uses: actions/upload-artifact@v4
|
|
25
|
+
with:
|
|
26
|
+
name: oss-signal-inventory-report
|
|
27
|
+
path: inventory-report.md
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# OSS Signal Inventory
|
|
2
|
+
|
|
3
|
+
Generated: 2026-06-04T02:42:56.030Z
|
|
4
|
+
Repositories: 3
|
|
5
|
+
Average score: **73/100** (C)
|
|
6
|
+
Score range: 55-100
|
|
7
|
+
Failed checks: 15
|
|
8
|
+
|
|
9
|
+
| Repository | Source | Score | Failed | Top next steps |
|
|
10
|
+
| --- | --- | ---: | ---: | --- |
|
|
11
|
+
| SalmonPlays/oss-signal | GitHub (SalmonPlays/oss-signal@main) | 100/100 (A) | 0 | None |
|
|
12
|
+
| platformatic/massimo | GitHub (platformatic/massimo@main) | 64/100 (D) | 7 | Security policy, Changelog, Issue templates |
|
|
13
|
+
| flox/install-flox-action | GitHub (flox/install-flox-action@main) | 55/100 (F) | 8 | Contributing guide, Security policy, Code of conduct |
|
|
14
|
+
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"tool": {
|
|
7
7
|
"driver": {
|
|
8
8
|
"name": "oss-signal",
|
|
9
|
-
"semanticVersion": "0.
|
|
9
|
+
"semanticVersion": "0.6.3",
|
|
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-04T02:42:52.048Z"
|
|
404
404
|
}
|
|
405
405
|
}
|
|
406
406
|
]
|