oss-signal 0.8.6 → 0.9.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.
Files changed (39) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +20 -11
  3. package/action.yml +3 -0
  4. package/docs/adoption-evidence.md +11 -10
  5. package/docs/adoption-kit.md +4 -4
  6. package/docs/assets/code-scanning-results.svg +1 -1
  7. package/docs/assets/oss-signal-banner.svg +1 -1
  8. package/docs/codex-for-oss-application.md +11 -11
  9. package/docs/codex-for-oss-form-answers.md +3 -3
  10. package/docs/configuration.md +82 -0
  11. package/docs/evidence-ledger.md +3 -3
  12. package/docs/examples/github-action-workflow.yml +1 -1
  13. package/docs/examples/github-code-scanning-workflow.yml +2 -2
  14. package/docs/examples/github-inventory-workflow.yml +1 -1
  15. package/docs/examples/github-url-report.json +4 -3
  16. package/docs/examples/github-url-report.md +1 -1
  17. package/docs/examples/maintainer-trial-workflow.yml +1 -1
  18. package/docs/examples/oss-signal-config.json +6 -0
  19. package/docs/examples/self-audit.sarif +2 -2
  20. package/docs/index.md +3 -2
  21. package/docs/json-output.md +5 -2
  22. package/docs/maintainer-playbook.md +4 -4
  23. package/docs/maintainer-trial.md +6 -6
  24. package/docs/marketplace.md +3 -3
  25. package/docs/post-submission-update.md +11 -9
  26. package/docs/quickstart.md +1 -1
  27. package/docs/release-notes/v0.9.0.md +15 -0
  28. package/docs/reviewer-evidence.md +7 -7
  29. package/docs/rules.md +3 -1
  30. package/docs/sarif-code-scanning.md +1 -1
  31. package/docs/schema/json-output.schema.json +46 -0
  32. package/docs/security-model.md +1 -1
  33. package/docs/self-audit.md +1 -1
  34. package/docs/social-launch.md +1 -1
  35. package/docs/trust-center.md +3 -3
  36. package/package.json +1 -1
  37. package/src/action.js +5 -2
  38. package/src/cli.js +10 -2
  39. package/src/index.js +208 -15
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.9.0
6
+
7
+ - Added local config support with `.oss-signal.json`, `.oss-signalrc.json`, `oss-signal.config.json`, and explicit `--config`.
8
+ - Added not-applicable rule handling so maintainers can document exceptions without inflating failed recommendations.
9
+ - Added GitHub Action `config` input, configuration docs, and a config example fixture.
10
+
5
11
  ## 0.8.6
6
12
 
7
13
  - Corrected reviewer evidence text so the separate demo remains accurately documented as `v0.8.4` while the main package advances.
package/README.md CHANGED
@@ -55,8 +55,8 @@ For the full first-run path, see [docs/quickstart.md](docs/quickstart.md).
55
55
  Public evidence for the maintainer workflow is collected in [docs/index.md](docs/index.md), [docs/quickstart.md](docs/quickstart.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).
56
56
 
57
57
  - Landing page: https://salmonplays.github.io/oss-signal/
