oss-signal 0.6.4 → 0.8.0
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 +10 -0
- package/CITATION.cff +19 -0
- package/README.md +73 -22
- package/action.yml +2 -2
- package/docs/adoption-evidence.md +79 -21
- package/docs/adoption-kit.md +102 -0
- package/docs/architecture.md +57 -0
- package/docs/assets/code-scanning-results.svg +22 -0
- package/docs/assets/github-profile-avatar.png +0 -0
- package/docs/assets/oss-signal-banner.svg +1 -1
- package/docs/brand.md +3 -2
- package/docs/codex-for-oss-application.md +34 -24
- package/docs/codex-for-oss-form-answers.md +12 -7
- package/docs/evidence-ledger.md +46 -0
- package/docs/examples/github-action-workflow.yml +2 -2
- package/docs/examples/github-code-scanning-workflow.yml +4 -4
- package/docs/examples/github-inventory-workflow.yml +2 -2
- package/docs/examples/github-issue-body.md +4 -20
- package/docs/examples/github-plan.md +81 -0
- package/docs/examples/github-url-report.json +206 -0
- package/docs/examples/github-url-report.md +1 -1
- package/docs/examples/inventory-report.md +1 -1
- package/docs/examples/maintainer-trial-workflow.yml +24 -0
- package/docs/examples/self-audit.sarif +2 -2
- package/docs/index.md +60 -0
- package/docs/json-output.md +66 -0
- package/docs/maintainer-feedback.md +54 -0
- package/docs/maintainer-playbook.md +18 -4
- package/docs/maintainer-trial.md +111 -0
- package/docs/marketplace.md +44 -0
- package/docs/outreach/README.md +13 -0
- package/docs/outreach/divyesh-5981-signal-oss-issue-draft.md +31 -0
- package/docs/outreach/divyesh-5981-signal-oss-report.md +47 -0
- package/docs/outreach/grovanni-oss-signal-issue-draft.md +27 -0
- package/docs/outreach/grovanni-oss-signal-report.md +45 -0
- package/docs/outreach/neardws-oss-application-pack-builder-issue-draft.md +23 -0
- package/docs/outreach/neardws-oss-application-pack-builder-report.md +50 -0
- package/docs/outreach/noctemlabs-signal-oss-issue-draft.md +26 -0
- package/docs/outreach/noctemlabs-signal-oss-report.md +49 -0
- package/docs/outreach/peer-shortlist-2026-06.md +50 -0
- package/docs/plan-output.md +40 -0
- package/docs/post-submission-update.md +24 -12
- package/docs/release-notes/v0.7.0.md +17 -0
- package/docs/release-notes/v0.8.0.md +18 -0
- package/docs/release-process.md +1 -1
- package/docs/reviewer-evidence.md +65 -8
- package/docs/roadmap.md +36 -0
- package/docs/sarif-code-scanning.md +88 -0
- package/docs/schema/json-output.schema.json +206 -0
- package/docs/security-model.md +57 -0
- package/docs/self-audit.md +1 -1
- package/docs/social-launch.md +151 -0
- package/docs/trust-center.md +73 -0
- package/package.json +4 -3
- package/src/action.js +11 -3
- package/src/cli.js +13 -3
- package/src/index.js +88 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.8.0
|
|
6
|
+
|
|
7
|
+
- Added `--format workflow` for generating a no-fail GitHub Actions trial workflow.
|
|
8
|
+
- Added maintainer feedback intake so neutral or negative third-party responses can improve the rules without being overstated as adoption.
|
|
9
|
+
|
|
10
|
+
## 0.7.0
|
|
11
|
+
|
|
12
|
+
- Added `--format plan` for generating PR-sized maintainer plans with suggested files and acceptance criteria.
|
|
13
|
+
- Added maintainer plan documentation and a GitHub repository plan example.
|
|
14
|
+
|
|
5
15
|
## 0.6.3
|
|
6
16
|
|
|
7
17
|
- Updated the release workflow to use Node 24 and npm 11.16 for npm Trusted Publishing support.
|
package/CITATION.cff
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: "If oss-signal helps your maintainer workflow, please cite the repository."
|
|
3
|
+
title: "oss-signal"
|
|
4
|
+
abstract: "Maintainer-readiness CLI and GitHub Action for OSS triage, CI evidence, inventory reports, SARIF, and issue-ready cleanup."
|
|
5
|
+
authors:
|
|
6
|
+
- family-names: "Oda"
|
|
7
|
+
given-names: "Amon"
|
|
8
|
+
repository-code: "https://github.com/SalmonPlays/oss-signal"
|
|
9
|
+
url: "https://salmonplays.github.io/oss-signal/"
|
|
10
|
+
license: "MIT"
|
|
11
|
+
version: "0.6.4"
|
|
12
|
+
date-released: "2026-06-04"
|
|
13
|
+
keywords:
|
|
14
|
+
- open-source
|
|
15
|
+
- maintainer-tools
|
|
16
|
+
- github-actions
|
|
17
|
+
- repository-health
|
|
18
|
+
- sarif
|
|
19
|
+
- triage
|
package/README.md
CHANGED
|
@@ -6,31 +6,53 @@
|
|
|
6
6
|
|
|
7
7
|
[](https://github.com/SalmonPlays/oss-signal/actions/workflows/ci.yml)
|
|
8
8
|
[](https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml)
|
|
9
|
+
[](https://github.com/SalmonPlays/oss-signal/actions/workflows/scorecard.yml)
|
|
9
10
|
[](https://github.com/SalmonPlays/oss-signal/releases/latest)
|
|
11
|
+
[](https://github.com/marketplace/actions/oss-signal)
|
|
10
12
|
[](https://www.npmjs.com/package/oss-signal)
|
|
11
13
|
[](https://www.npmjs.com/package/oss-signal)
|
|
12
14
|
[](docs/self-audit.md)
|
|
13
15
|
[](docs/reviewer-evidence.md)
|
|
14
16
|
[](LICENSE)
|
|
15
17
|
|
|
16
|
-
`oss-signal` is a dependency-light maintainer-readiness CLI and GitHub Action for OSS projects that need repeatable triage, CI evidence, SARIF, inventory reports,
|
|
18
|
+
`oss-signal` is a dependency-light maintainer-readiness CLI and GitHub Action for OSS projects that need repeatable triage, CI evidence, SARIF, inventory reports, issue-ready cleanup notes, and no-fail workflow trials.
|
|
17
19
|
|
|
18
|
-
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, inventory,
|
|
20
|
+
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, inventory, GitHub Issue-ready Markdown, PR-sized maintainer plan, or no-fail workflow formats.
|
|
19
21
|
|
|
20
22
|

|
|
21
23
|
|
|
22
24
|
## Maintainer Evidence Snapshot
|
|
23
25
|
|
|
24
|
-
Public evidence for the maintainer workflow is collected in [docs/reviewer-evidence.md](docs/reviewer-evidence.md), [docs/adoption-evidence.md](docs/adoption-evidence.md), [docs/post-submission-update.md](docs/post-submission-update.md), and [docs/brand.md](docs/brand.md).
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
- Published
|
|
28
|
-
-
|
|
26
|
+
Public evidence for the maintainer workflow is collected in [docs/index.md](docs/index.md), [docs/evidence-ledger.md](docs/evidence-ledger.md), [docs/trust-center.md](docs/trust-center.md), [docs/reviewer-evidence.md](docs/reviewer-evidence.md), [docs/adoption-evidence.md](docs/adoption-evidence.md), [docs/adoption-kit.md](docs/adoption-kit.md), [docs/maintainer-trial.md](docs/maintainer-trial.md), [docs/maintainer-feedback.md](docs/maintainer-feedback.md), [docs/social-launch.md](docs/social-launch.md), [docs/architecture.md](docs/architecture.md), [docs/security-model.md](docs/security-model.md), [docs/json-output.md](docs/json-output.md), [docs/plan-output.md](docs/plan-output.md), [docs/sarif-code-scanning.md](docs/sarif-code-scanning.md), [docs/roadmap.md](docs/roadmap.md), [docs/post-submission-update.md](docs/post-submission-update.md), and [docs/brand.md](docs/brand.md).
|
|
27
|
+
|
|
28
|
+
- Landing page: https://salmonplays.github.io/oss-signal/
|
|
29
|
+
- Published package: [`oss-signal@0.8.0`](https://www.npmjs.com/package/oss-signal), with `latest` pointing at `0.8.0`.
|
|
30
|
+
- Published GitHub Action: [`SalmonPlays/oss-signal@v0.8.0`](https://github.com/SalmonPlays/oss-signal/tree/v0.8.0).
|
|
31
|
+
- GitHub Marketplace listing: https://github.com/marketplace/actions/oss-signal
|
|
32
|
+
- Trust center: [docs/trust-center.md](docs/trust-center.md)
|
|
33
|
+
- Evidence ledger: [docs/evidence-ledger.md](docs/evidence-ledger.md)
|
|
34
|
+
- Adoption kit: [docs/adoption-kit.md](docs/adoption-kit.md)
|
|
35
|
+
- Maintainer trial: [docs/maintainer-trial.md](docs/maintainer-trial.md)
|
|
36
|
+
- Maintainer feedback: [docs/maintainer-feedback.md](docs/maintainer-feedback.md)
|
|
37
|
+
- Social launch kit: [docs/social-launch.md](docs/social-launch.md)
|
|
38
|
+
- Architecture: [docs/architecture.md](docs/architecture.md)
|
|
39
|
+
- Security model: [docs/security-model.md](docs/security-model.md)
|
|
40
|
+
- JSON output contract: [docs/json-output.md](docs/json-output.md)
|
|
41
|
+
- Maintainer plan output: [docs/plan-output.md](docs/plan-output.md)
|
|
42
|
+
- SARIF Code Scanning walkthrough: [docs/sarif-code-scanning.md](docs/sarif-code-scanning.md)
|
|
43
|
+
- Roadmap: [docs/roadmap.md](docs/roadmap.md)
|
|
44
|
+
- Post-submission version note: the application may reference earlier evidence; `0.8.0` is the current maintained release and is documented in [docs/post-submission-update.md](docs/post-submission-update.md).
|
|
29
45
|
- Public checks: CI, Repository health, and CodeQL are passing on `main`.
|
|
46
|
+
- Security posture: OpenSSF Scorecard is scheduled, CodeQL is active, secret scanning push protection is enabled, Dependabot alerts/security updates/malware alerts are enabled, and private vulnerability reporting is enabled.
|
|
47
|
+
- Branch posture: `main` has branch protection to prevent force pushes and deletions while keeping direct maintainer maintenance possible.
|
|
48
|
+
- Governance posture: [MAINTAINERS.md](MAINTAINERS.md), [GOVERNANCE.md](GOVERNANCE.md), and [.github/CODEOWNERS](.github/CODEOWNERS) define ownership, review routing, and supported change scope.
|
|
49
|
+
- Community route: [Discussion #5](https://github.com/SalmonPlays/oss-signal/discussions/5) is the public maintainer-workflow thread for usage questions and rule feedback.
|
|
30
50
|
- Self-audit: this repository scores **100/100 (A)** locally and through GitHub URL mode.
|
|
31
|
-
- Field use:
|
|
51
|
+
- Field use: seven public maintainer-readiness audits have been turned into six issues and five focused follow-up PRs.
|
|
52
|
+
- Merged external OSS contribution: [icoretech/codex-action PR #24](https://github.com/icoretech/codex-action/pull/24) is a focused Codex Action documentation safety fix.
|
|
53
|
+
- Contributor intake: [good first issues](https://github.com/SalmonPlays/oss-signal/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22) are labeled for small outside PRs.
|
|
32
54
|
- Inventory mode: the CLI and Action can audit a newline-delimited list of repositories for organization-level triage.
|
|
33
|
-
- Separate workflow demo: [oss-signal-adoption-demo](https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/
|
|
55
|
+
- Separate workflow demo: [oss-signal-adoption-demo](https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26993130878) runs the public `v0.7.0` Action tag and uploads Markdown, SARIF, and Issue-ready artifacts.
|
|
34
56
|
|
|
35
57
|
## Why
|
|
36
58
|
|
|
@@ -58,6 +80,8 @@ Try it without installing:
|
|
|
58
80
|
npx oss-signal SalmonPlays/oss-signal
|
|
59
81
|
```
|
|
60
82
|
|
|
83
|
+
Use it from GitHub Marketplace: https://github.com/marketplace/actions/oss-signal
|
|
84
|
+
|
|
61
85
|
For local development:
|
|
62
86
|
|
|
63
87
|
```bash
|
|
@@ -94,6 +118,8 @@ Use JSON in automation:
|
|
|
94
118
|
oss-signal . --format json --fail-under 80
|
|
95
119
|
```
|
|
96
120
|
|
|
121
|
+
See [docs/json-output.md](docs/json-output.md) for the JSON schema and fixture.
|
|
122
|
+
|
|
97
123
|
Audit multiple repositories from one newline-delimited inventory file:
|
|
98
124
|
|
|
99
125
|
```bash
|
|
@@ -108,6 +134,8 @@ Write SARIF for GitHub Code Scanning or other dashboards:
|
|
|
108
134
|
oss-signal . --format sarif --output oss-signal.sarif
|
|
109
135
|
```
|
|
110
136
|
|
|
137
|
+
See [docs/sarif-code-scanning.md](docs/sarif-code-scanning.md) for the Code Scanning upload workflow and expected output.
|
|
138
|
+
|
|
111
139
|
Generate a report that can be attached to an issue:
|
|
112
140
|
|
|
113
141
|
```bash
|
|
@@ -120,6 +148,22 @@ Generate a maintainer-friendly issue body:
|
|
|
120
148
|
oss-signal platformatic/massimo --format issue --output maintainer-follow-up.md
|
|
121
149
|
```
|
|
122
150
|
|
|
151
|
+
Generate a PR-sized maintainer plan:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
oss-signal Grovanni/oss-signal --format plan --output maintainer-plan.md
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
See [docs/plan-output.md](docs/plan-output.md) and [docs/examples/github-plan.md](docs/examples/github-plan.md) for an example.
|
|
158
|
+
|
|
159
|
+
Generate a no-fail GitHub Actions trial workflow:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
oss-signal owner/repo --format workflow --output .github/workflows/oss-signal-trial.yml
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
See [docs/maintainer-trial.md](docs/maintainer-trial.md) and [docs/examples/maintainer-trial-workflow.yml](docs/examples/maintainer-trial-workflow.yml) for the generated workflow.
|
|
166
|
+
|
|
123
167
|
## Checks
|
|
124
168
|
|
|
125
169
|
`oss-signal` currently checks:
|
|
@@ -130,7 +174,7 @@ oss-signal platformatic/massimo --format issue --output maintainer-follow-up.md
|
|
|
130
174
|
|
|
131
175
|
See [docs/rules.md](docs/rules.md) for rule details and scoring weights.
|
|
132
176
|
|
|
133
|
-
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.
|
|
177
|
+
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. Plan output turns the findings into a PR-sized sequence with suggested files and acceptance criteria.
|
|
134
178
|
|
|
135
179
|
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.
|
|
136
180
|
|
|
@@ -147,9 +191,9 @@ Summary:
|
|
|
147
191
|
- Total checks: 15
|
|
148
192
|
```
|
|
149
193
|
|
|
150
|
-
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.
|
|
194
|
+
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, [docs/examples/github-plan.md](docs/examples/github-plan.md) for plan output, [docs/examples/maintainer-trial-workflow.yml](docs/examples/maintainer-trial-workflow.yml) for workflow output, and [docs/examples/self-audit.sarif](docs/examples/self-audit.sarif) for SARIF output.
|
|
151
195
|
|
|
152
|
-
The [Repository health workflow](.github/workflows/repository-health.yml) runs `SalmonPlays/oss-signal@v0.
|
|
196
|
+
The [Repository health workflow](.github/workflows/repository-health.yml) runs `SalmonPlays/oss-signal@v0.8.0`, 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.
|
|
153
197
|
|
|
154
198
|
## Field Audits
|
|
155
199
|
|
|
@@ -159,12 +203,19 @@ The [Repository health workflow](.github/workflows/repository-health.yml) runs `
|
|
|
159
203
|
- [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)
|
|
160
204
|
- [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)
|
|
161
205
|
- [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)
|
|
206
|
+
- [Grovanni/oss-signal report](docs/outreach/grovanni-oss-signal-report.md) and [issue #1](https://github.com/Grovanni/oss-signal/issues/1)
|
|
207
|
+
- [noctemlabs/signal-oss report](docs/outreach/noctemlabs-signal-oss-report.md) and [PR #12](https://github.com/noctemlabs/signal-oss/pull/12)
|
|
208
|
+
- [Divyesh-5981/signal-oss report](docs/outreach/divyesh-5981-signal-oss-report.md) and [issue #5](https://github.com/Divyesh-5981/signal-oss/issues/5)
|
|
162
209
|
|
|
163
210
|
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.
|
|
164
211
|
|
|
212
|
+
Additional prepared outreach candidates are tracked in [docs/outreach/peer-shortlist-2026-06.md](docs/outreach/peer-shortlist-2026-06.md). The shortlist explicitly separates respectful, defensible candidates from low-signal mass outreach.
|
|
213
|
+
|
|
214
|
+
Additional focused external contribution: [icoretech/codex-action PR #24](https://github.com/icoretech/codex-action/pull/24) was merged and updates Codex Action README examples to route generated output through environment variables before printing it from shell steps.
|
|
215
|
+
|
|
165
216
|
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).
|
|
166
217
|
|
|
167
|
-
Separate public workflow evidence: [SalmonPlays/oss-signal-adoption-demo](https://github.com/SalmonPlays/oss-signal-adoption-demo) runs `SalmonPlays/oss-signal@v0.
|
|
218
|
+
Separate public workflow evidence: [SalmonPlays/oss-signal-adoption-demo](https://github.com/SalmonPlays/oss-signal-adoption-demo) runs `SalmonPlays/oss-signal@v0.7.0` and produced a successful [workflow run](https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26993130878) with Markdown, SARIF, and Issue-ready report artifacts.
|
|
168
219
|
|
|
169
220
|
## Example Recommendation Output
|
|
170
221
|
|
|
@@ -193,7 +244,7 @@ oss-signal . --fail-under 80
|
|
|
193
244
|
Add `oss-signal` directly to a GitHub Actions workflow:
|
|
194
245
|
|
|
195
246
|
```yaml
|
|
196
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
247
|
+
- uses: SalmonPlays/oss-signal@v0.8.0
|
|
197
248
|
id: oss-signal
|
|
198
249
|
with:
|
|
199
250
|
fail-under: "80"
|
|
@@ -209,7 +260,7 @@ The Action writes a concise GitHub Actions step summary by default, so reviewers
|
|
|
209
260
|
Run an inventory from CI:
|
|
210
261
|
|
|
211
262
|
```yaml
|
|
212
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
263
|
+
- uses: SalmonPlays/oss-signal@v0.8.0
|
|
213
264
|
env:
|
|
214
265
|
GITHUB_TOKEN: ${{ github.token }}
|
|
215
266
|
with:
|
|
@@ -221,7 +272,7 @@ Run an inventory from CI:
|
|
|
221
272
|
Generate an editable Issue body from CI:
|
|
222
273
|
|
|
223
274
|
```yaml
|
|
224
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
275
|
+
- uses: SalmonPlays/oss-signal@v0.8.0
|
|
225
276
|
with:
|
|
226
277
|
format: issue
|
|
227
278
|
output: maintainer-follow-up.md
|
|
@@ -242,8 +293,8 @@ jobs:
|
|
|
242
293
|
oss-signal:
|
|
243
294
|
runs-on: ubuntu-latest
|
|
244
295
|
steps:
|
|
245
|
-
- uses: actions/checkout@
|
|
246
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
296
|
+
- uses: actions/checkout@v5
|
|
297
|
+
- uses: SalmonPlays/oss-signal@v0.8.0
|
|
247
298
|
id: oss-signal
|
|
248
299
|
with:
|
|
249
300
|
fail-under: "80"
|
|
@@ -265,18 +316,18 @@ permissions:
|
|
|
265
316
|
security-events: write
|
|
266
317
|
|
|
267
318
|
steps:
|
|
268
|
-
- uses: actions/checkout@
|
|
269
|
-
- uses: SalmonPlays/oss-signal@v0.
|
|
319
|
+
- uses: actions/checkout@v5
|
|
320
|
+
- uses: SalmonPlays/oss-signal@v0.8.0
|
|
270
321
|
with:
|
|
271
322
|
format: sarif
|
|
272
323
|
output: oss-signal.sarif
|
|
273
324
|
summary: "true"
|
|
274
|
-
- uses: github/codeql-action/upload-sarif@
|
|
325
|
+
- uses: github/codeql-action/upload-sarif@v4
|
|
275
326
|
with:
|
|
276
327
|
sarif_file: oss-signal.sarif
|
|
277
328
|
```
|
|
278
329
|
|
|
279
|
-
This repository dogfoods the public Action tag in [Repository health](.github/workflows/repository-health.yml), which runs `SalmonPlays/oss-signal@v0.
|
|
330
|
+
This repository dogfoods the public Action tag in [Repository health](.github/workflows/repository-health.yml), which runs `SalmonPlays/oss-signal@v0.8.0` against the repository, uploads the Markdown report artifact, and publishes SARIF to Code Scanning on non-PR runs.
|
|
280
331
|
|
|
281
332
|
You can also run the CLI directly in CI:
|
|
282
333
|
|
package/action.yml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: oss-signal
|
|
2
|
-
description: Audit OSS maintainer readiness and produce CI evidence, SARIF, inventory reports,
|
|
2
|
+
description: Audit OSS maintainer readiness and produce CI evidence, SARIF, inventory reports, issue-ready cleanup notes, and workflow trials.
|
|
3
3
|
author: SalmonPlays
|
|
4
4
|
branding:
|
|
5
5
|
icon: shield
|
|
@@ -13,7 +13,7 @@ inputs:
|
|
|
13
13
|
description: Newline-delimited file of local paths, GitHub URLs, or owner/repo shorthands to audit as an inventory.
|
|
14
14
|
required: false
|
|
15
15
|
format:
|
|
16
|
-
description: Output format, either markdown, json, sarif, or
|
|
16
|
+
description: Output format, either markdown, json, sarif, issue, plan, or workflow. Inventory mode supports markdown or json.
|
|
17
17
|
required: false
|
|
18
18
|
default: markdown
|
|
19
19
|
output:
|
|
@@ -2,19 +2,28 @@
|
|
|
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-
|
|
5
|
+
Last verified: 2026-06-05T09:57:04Z
|
|
6
6
|
|
|
7
7
|
## Project Links
|
|
8
8
|
|
|
9
9
|
- Repository: https://github.com/SalmonPlays/oss-signal
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
- GitHub
|
|
10
|
+
- GitHub Pages landing page: https://salmonplays.github.io/oss-signal/
|
|
11
|
+
- npm package: https://www.npmjs.com/package/oss-signal (`0.8.0` latest)
|
|
12
|
+
- GitHub Release: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.8.0
|
|
13
|
+
- GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.8.0
|
|
14
|
+
- GitHub Marketplace listing: https://github.com/marketplace/actions/oss-signal
|
|
13
15
|
- GitHub Action metadata: [action.yml](../action.yml)
|
|
14
16
|
- Public dogfood workflow: [.github/workflows/repository-health.yml](../.github/workflows/repository-health.yml)
|
|
15
17
|
- Public inventory workflow: [.github/workflows/repository-inventory.yml](../.github/workflows/repository-inventory.yml)
|
|
18
|
+
- OpenSSF Scorecard workflow: [.github/workflows/scorecard.yml](../.github/workflows/scorecard.yml)
|
|
19
|
+
- Maintainers: [MAINTAINERS.md](../MAINTAINERS.md)
|
|
20
|
+
- Governance: [GOVERNANCE.md](../GOVERNANCE.md)
|
|
21
|
+
- CODEOWNERS: [.github/CODEOWNERS](../.github/CODEOWNERS)
|
|
22
|
+
- Maintainer workflow Discussion: https://github.com/SalmonPlays/oss-signal/discussions/5
|
|
23
|
+
- Launch announcement Discussion: https://github.com/SalmonPlays/oss-signal/discussions/13
|
|
24
|
+
- Launch X post: https://x.com/paopaopaolin/status/2062710560857489698
|
|
16
25
|
- Separate public workflow demo: https://github.com/SalmonPlays/oss-signal-adoption-demo
|
|
17
|
-
- Separate public workflow run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/
|
|
26
|
+
- Separate public workflow run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26993130878
|
|
18
27
|
- Self-audit report: [docs/self-audit.md](self-audit.md)
|
|
19
28
|
- SARIF self-audit output: [docs/examples/self-audit.sarif](examples/self-audit.sarif)
|
|
20
29
|
- GitHub URL audit report: [docs/examples/github-url-report.md](examples/github-url-report.md)
|
|
@@ -22,8 +31,20 @@ Last verified: 2026-06-04T03:01:28Z
|
|
|
22
31
|
- Inventory target example: [docs/examples/inventory-targets.txt](examples/inventory-targets.txt)
|
|
23
32
|
- Inventory report example: [docs/examples/inventory-report.md](examples/inventory-report.md)
|
|
24
33
|
- Brand assets and GitHub settings copy: [docs/brand.md](brand.md)
|
|
34
|
+
- GitHub Pages landing page source: [docs/index.md](index.md)
|
|
35
|
+
- GitHub Marketplace publishing checklist: [docs/marketplace.md](marketplace.md)
|
|
36
|
+
- Maintainer trial: [docs/maintainer-trial.md](maintainer-trial.md)
|
|
37
|
+
- Maintainer feedback: [docs/maintainer-feedback.md](maintainer-feedback.md)
|
|
25
38
|
- Maintainer playbook: [docs/maintainer-playbook.md](maintainer-playbook.md)
|
|
39
|
+
- Trust center: [docs/trust-center.md](trust-center.md)
|
|
40
|
+
- Adoption kit: [docs/adoption-kit.md](adoption-kit.md)
|
|
41
|
+
- Architecture: [docs/architecture.md](architecture.md)
|
|
42
|
+
- Security model: [docs/security-model.md](security-model.md)
|
|
43
|
+
- JSON output contract: [docs/json-output.md](json-output.md)
|
|
44
|
+
- SARIF Code Scanning walkthrough: [docs/sarif-code-scanning.md](sarif-code-scanning.md)
|
|
45
|
+
- Roadmap: [docs/roadmap.md](roadmap.md)
|
|
26
46
|
- Reviewer evidence quickstart: [docs/reviewer-evidence.md](reviewer-evidence.md)
|
|
47
|
+
- Evidence ledger: [docs/evidence-ledger.md](evidence-ledger.md)
|
|
27
48
|
- Post-submission update: [docs/post-submission-update.md](post-submission-update.md)
|
|
28
49
|
- Release process: [docs/release-process.md](release-process.md)
|
|
29
50
|
- Codex for Open Source application brief: [docs/codex-for-oss-application.md](codex-for-oss-application.md)
|
|
@@ -48,15 +69,15 @@ The [post-submission update](post-submission-update.md) records why the current
|
|
|
48
69
|
|
|
49
70
|
## Published Package Verification
|
|
50
71
|
|
|
51
|
-
The npm package is publicly available as `oss-signal@0.
|
|
72
|
+
The npm package is publicly available as `oss-signal@0.8.0` with `latest` pointing at `0.8.0`.
|
|
52
73
|
|
|
53
|
-
The npm downloads API returned 356 downloads for both last-week and last-month windows on 2026-06-
|
|
74
|
+
The npm downloads API returned 356 downloads for both last-week and last-month windows on 2026-06-05. Download counts can lag publication, so this is treated as supporting evidence rather than proof of broad adoption.
|
|
54
75
|
|
|
55
76
|
Clean-directory execution against the public GitHub repository returned:
|
|
56
77
|
|
|
57
78
|
```json
|
|
58
79
|
{
|
|
59
|
-
"version": "0.
|
|
80
|
+
"version": "0.8.0",
|
|
60
81
|
"score": 100,
|
|
61
82
|
"grade": "A",
|
|
62
83
|
"source": "github"
|
|
@@ -69,20 +90,29 @@ Current public workflow status:
|
|
|
69
90
|
- Repository health: passing
|
|
70
91
|
- Repository inventory: passing
|
|
71
92
|
- CodeQL: passing
|
|
93
|
+
- OpenSSF Scorecard: configured on `main` pushes and a weekly schedule, with JSON artifact output and public Scorecard publishing
|
|
72
94
|
- Release: passing
|
|
95
|
+
- GitHub Pages deployment: passing, with the repository homepage set to https://salmonplays.github.io/oss-signal/
|
|
96
|
+
- GitHub Marketplace listing: published, with `v0.8.0` available as the current Action tag
|
|
97
|
+
- GitHub issue forms: adoption report, trial feedback, and maintainer audit report forms are available for structured public evidence intake
|
|
98
|
+
- GitHub citation metadata: `CITATION.cff` is present for the repository citation UI
|
|
99
|
+
- Automation contract: JSON schema and fixture are documented for `--format json`
|
|
100
|
+
- Code Scanning walkthrough: SARIF upload permissions, expected warnings, fixture, and output example are documented
|
|
101
|
+
- GitHub repository hardening: `main` branch protection, private vulnerability reporting, dependency graph, automatic dependency submission, Dependabot alerts/security updates/grouped updates/malware alerts, secret scanning, and push protection are enabled
|
|
102
|
+
- Maintainer workflow Discussion: published
|
|
73
103
|
- Separate public workflow demo: passing
|
|
74
104
|
|
|
75
|
-
The npm registry returned `0.
|
|
105
|
+
The npm registry returned `0.8.0` for both the package version and `latest` dist-tag on 2026-06-05T09:57:04Z. A clean install smoke test returned version `0.8.0`, score `100`, grade `A`, and source `github`. The 2026-06-05 download check returned 356 downloads for the last-week and last-month windows.
|
|
76
106
|
|
|
77
107
|
## Separate Public Workflow Evidence
|
|
78
108
|
|
|
79
|
-
The public repository https://github.com/SalmonPlays/oss-signal-adoption-demo runs `SalmonPlays/oss-signal@v0.
|
|
109
|
+
The public repository https://github.com/SalmonPlays/oss-signal-adoption-demo runs `SalmonPlays/oss-signal@v0.7.0` from a separate workflow file:
|
|
80
110
|
|
|
81
111
|
- Workflow file: https://github.com/SalmonPlays/oss-signal-adoption-demo/blob/main/.github/workflows/oss-signal.yml
|
|
82
|
-
- Successful workflow run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/
|
|
112
|
+
- Successful workflow run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26993130878
|
|
83
113
|
- Artifact: `oss-signal-adoption-demo-report`, containing `oss-signal-report.md`, `oss-signal.sarif`, and `maintainer-follow-up.md`
|
|
84
114
|
|
|
85
|
-
This is not claimed as independent third-party adoption because the repository is owned by `SalmonPlays`. It is evidence that
|
|
115
|
+
This is not claimed as independent third-party adoption because the repository is owned by `SalmonPlays`. It is evidence that a public Action tag works outside the main repository and can publish Markdown, SARIF, and Issue-ready maintainer-readiness reports from another public workflow. The demo workflow is refreshed after each release when the new tag is available.
|
|
86
116
|
|
|
87
117
|
## Public Field Audits And PRs
|
|
88
118
|
|
|
@@ -90,14 +120,40 @@ The tool has been used to generate maintainer-readiness reports for public repos
|
|
|
90
120
|
|
|
91
121
|
| Repository | Report | Posted issue | Follow-up PR | Status |
|
|
92
122
|
| --- | --- | --- | --- | --- |
|
|
93
|
-
| `platformatic/massimo` | [report](outreach/platformatic-massimo-report.md) | https://github.com/platformatic/massimo/issues/159 | https://github.com/platformatic/massimo/pull/160 | open,
|
|
94
|
-
| `supermarkt/checkjebon` | [report](outreach/supermarkt-checkjebon-report.md) | https://github.com/supermarkt/checkjebon/issues/22 | https://github.com/supermarkt/checkjebon/pull/23 | open,
|
|
95
|
-
| `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 |
|
|
96
|
-
| `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,
|
|
123
|
+
| `platformatic/massimo` | [report](outreach/platformatic-massimo-report.md) | https://github.com/platformatic/massimo/issues/159 | https://github.com/platformatic/massimo/pull/160 | open, mergeable |
|
|
124
|
+
| `supermarkt/checkjebon` | [report](outreach/supermarkt-checkjebon-report.md) | https://github.com/supermarkt/checkjebon/issues/22 | https://github.com/supermarkt/checkjebon/pull/23 | open, mergeable |
|
|
125
|
+
| `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, mergeable |
|
|
126
|
+
| `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, mergeable |
|
|
127
|
+
| `Grovanni/oss-signal` | [report](outreach/grovanni-oss-signal-report.md) | https://github.com/Grovanni/oss-signal/issues/1 | N/A | open |
|
|
128
|
+
| `noctemlabs/signal-oss` | [report](outreach/noctemlabs-signal-oss-report.md) | N/A | https://github.com/noctemlabs/signal-oss/pull/12 | open, mergeable |
|
|
129
|
+
| `Divyesh-5981/signal-oss` | [report](outreach/divyesh-5981-signal-oss-report.md) | https://github.com/Divyesh-5981/signal-oss/issues/5 | N/A | open |
|
|
97
130
|
|
|
98
|
-
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
|
|
131
|
+
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, GitHub templates, or a minimal CI workflow.
|
|
99
132
|
|
|
100
|
-
|
|
133
|
+
Prepared but not yet posted outreach candidates are tracked separately in [outreach/peer-shortlist-2026-06.md](outreach/peer-shortlist-2026-06.md) and [outreach](outreach). This prevents candidate research from being overstated as real external maintainer engagement.
|
|
134
|
+
|
|
135
|
+
The workflow now includes [plan-output.md](plan-output.md), which converts audit findings into a PR-sized sequence before a contributor posts externally. The example [examples/github-plan.md](examples/github-plan.md) uses the `Grovanni/oss-signal` field audit and shows suggested files plus acceptance criteria.
|
|
136
|
+
|
|
137
|
+
Additional focused external contribution:
|
|
138
|
+
|
|
139
|
+
- `icoretech/codex-action`: https://github.com/icoretech/codex-action/pull/24 was merged on 2026-06-04 and updates Codex Action README examples so generated output is routed through environment variables before shell printing. The maintainer merge comment is public at https://github.com/icoretech/codex-action/pull/24#issuecomment-4623923361.
|
|
140
|
+
|
|
141
|
+
The five field-audit follow-up PRs were still open when checked from GitHub on 2026-06-05T09:57:04Z. The Divyesh issue was posted on 2026-06-05T04:18:46Z and is not claimed as adoption unless the maintainer replies or acts. Open PRs are not claimed as accepted adoption unless a maintainer merges, replies, or otherwise endorses them.
|
|
142
|
+
|
|
143
|
+
## Contributor Intake
|
|
144
|
+
|
|
145
|
+
The project now has labeled good-first-issue routes for outside contributors:
|
|
146
|
+
|
|
147
|
+
- https://github.com/SalmonPlays/oss-signal/issues/6
|
|
148
|
+
- https://github.com/SalmonPlays/oss-signal/issues/7
|
|
149
|
+
|
|
150
|
+
The repository also includes a GitHub Discussions category form for structured rule feedback, Action usage questions, and maintainer workflow adoption notes. The issue templates include adoption, trial-feedback, and maintainer-audit forms so users can share workflow-run evidence, neutral maintainer feedback, or report discussion without inventing the format.
|
|
151
|
+
|
|
152
|
+
Current public roadmap evidence:
|
|
153
|
+
|
|
154
|
+
- https://github.com/SalmonPlays/oss-signal/issues/8 tracks the first independent public workflow run or maintainer acknowledgement.
|
|
155
|
+
- https://github.com/SalmonPlays/oss-signal/issues/9 was closed as completed after adding [json-output.md](json-output.md), the JSON schema, fixture, and reviewer links.
|
|
156
|
+
- https://github.com/SalmonPlays/oss-signal/issues/10 was closed as completed after adding [sarif-code-scanning.md](sarif-code-scanning.md), the Code Scanning output example, and reviewer links.
|
|
101
157
|
|
|
102
158
|
## Verification Commands
|
|
103
159
|
|
|
@@ -109,17 +165,19 @@ npm run audit:github
|
|
|
109
165
|
node src/cli.js . --format sarif --output docs/examples/self-audit.sarif
|
|
110
166
|
node src/cli.js --inventory docs/examples/inventory-targets.txt --format markdown --output docs/examples/inventory-report.md
|
|
111
167
|
node src/cli.js platformatic/massimo --format json
|
|
112
|
-
npm exec --yes --package=oss-signal@0.
|
|
168
|
+
npm exec --yes --package=oss-signal@0.8.0 -- oss-signal SalmonPlays/oss-signal --format json
|
|
113
169
|
```
|
|
114
170
|
|
|
115
|
-
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.
|
|
171
|
+
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.8.0` Action tag is used by the repository health workflow for Markdown and SARIF output. The published npm `0.8.0` package has also been executed from a clean temporary directory against the public GitHub repository, returning 100/100 (A).
|
|
116
172
|
|
|
117
173
|
Public CI evidence:
|
|
118
174
|
|
|
119
175
|
- CI workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/ci.yml
|
|
120
176
|
- Repository health workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml
|
|
121
177
|
- CodeQL workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/codeql.yml
|
|
122
|
-
-
|
|
178
|
+
- OpenSSF Scorecard workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/scorecard.yml
|
|
179
|
+
- Maintainer workflow Discussion: https://github.com/SalmonPlays/oss-signal/discussions/5
|
|
180
|
+
- Separate workflow demo run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26993130878
|
|
123
181
|
- Reviewer verification quickstart: [reviewer-evidence.md](reviewer-evidence.md)
|
|
124
182
|
|
|
125
183
|
## Boundaries
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Adoption Kit
|
|
2
|
+
|
|
3
|
+
This page gives maintainers a copy-paste path for trying `oss-signal` and leaving useful public evidence.
|
|
4
|
+
|
|
5
|
+
For a first trial, use the no-fail workflow in [maintainer-trial.md](maintainer-trial.md). It publishes a report without gating CI.
|
|
6
|
+
|
|
7
|
+
## Try The CLI
|
|
8
|
+
|
|
9
|
+
Run against a public repository without cloning:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm exec --yes --package=oss-signal@0.8.0 -- oss-signal owner/repo --format markdown --output oss-signal-report.md
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Run against the current checkout:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx oss-signal . --format markdown --output oss-signal-report.md
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Generate a human-reviewed issue body:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx oss-signal owner/repo --format issue --output maintainer-follow-up.md
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Generate a no-fail trial workflow:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx oss-signal owner/repo --format workflow --output .github/workflows/oss-signal-trial.yml
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Add The GitHub Action
|
|
34
|
+
|
|
35
|
+
This example gates CI with `fail-under`. For a first trial in another maintainer's repository, start with [examples/maintainer-trial-workflow.yml](examples/maintainer-trial-workflow.yml) instead.
|
|
36
|
+
|
|
37
|
+
```yaml
|
|
38
|
+
name: Repository health
|
|
39
|
+
|
|
40
|
+
on:
|
|
41
|
+
pull_request:
|
|
42
|
+
push:
|
|
43
|
+
branches: [main]
|
|
44
|
+
|
|
45
|
+
permissions:
|
|
46
|
+
contents: read
|
|
47
|
+
|
|
48
|
+
jobs:
|
|
49
|
+
oss-signal:
|
|
50
|
+
runs-on: ubuntu-latest
|
|
51
|
+
steps:
|
|
52
|
+
- uses: actions/checkout@v4
|
|
53
|
+
- uses: SalmonPlays/oss-signal@v0.8.0
|
|
54
|
+
id: oss-signal
|
|
55
|
+
with:
|
|
56
|
+
fail-under: "80"
|
|
57
|
+
output: oss-signal-report.md
|
|
58
|
+
summary: "true"
|
|
59
|
+
- uses: actions/upload-artifact@v4
|
|
60
|
+
with:
|
|
61
|
+
name: oss-signal-report
|
|
62
|
+
path: oss-signal-report.md
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Add SARIF To Code Scanning
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
permissions:
|
|
69
|
+
contents: read
|
|
70
|
+
security-events: write
|
|
71
|
+
|
|
72
|
+
steps:
|
|
73
|
+
- uses: actions/checkout@v4
|
|
74
|
+
- uses: SalmonPlays/oss-signal@v0.8.0
|
|
75
|
+
with:
|
|
76
|
+
format: sarif
|
|
77
|
+
output: oss-signal.sarif
|
|
78
|
+
summary: "false"
|
|
79
|
+
- uses: github/codeql-action/upload-sarif@v3
|
|
80
|
+
with:
|
|
81
|
+
sarif_file: oss-signal.sarif
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Full walkthrough: [sarif-code-scanning.md](sarif-code-scanning.md)
|
|
85
|
+
|
|
86
|
+
## Share Evidence
|
|
87
|
+
|
|
88
|
+
Useful adoption evidence is concrete and public:
|
|
89
|
+
|
|
90
|
+
- A workflow run that uses `SalmonPlays/oss-signal@v0.8.0`.
|
|
91
|
+
- A Markdown report attached as a workflow artifact.
|
|
92
|
+
- A SARIF upload that appears in Code Scanning.
|
|
93
|
+
- A focused issue or pull request created from an audit finding.
|
|
94
|
+
- A short note about what maintainer task the audit improved.
|
|
95
|
+
|
|
96
|
+
Open an [adoption report](https://github.com/SalmonPlays/oss-signal/issues/new?template=adoption_report.yml) when a public repository uses the CLI or Action. Open [trial feedback](https://github.com/SalmonPlays/oss-signal/issues/new?template=trial_feedback.yml) when you reviewed a report but did not adopt the tool. Open a [maintainer audit report](https://github.com/SalmonPlays/oss-signal/issues/new?template=audit_report.yml) when you want to discuss a generated report before posting follow-up to another repository.
|
|
97
|
+
|
|
98
|
+
## Boundaries
|
|
99
|
+
|
|
100
|
+
Do not treat the score as a code-quality verdict. It measures visible maintainer-readiness signals: contribution paths, security reporting, CI, templates, release notes, and related repository hygiene.
|
|
101
|
+
|
|
102
|
+
Do not claim third-party adoption unless the repository owner or maintainer has actually used, merged, or acknowledged the workflow.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Architecture
|
|
2
|
+
|
|
3
|
+
`oss-signal` is intentionally small: a Node.js CLI, a GitHub Action wrapper, and deterministic rule modules that inspect visible repository files and GitHub repository metadata.
|
|
4
|
+
|
|
5
|
+
## Components
|
|
6
|
+
|
|
7
|
+
| Component | Path | Responsibility |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| CLI entrypoint | [src/cli.js](../src/cli.js) | Parses arguments, selects local/GitHub/inventory mode, writes reports, and applies `--fail-under`. |
|
|
10
|
+
| Audit engine | [src/index.js](../src/index.js) | Reads repository files, evaluates maintainer-readiness rules, scores results, and renders Markdown, JSON, SARIF, inventory, or issue output. |
|
|
11
|
+
| Action wrapper | [src/action.js](../src/action.js) | Maps GitHub Action inputs to CLI behavior, sets Action outputs, and writes the step summary. |
|
|
12
|
+
| Action metadata | [action.yml](../action.yml) | Defines Marketplace-visible inputs, outputs, branding, and Node runtime. |
|
|
13
|
+
| Rules reference | [docs/rules.md](rules.md) | Documents each rule, weight, and maintainer rationale. |
|
|
14
|
+
|
|
15
|
+
## Data Flow
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart LR
|
|
19
|
+
input["Repository path, GitHub URL, owner/repo, or inventory file"]
|
|
20
|
+
reader["File and metadata reader"]
|
|
21
|
+
rules["Maintainer-readiness rules"]
|
|
22
|
+
score["Score and grade"]
|
|
23
|
+
outputs["Markdown, JSON, SARIF, issue body, or inventory report"]
|
|
24
|
+
ci["GitHub Actions summary, artifact, or Code Scanning upload"]
|
|
25
|
+
|
|
26
|
+
input --> reader --> rules --> score --> outputs --> ci
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Local Repository Mode
|
|
30
|
+
|
|
31
|
+
Local mode reads files from the target path and checks for visible maintainer signals such as `README`, license, `CONTRIBUTING.md`, `SECURITY.md`, issue templates, pull request templates, CI, tests, Dependabot, CodeQL-style workflows, and release notes.
|
|
32
|
+
|
|
33
|
+
No network access is required for local mode.
|
|
34
|
+
|
|
35
|
+
## GitHub Repository Mode
|
|
36
|
+
|
|
37
|
+
GitHub URL mode fetches a public repository file tree through the GitHub API and checks the same visible signals without requiring a clone. When `GITHUB_TOKEN` is available, it can use the token for higher API rate limits. The token is not printed in output.
|
|
38
|
+
|
|
39
|
+
## Inventory Mode
|
|
40
|
+
|
|
41
|
+
Inventory mode reads a newline-delimited target list and runs the audit for each repository. It is designed for maintainers who need a quick portfolio view across several public repositories.
|
|
42
|
+
|
|
43
|
+
## Output Modes
|
|
44
|
+
|
|
45
|
+
- Markdown: human-readable maintainer report.
|
|
46
|
+
- JSON: automation-friendly result object.
|
|
47
|
+
- SARIF: warning-level findings for GitHub Code Scanning or other SARIF consumers.
|
|
48
|
+
- Issue: an editable maintainer follow-up body.
|
|
49
|
+
- Inventory: table and aggregate summary across multiple targets.
|
|
50
|
+
|
|
51
|
+
## Design Constraints
|
|
52
|
+
|
|
53
|
+
- Dependency-light by design.
|
|
54
|
+
- Deterministic scoring from visible repository signals.
|
|
55
|
+
- No hidden telemetry.
|
|
56
|
+
- No automatic issue or pull request posting.
|
|
57
|
+
- No claim that the score measures product quality, code quality, popularity, or security completeness.
|