58
- - Published package: [`oss-signal@0.8.6`](https://www.npmjs.com/package/oss-signal), with `latest` pointing at `0.8.6`.
59
- - Published GitHub Action: [`SalmonPlays/oss-signal@v0.8.6`](https://github.com/SalmonPlays/oss-signal/tree/v0.8.6).
58
+ - Published package: [`oss-signal@0.9.0`](https://www.npmjs.com/package/oss-signal), with `latest` pointing at `0.9.0`.
59
+ - Published GitHub Action: [`SalmonPlays/oss-signal@v0.9.0`](https://github.com/SalmonPlays/oss-signal/tree/v0.9.0).
60
60
  - GitHub Marketplace listing: https://github.com/marketplace/actions/oss-signal
61
61
  - Trust center: [docs/trust-center.md](docs/trust-center.md)
62
62
  - Quickstart: [docs/quickstart.md](docs/quickstart.md)
@@ -68,10 +68,11 @@ Public evidence for the maintainer workflow is collected in [docs/index.md](docs
68
68
  - Architecture: [docs/architecture.md](docs/architecture.md)
69
69
  - Security model: [docs/security-model.md](docs/security-model.md)
70
70
  - JSON output contract: [docs/json-output.md](docs/json-output.md)
71
+ - Configuration: [docs/configuration.md](docs/configuration.md)
71
72
  - Maintainer plan output: [docs/plan-output.md](docs/plan-output.md)
72
73
  - SARIF Code Scanning walkthrough: [docs/sarif-code-scanning.md](docs/sarif-code-scanning.md)
73
74
  - Roadmap: [docs/roadmap.md](docs/roadmap.md)
74
- - Post-submission version note: the application may reference earlier evidence; `0.8.6` is the current maintained release and is documented in [docs/post-submission-update.md](docs/post-submission-update.md).
75
+ - Post-submission version note: the application may reference earlier evidence; `0.9.0` is the current maintained release and is documented in [docs/post-submission-update.md](docs/post-submission-update.md).
75
76
  - Public checks: CI, Repository health, and CodeQL are passing on `main`.
76
77
  - 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.
77
78
  - Branch posture: `main` has branch protection to prevent force pushes and deletions while keeping direct maintainer maintenance possible.
@@ -82,7 +83,7 @@ Public evidence for the maintainer workflow is collected in [docs/index.md](docs
82
83
  - 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.
83
84
  - 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.
84
85
  - Inventory mode: the CLI and Action can audit a newline-delimited list of repositories for organization-level triage.
85
- - Separate workflow demo: [oss-signal-adoption-demo](https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/27025632373) runs the public `v0.8.4` Action tag and uploads Markdown, SARIF, Issue-ready, and no-fail workflow artifacts. It remains valid demo evidence while the main repository has advanced to `v0.8.6`.
86
+ - Separate workflow demo: [oss-signal-adoption-demo](https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/27025632373) runs the public `v0.8.4` Action tag and uploads Markdown, SARIF, Issue-ready, and no-fail workflow artifacts. It remains valid demo evidence while the main repository has advanced to `v0.9.0`.
86
87
 
87
88
  ## Why
88
89
 
@@ -150,6 +151,14 @@ oss-signal . --format json --fail-under 80
150
151
 
151
152
  See [docs/json-output.md](docs/json-output.md) for the JSON schema and fixture.
152
153
 
154
+ Document intentional exceptions with a local config:
155
+
156
+ ```bash
157
+ oss-signal . --config .oss-signal.json --format markdown
158
+ ```
159
+
160
+ See [docs/configuration.md](docs/configuration.md) for not-applicable rules and scoring behavior.
161
+
153
162
  Audit multiple repositories from one newline-delimited inventory file:
154
163
 
155
164
  ```bash
@@ -223,7 +232,7 @@ Summary:
223
232
 
224
233
  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.
225
234
 
226
- The [Repository health workflow](.github/workflows/repository-health.yml) runs `SalmonPlays/oss-signal@v0.8.6`, 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.
235
+ The [Repository health workflow](.github/workflows/repository-health.yml) runs `SalmonPlays/oss-signal@v0.9.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.
227
236
 
228
237
  ## Field Audits
229
238
 
@@ -274,7 +283,7 @@ oss-signal . --fail-under 80
274
283
  Add `oss-signal` directly to a GitHub Actions workflow:
275
284
 
276
285
  ```yaml
277
- - uses: SalmonPlays/oss-signal@v0.8.6
286
+ - uses: SalmonPlays/oss-signal@v0.9.0
278
287
  id: oss-signal
279
288
  with:
280
289
  fail-under: "80"
@@ -290,7 +299,7 @@ The Action writes a concise GitHub Actions step summary by default, so reviewers
290
299
  Run an inventory from CI:
291
300
 
292
301
  ```yaml
293
- - uses: SalmonPlays/oss-signal@v0.8.6
302
+ - uses: SalmonPlays/oss-signal@v0.9.0
294
303
  env:
295
304
  GITHUB_TOKEN: ${{ github.token }}
296
305
  with:
@@ -302,7 +311,7 @@ Run an inventory from CI:
302
311
  Generate an editable Issue body from CI:
303
312
 
304
313
  ```yaml
305
- - uses: SalmonPlays/oss-signal@v0.8.6
314
+ - uses: SalmonPlays/oss-signal@v0.9.0
306
315
  with:
307
316
  format: issue
308
317
  output: maintainer-follow-up.md
@@ -327,7 +336,7 @@ jobs:
327
336
  runs-on: ubuntu-latest
328
337
  steps:
329
338
  - uses: actions/checkout@v5
330
- - uses: SalmonPlays/oss-signal@v0.8.6
339
+ - uses: SalmonPlays/oss-signal@v0.9.0
331
340
  id: oss-signal
332
341
  with:
333
342
  fail-under: "80"
@@ -350,7 +359,7 @@ permissions:
350
359
 
351
360
  steps:
352
361
  - uses: actions/checkout@v5
353
- - uses: SalmonPlays/oss-signal@v0.8.6
362
+ - uses: SalmonPlays/oss-signal@v0.9.0
354
363
  with:
355
364
  format: sarif
356
365
  output: oss-signal.sarif
@@ -360,7 +369,7 @@ steps:
360
369
  sarif_file: oss-signal.sarif
361
370
  ```
362
371
 
363
- This repository dogfoods the public Action tag in [Repository health](.github/workflows/repository-health.yml), which runs `SalmonPlays/oss-signal@v0.8.6` against the repository, uploads the Markdown report artifact, and publishes SARIF to Code Scanning on non-PR runs.
372
+ This repository dogfoods the public Action tag in [Repository health](.github/workflows/repository-health.yml), which runs `SalmonPlays/oss-signal@v0.9.0` against the repository, uploads the Markdown report artifact, and publishes SARIF to Code Scanning on non-PR runs.
364
373
 
365
374
  You can also run the CLI directly in CI:
366
375
 
package/action.yml CHANGED
@@ -34,6 +34,9 @@ inputs:
34
34
  ref:
35
35
  description: Git ref for GitHub URL audits.
36
36
  required: false
37
+ config:
38
+ description: Path to an oss-signal JSON config file. Local audits auto-detect .oss-signal.json.
39
+ required: false
37
40
  outputs:
38
41
  score:
39
42
  description: Numeric maintainer-readiness score, or average score in inventory mode.
@@ -8,9 +8,9 @@ Last verified: 2026-06-07T03:51:47Z
8
8
 
9
9
  - Repository: https://github.com/SalmonPlays/oss-signal
10
10
  - GitHub Pages landing page: https://salmonplays.github.io/oss-signal/
11
- - npm package: https://www.npmjs.com/package/oss-signal (`0.8.6` latest after release)
12
- - GitHub Release: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.8.6
13
- - GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.8.6
11
+ - npm package: https://www.npmjs.com/package/oss-signal (`0.9.0` latest after release)
12
+ - GitHub Release: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.9.0
13
+ - GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.9.0
14
14
  - GitHub Marketplace listing: https://github.com/marketplace/actions/oss-signal
15
15
  - GitHub Action metadata: [action.yml](../action.yml)
16
16
  - Public dogfood workflow: [.github/workflows/repository-health.yml](../.github/workflows/repository-health.yml)
@@ -41,6 +41,7 @@ Last verified: 2026-06-07T03:51:47Z
41
41
  - Architecture: [docs/architecture.md](architecture.md)
42
42
  - Security model: [docs/security-model.md](security-model.md)
43
43
  - JSON output contract: [docs/json-output.md](json-output.md)
44
+ - Configuration: [docs/configuration.md](configuration.md)
44
45
  - SARIF Code Scanning walkthrough: [docs/sarif-code-scanning.md](sarif-code-scanning.md)
45
46
  - Roadmap: [docs/roadmap.md](roadmap.md)
46
47
  - Reviewer evidence quickstart: [docs/reviewer-evidence.md](reviewer-evidence.md)
@@ -69,7 +70,7 @@ The [post-submission update](post-submission-update.md) records why the current
69
70
 
70
71
  ## Published Package Verification
71
72
 
72
- The npm package is publicly available as `oss-signal@0.8.6` with `latest` pointing at `0.8.6` after the release workflow completes.
73
+ The npm package is publicly available as `oss-signal@0.9.0` with `latest` pointing at `0.9.0` after the release workflow completes.
73
74
 
74
75
  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.
75
76
 
@@ -77,11 +78,11 @@ Clean-directory package execution returned:
77
78
 
78
79
  ```json
79
80
  {
80
- "version": "0.8.6"
81
+ "version": "0.9.0"
81
82
  }
82
83
  ```
83
84
 
84
- Local self-audit returned score `100`, grade `A`. Public GitHub URL report generation completed during this verification pass, and repository workflows use the public `v0.8.6` Action tag with `GITHUB_TOKEN`.
85
+ Local self-audit returned score `100`, grade `A`. Public GitHub URL report generation completed during this verification pass, and repository workflows use the public `v0.9.0` Action tag with `GITHUB_TOKEN`.
85
86
 
86
87
  Current public workflow status:
87
88
 
@@ -92,7 +93,7 @@ Current public workflow status:
92
93
  - OpenSSF Scorecard: configured on `main` pushes and a weekly schedule, with JSON artifact output and public Scorecard publishing
93
94
  - Release: passing
94
95
  - GitHub Pages deployment: passing, with the repository homepage set to https://salmonplays.github.io/oss-signal/
95
- - GitHub Marketplace listing: published, with `v0.8.6` available as the current Action tag after release
96
+ - GitHub Marketplace listing: published, with `v0.9.0` available as the current Action tag after release
96
97
  - GitHub issue forms: adoption report, trial feedback, and maintainer audit report forms are available for structured public evidence intake
97
98
  - GitHub citation metadata: `CITATION.cff` is present for the repository citation UI
98
99
  - Automation contract: JSON schema and fixture are documented for `--format json`
@@ -101,7 +102,7 @@ Current public workflow status:
101
102
  - Maintainer workflow Discussion: published
102
103
  - Separate public workflow demo: passing
103
104
 
104
- The npm registry previously returned `0.8.4` for both the package version and `latest` dist-tag on 2026-06-05T16:02:53Z. The 2026-06-07 release updates the expected latest version to `0.8.6`. The 2026-06-05 download check returned 356 downloads for the last-week and last-month windows.
105
+ The npm registry previously returned `0.8.4` for both the package version and `latest` dist-tag on 2026-06-05T16:02:53Z. The 2026-06-07 release updates the expected latest version to `0.9.0`. The 2026-06-05 download check returned 356 downloads for the last-week and last-month windows.
105
106
 
106
107
  ## Separate Public Workflow Evidence
107
108
 
@@ -164,10 +165,10 @@ npm run audit:github
164
165
  node src/cli.js . --format sarif --output docs/examples/self-audit.sarif
165
166
  node src/cli.js --inventory docs/examples/inventory-targets.txt --format markdown --output docs/examples/inventory-report.md
166
167
  node src/cli.js platformatic/massimo --format json
167
- npm exec --yes --package=oss-signal@0.8.6 -- oss-signal --version
168
+ npm exec --yes --package=oss-signal@0.9.0 -- oss-signal --version
168
169
  ```
169
170
 
170
- 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.6` Action tag is used by the repository health workflow for Markdown and SARIF output after release. The published npm `0.8.6` package should return version `0.8.6` from a clean temporary directory.
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.9.0` Action tag is used by the repository health workflow for Markdown and SARIF output after release. The published npm `0.9.0` package should return version `0.9.0` from a clean temporary directory.
171
172
 
172
173
  Public CI evidence:
173
174
 
@@ -9,7 +9,7 @@ For a first CLI run, start with [quickstart.md](quickstart.md). For a first CI t
9
9
  Run against a public repository without cloning:
10
10
 
11
11
  ```bash
12
- npm exec --yes --package=oss-signal@0.8.6 -- oss-signal owner/repo --format markdown --output oss-signal-report.md
12
+ npm exec --yes --package=oss-signal@0.9.0 -- oss-signal owner/repo --format markdown --output oss-signal-report.md
13
13
  ```
14
14
 
15
15
  Run against the current checkout:
@@ -53,7 +53,7 @@ jobs:
53
53
  runs-on: ubuntu-latest
54
54
  steps:
55
55
  - uses: actions/checkout@v5
56
- - uses: SalmonPlays/oss-signal@v0.8.6
56
+ - uses: SalmonPlays/oss-signal@v0.9.0
57
57
  id: oss-signal
58
58
  with:
59
59
  fail-under: "80"
@@ -77,7 +77,7 @@ env:
77
77
 
78
78
  steps:
79
79
  - uses: actions/checkout@v5
80
- - uses: SalmonPlays/oss-signal@v0.8.6
80
+ - uses: SalmonPlays/oss-signal@v0.9.0
81
81
  with:
82
82
  format: sarif
83
83
  output: oss-signal.sarif
@@ -93,7 +93,7 @@ Full walkthrough: [sarif-code-scanning.md](sarif-code-scanning.md)
93
93
 
94
94
  Useful adoption evidence is concrete and public:
95
95
 
96
- - A workflow run that uses `SalmonPlays/oss-signal@v0.8.6`.
96
+ - A workflow run that uses `SalmonPlays/oss-signal@v0.9.0`.
97
97
  - A Markdown report attached as a workflow artifact.
98
98
  - A SARIF upload that appears in Code Scanning.
99
99
  - A focused issue or pull request created from an audit finding.
@@ -6,7 +6,7 @@
6
6
  <rect x="0" y="0" width="920" height="58" rx="18" fill="#f6f8fa"/>
7
7
  <text x="32" y="37" fill="#24292f" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, sans-serif" font-size="18" font-weight="700">GitHub Code Scanning</text>
8
8
  <text x="32" y="98" fill="#24292f" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, sans-serif" font-size="28" font-weight="700">oss-signal maintainer-readiness findings</text>
9
- <text x="32" y="132" fill="#57606a" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, sans-serif" font-size="16">SARIF upload from SalmonPlays/oss-signal@v0.8.6</text>
9
+ <text x="32" y="132" fill="#57606a" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, sans-serif" font-size="16">SARIF upload from SalmonPlays/oss-signal@v0.9.0</text>
10
10
  <rect x="32" y="162" width="856" height="72" rx="10" fill="#fffbdd" stroke="#d4a72c"/>
11
11
  <circle cx="65" cy="198" r="10" fill="#bf8700"/>
12
12
  <text x="88" y="194" fill="#24292f" font-family="-apple-system, BlinkMacSystemFont, Segoe UI, sans-serif" font-size="17" font-weight="700">oss-signal/security</text>
@@ -34,7 +34,7 @@
34
34
  <rect x="334" y="266" width="144" height="42" rx="21" fill="#dcfce7"/>
35
35
  <text x="359" y="293" fill="#166534">100/100 A</text>
36
36
  <rect x="494" y="266" width="142" height="42" rx="21" fill="#dbeafe"/>
37
- <text x="521" y="293" fill="#1e40af">npm 0.8.6</text>
37
+ <text x="521" y="293" fill="#1e40af">npm 0.9.0</text>
38
38
  <rect x="652" y="266" width="178" height="42" rx="21" fill="#e0f2fe"/>
39
39
  <text x="681" y="293" fill="#075985">GitHub Action</text>
40
40
  <rect x="846" y="266" width="168" height="42" rx="21" fill="#fef9c3"/>
@@ -9,8 +9,8 @@ This document summarizes why `oss-signal` is a fit for OpenAI's Codex for Open S
9
9
  - Display name: OSS Maintainer Signal
10
10
  - Repository: https://github.com/SalmonPlays/oss-signal
11
11
  - npm package: https://www.npmjs.com/package/oss-signal
12
- - GitHub Release: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.8.6
13
- - GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.8.6
12
+ - GitHub Release: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.9.0
13
+ - GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.9.0
14
14
  - CI workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/ci.yml
15
15
  - Repository health workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml
16
16
  - Repository inventory workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-inventory.yml
@@ -53,26 +53,26 @@ This project is designed around repeatable maintainer workflows where Codex is u
53
53
 
54
54
  The repository currently has:
55
55
 
56
- - A published npm package with `0.8.6` as the latest release.
56
+ - A published npm package with `0.9.0` as the latest release.
57
57
  - A post-submission update page explaining why the current npm package and Action tag may be newer than the originally submitted evidence.
58
58
  - npm download API evidence showing 356 last-week and last-month downloads on 2026-06-05.
59
- - A published GitHub Release for v0.8.6 with maintainer plan output, CI usage guidance, and release notes.
59
+ - A published GitHub Release for v0.9.0 with maintainer plan output, CI usage guidance, and release notes.
60
60
  - A reusable GitHub Action with `score`, `grade`, `failed`, and `report-path` outputs.
61
61
  - A repository inventory mode for organization-level maintainer-readiness triage, available in both CLI and GitHub Action form.
62
- - A clean npm smoke test of `oss-signal@0.8.6` returning version `0.8.6`.
62
+ - A clean npm smoke test of `oss-signal@0.9.0` returning version `0.9.0`.
63
63
  - SARIF output for GitHub Code Scanning integration.
64
- - A v0.8.6 GitHub Action tag with step summary, SARIF support, inventory support, Issue-ready output, and maintainer plan output.
64
+ - A v0.9.0 GitHub Action tag with step summary, SARIF support, inventory support, Issue-ready output, and maintainer plan output.
65
65
  - A workflow output mode that renders a no-fail GitHub Actions trial workflow for external maintainers.
66
- - A public dogfood workflow that runs `SalmonPlays/oss-signal@v0.8.6` against the repository, uploads the Markdown report artifact, and uploads SARIF to GitHub Code Scanning on non-PR runs.
67
- - A public dogfood inventory workflow that runs `SalmonPlays/oss-signal@v0.8.6` against a repository target list and uploads an inventory artifact.
68
- - A separate public workflow demo that runs `SalmonPlays/oss-signal@v0.8.6` from another repository and uploads Markdown, SARIF, Issue-ready, and no-fail workflow artifacts.
66
+ - A public dogfood workflow that runs `SalmonPlays/oss-signal@v0.9.0` against the repository, uploads the Markdown report artifact, and uploads SARIF to GitHub Code Scanning on non-PR runs.
67
+ - A public dogfood inventory workflow that runs `SalmonPlays/oss-signal@v0.9.0` against a repository target list and uploads an inventory artifact.
68
+ - A separate public workflow demo that runs `SalmonPlays/oss-signal@v0.9.0` from another repository and uploads Markdown, SARIF, Issue-ready, and no-fail workflow artifacts.
69
69
  - A no-fail maintainer trial workflow that external maintainers can copy before enabling CI gates.
70
70
  - A trial feedback path for neutral or negative maintainer responses, so third-party feedback does not have to be overstated as adoption.
71
71
  - A maintainer playbook that documents audit, triage, issue, PR, CI, and SARIF workflows.
72
72
  - A release process and tag-triggered release workflow that verify package contents and publish to npm through Trusted Publishing.
73
73
  - CI, Repository health, CodeQL, and Release workflows passing publicly.
74
74
  - A local self-audit score of 100/100.
75
- - A clean-directory smoke test of `npm exec --yes --package=oss-signal@0.8.6 -- oss-signal --version`, returning `0.8.6`.
75
+ - A clean-directory smoke test of `npm exec --yes --package=oss-signal@0.9.0 -- oss-signal --version`, returning `0.9.0`.
76
76
  - Public reports, issues, and PRs created from real repository audits, including six posted field-audit issues and five follow-up PRs.
77
77
  - One accepted external documentation PR, with a public maintainer merge comment, recorded in [evidence-ledger.md](evidence-ledger.md).
78
78
 
@@ -113,5 +113,5 @@ Prepared official form answers are in [codex-for-oss-form-answers.md](codex-for-
113
113
  ## Next Evidence To Collect
114
114
 
115
115
  - More merged external PRs or maintainer replies on field-audit PRs.
116
- - A public workflow run in an independent maintainer-owned repository using `SalmonPlays/oss-signal@v0.8.6`, ideally with SARIF or inventory upload enabled.
116
+ - A public workflow run in an independent maintainer-owned repository using `SalmonPlays/oss-signal@v0.9.0`, ideally with SARIF or inventory upload enabled.
117
117
  - npm download data once the registry starts reporting weekly/monthly counts.
@@ -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.8.6 and GitHub Action SalmonPlays/oss-signal@v0.8.6, supports Markdown/JSON/SARIF/Issue/Plan/Inventory/Workflow output, passes CI/CodeQL/Release, has a 100/100 self-audit, no-fail maintainer trial and feedback paths, six public field-audit issues, five public field-audit PRs, and one merged external Codex Action documentation PR.
53
+ oss-signal is a public OSS maintainer tool for reducing triage and review load. It ships as npm package oss-signal@0.9.0 and GitHub Action SalmonPlays/oss-signal@v0.9.0, supports Markdown/JSON/SARIF/Issue/Plan/Inventory/Workflow output, passes CI/CodeQL/Release, has a 100/100 self-audit, no-fail maintainer trial and feedback paths, six public field-audit issues, five public field-audit PRs, and one merged external Codex Action documentation PR.
54
54
  ```
55
55
 
56
56
  ## Interest
@@ -81,13 +81,13 @@ Use Codex/API credits to run repeatable public repository audits, draft focused
81
81
  ## Anything Else
82
82
 
83
83
  ```text
84
- The project is early, so I am not overstating adoption. Current evidence includes npm 0.8.6 latest, 356 npm downloads reported by the registry API on 2026-06-05, a published v0.8.6 release, a reusable GitHub Action with inventory and workflow output, no-fail maintainer trial and feedback paths, a clean npm version smoke test, public CI/Repository health/CodeQL/Release, six field-audit issues, five field-audit PRs, and a separate public workflow demo with artifacts.
84
+ The project is early, so I am not overstating adoption. Current evidence includes npm 0.9.0 latest, 356 npm downloads reported by the registry API on 2026-06-05, a published v0.9.0 release, a reusable GitHub Action with inventory and workflow output, no-fail maintainer trial and feedback paths, a clean npm version smoke test, public CI/Repository health/CodeQL/Release, six field-audit issues, five field-audit PRs, and a separate public workflow demo with artifacts.
85
85
  ```
86
86
 
87
87
  ## Evidence Links
88
88
 
89
89
  - npm package: https://www.npmjs.com/package/oss-signal
90
- - GitHub Release v0.8.6: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.8.6
90
+ - GitHub Release v0.9.0: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.9.0
91
91
  - Main repository health workflow: https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml
92
92
  - Separate workflow demo repository: https://github.com/SalmonPlays/oss-signal-adoption-demo
93
93
  - Separate successful workflow run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/27025632373
@@ -0,0 +1,82 @@
1
+ # Configuration
2
+
3
+ `oss-signal` can read a small JSON config when a rule is intentionally not applicable to a repository.
4
+
5
+ This is useful for real maintainer workflows because not every repository should be forced into the same checklist. For example, a docs-only repository may not need tests, or a library may intentionally omit a lockfile.
6
+
7
+ ## Auto-Detected Config Files
8
+
9
+ Local audits automatically read the first matching file at the repository root:
10
+
11
+ - `.oss-signal.json`
12
+ - `.oss-signalrc.json`
13
+ - `oss-signal.config.json`
14
+
15
+ You can also pass a config explicitly:
16
+
17
+ ```bash
18
+ oss-signal . --config .oss-signal.json
19
+ ```
20
+
21
+ The GitHub Action supports the same path:
22
+
23
+ ```yaml
24
+ - uses: SalmonPlays/oss-signal@v0.9.0
25
+ with:
26
+ config: .oss-signal.json
27
+ output: oss-signal-report.md
28
+ ```
29
+
30
+ ## Mark A Rule Not Applicable
31
+
32
+ Use the `notApplicable` object when you want a compact config:
33
+
34
+ ```json
35
+ {
36
+ "notApplicable": {
37
+ "lockfile": "Library package intentionally does not commit a lockfile.",
38
+ "codeql": "Security scanning is handled by a separate organization-level workflow."
39
+ }
40
+ }
41
+ ```
42
+
43
+ Or use the `rules` object when you want per-rule status:
44
+
45
+ ```json
46
+ {
47
+ "rules": {
48
+ "tests": {
49
+ "status": "not-applicable",
50
+ "reason": "Documentation-only repository with no executable code."
51
+ }
52
+ }
53
+ }
54
+ ```
55
+
56
+ Not-applicable rules are shown as `N/A` in Markdown, excluded from failed recommendations, and removed from the score denominator. The report still records the reason so reviewers can see the maintainer decision.
57
+
58
+ ## Rule IDs
59
+
60
+ Current rule IDs:
61
+
62
+ - `readme`
63
+ - `license`
64
+ - `contributing`
65
+ - `security`
66
+ - `code-of-conduct`
67
+ - `changelog`
68
+ - `support`
69
+ - `ci`
70
+ - `tests`
71
+ - `issue-templates`
72
+ - `pull-request-template`
73
+ - `dependabot`
74
+ - `codeql`
75
+ - `package-json`
76
+ - `lockfile`
77
+
78
+ Unknown rule IDs are reported as config warnings instead of silently changing the score.
79
+
80
+ ## Boundaries
81
+
82
+ Use config for documented exceptions, not to inflate a score. If a missing signal would materially reduce maintainer safety or contributor clarity, fix the repository instead of marking the rule not applicable.
@@ -8,13 +8,13 @@ This ledger keeps the strongest public `oss-signal` evidence in one reviewer-fri
8
8
 
9
9
  | Signal | Evidence | Status | Reviewer note |
10
10
  | --- | --- | --- | --- |
11
- | Installable CLI | https://www.npmjs.com/package/oss-signal | `0.8.6` is `latest` | Reviewers can run `npm exec --yes --package=oss-signal@0.8.6 -- oss-signal --version`. |
11
+ | Installable CLI | https://www.npmjs.com/package/oss-signal | `0.9.0` is `latest` | Reviewers can run `npm exec --yes --package=oss-signal@0.9.0 -- oss-signal --version`. |
12
12
  | npm download API | 356 downloads for last-week and last-month windows | Checked 2026-06-05T09:57:04Z | Supporting distribution signal only; not claimed as broad adoption. |
13
- | GitHub Action release | https://github.com/SalmonPlays/oss-signal/tree/v0.8.6 | Published tag | Public Action tag used by repository workflows; the separate demo is refreshed after release publication. |
13
+ | GitHub Action release | https://github.com/SalmonPlays/oss-signal/tree/v0.9.0 | Published tag | Public Action tag used by repository workflows; the separate demo is refreshed after release publication. |
14
14
  | GitHub Marketplace | https://github.com/marketplace/actions/oss-signal | Published listing | Free Action listing under Code quality. |
15
15
  | Maintainer trial path | [maintainer-trial.md](maintainer-trial.md) | Published | External maintainers can try the Action without failing CI, then share a workflow run or adoption report. |
16
16
  | Maintainer feedback path | [maintainer-feedback.md](maintainer-feedback.md) | Published | External maintainers can leave useful public feedback even when the tool is not adopted. |
17
- | Main repository dogfood | https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml | Passing | Runs `SalmonPlays/oss-signal@v0.8.6` against this repository. |
17
+ | Main repository dogfood | https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml | Passing | Runs `SalmonPlays/oss-signal@v0.9.0` against this repository. |
18
18
  | Inventory dogfood | https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-inventory.yml | Passing | Exercises multi-repository inventory mode. |
19
19
  | Separate public workflow demo | https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/27025632373 | Passing | Separate public repository runs `SalmonPlays/oss-signal@v0.8.4` and uploads Markdown, SARIF, issue-ready, and no-fail workflow artifacts. |
20
20
  | Accepted external contribution | https://github.com/icoretech/codex-action/pull/24 | Merged 2026-06-04 | External maintainer merged the focused Codex Action documentation safety fix and left a merge comment. |
@@ -13,7 +13,7 @@ jobs:
13
13
  runs-on: ubuntu-latest
14
14
  steps:
15
15
  - uses: actions/checkout@v5
16
- - uses: SalmonPlays/oss-signal@v0.8.6
16
+ - uses: SalmonPlays/oss-signal@v0.9.0
17
17
  id: oss-signal
18
18
  with:
19
19
  fail-under: "80"
@@ -18,13 +18,13 @@ jobs:
18
18
  runs-on: ubuntu-latest
19
19
  steps:
20
20
  - uses: actions/checkout@v5
21
- - uses: SalmonPlays/oss-signal@v0.8.6
21
+ - uses: SalmonPlays/oss-signal@v0.9.0
22
22
  id: oss-signal
23
23
  with:
24
24
  fail-under: "80"
25
25
  output: oss-signal-report.md
26
26
  summary: "true"
27
- - uses: SalmonPlays/oss-signal@v0.8.6
27
+ - uses: SalmonPlays/oss-signal@v0.9.0
28
28
  with:
29
29
  format: sarif
30
30
  output: oss-signal.sarif
@@ -16,7 +16,7 @@ jobs:
16
16
  runs-on: ubuntu-latest
17
17
  steps:
18
18
  - uses: actions/checkout@v5
19
- - uses: SalmonPlays/oss-signal@v0.8.6
19
+ - uses: SalmonPlays/oss-signal@v0.9.0
20
20
  id: oss-signal
21
21
  env:
22
22
  GITHUB_TOKEN: ${{ github.token }}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "tool": "oss-signal",
3
- "version": "0.8.6",
3
+ "version": "0.9.0",
4
4
  "root": "https://github.com/SalmonPlays/oss-signal",
5
5
  "source": {
6
6
  "type": "github",
@@ -14,13 +14,14 @@
14
14
  "openIssues": 5,
15
15
  "healthPercentage": 100
16
16
  },
17
- "generatedAt": "2026-06-07T03:57:48.351Z",
17
+ "generatedAt": "2026-06-07T04:17:30.910Z",
18
18
  "score": 100,
19
19
  "grade": "A",
20
20
  "summary": {
21
21
  "total": 15,
22
22
  "passed": 15,
23
- "failed": 0
23
+ "failed": 0,
24
+ "notApplicable": 0
24
25
  },
25
26
  "checks": [
26
27
  {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Repository: `https://github.com/SalmonPlays/oss-signal`
4
4
  Source: GitHub (SalmonPlays/oss-signal@main)
5
- Generated: 2026-06-07T03:57:48.351Z
5
+ Generated: 2026-06-07T04:17:30.910Z
6
6
 
7
7
  Score: **100/100** (A)
8
8
 
@@ -15,7 +15,7 @@ jobs:
15
15
  runs-on: ubuntu-latest
16
16
  steps:
17
17
  - uses: actions/checkout@v5
18
- - uses: SalmonPlays/oss-signal@v0.8.6
18
+ - uses: SalmonPlays/oss-signal@v0.9.0
19
19
  id: oss-signal
20
20
  with:
21
21
  output: oss-signal-report.md
@@ -0,0 +1,6 @@
1
+ {
2
+ "notApplicable": {
3
+ "lockfile": "Library package intentionally does not commit a lockfile.",
4
+ "codeql": "Security scanning is handled by a separate organization-level workflow."
5
+ }
6
+ }
@@ -6,7 +6,7 @@
6
6
  "tool": {
7
7
  "driver": {
8
8
  "name": "oss-signal",
9
- "semanticVersion": "0.8.6",
9
+ "semanticVersion": "0.9.0",
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-07T03:57:46.629Z"
403
+ "generatedAt": "2026-06-07T04:17:29.319Z"
404
404
  }
405
405
  }
406
406
  ]
package/docs/index.md CHANGED
@@ -13,7 +13,7 @@ npx oss-signal SalmonPlays/oss-signal
13
13
  Run as a GitHub Action:
14
14
 
15
15
  ```yaml
16
- - uses: SalmonPlays/oss-signal@v0.8.6
16
+ - uses: SalmonPlays/oss-signal@v0.9.0
17
17
  id: oss-signal
18
18
  with:
19
19
  path: "."
@@ -40,6 +40,7 @@ Run as a GitHub Action:
40
40
  - [Maintainer trial](maintainer-trial.md)
41
41
  - [Maintainer feedback](maintainer-feedback.md)
42
42
  - [Social launch kit](social-launch.md)
43
+ - [Configuration](configuration.md)
43
44
  - [Maintainer playbook](maintainer-playbook.md)
44
45
  - [Architecture](architecture.md)
45
46
  - [Security model](security-model.md)
@@ -56,6 +57,6 @@ Run as a GitHub Action:
56
57
 
57
58
  - Repository: https://github.com/SalmonPlays/oss-signal
58
59
  - npm package: https://www.npmjs.com/package/oss-signal
59
- - GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.8.6
60
+ - GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.9.0
60
61
  - GitHub Marketplace listing: https://github.com/marketplace/actions/oss-signal
61
62
  - Maintainer workflow discussion: https://github.com/SalmonPlays/oss-signal/discussions/5
@@ -30,6 +30,7 @@ Important fields:
30
30
  | `score` | integer | Maintainer-readiness score from 0 to 100. |
31
31
  | `grade` | string | `A`, `B`, `C`, `D`, or `F`. |
32
32
  | `summary` | object | Total, passed, and failed check counts. |
33
+ | `config` | object | Present when a config file marks rules not applicable or emits config warnings. |
33
34
  | `checks` | array | Full rule results with evidence, rationale, and fix text. |
34
35
  | `recommendations` | array | Failed checks sorted by weight. Empty when score is 100. |
35
36
 
@@ -53,10 +54,12 @@ Inventory JSON intentionally summarizes each repository instead of embedding eve
53
54
 
54
55
  The JSON output is designed for automation, but `oss-signal` is still pre-1.0. Treat the current schema as the public contract for `0.6.x`. If a future release removes or renames fields, it should document the change in [CHANGELOG.md](../CHANGELOG.md) and the release notes.
55
56
 
56
- Stable for `0.6.x`:
57
+ Stable for `0.9.x`:
57
58
 
58
59
  - Top-level `tool`, `version`, `root`, `source`, `generatedAt`, `score`, `grade`, `summary`, `checks`, and `recommendations`.
59
- - Check fields `id`, `label`, `weight`, `passed`, `evidence`, `why`, and `fix`.
60
+ - Optional top-level `config` when a repository uses an `oss-signal` config file.
61
+ - Summary fields `total`, `passed`, `failed`, and `notApplicable`.
62
+ - Check fields `id`, `label`, `weight`, `passed`, `evidence`, `why`, `fix`, and optional `notApplicable` / `configReason`.
60
63
  - Recommendation fields `id`, `label`, `weight`, `why`, and `fix`.
61
64
 
62
65
  Not stable: