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.
Files changed (57) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/CITATION.cff +19 -0
  3. package/README.md +73 -22
  4. package/action.yml +2 -2
  5. package/docs/adoption-evidence.md +79 -21
  6. package/docs/adoption-kit.md +102 -0
  7. package/docs/architecture.md +57 -0
  8. package/docs/assets/code-scanning-results.svg +22 -0
  9. package/docs/assets/github-profile-avatar.png +0 -0
  10. package/docs/assets/oss-signal-banner.svg +1 -1
  11. package/docs/brand.md +3 -2
  12. package/docs/codex-for-oss-application.md +34 -24
  13. package/docs/codex-for-oss-form-answers.md +12 -7
  14. package/docs/evidence-ledger.md +46 -0
  15. package/docs/examples/github-action-workflow.yml +2 -2
  16. package/docs/examples/github-code-scanning-workflow.yml +4 -4
  17. package/docs/examples/github-inventory-workflow.yml +2 -2
  18. package/docs/examples/github-issue-body.md +4 -20
  19. package/docs/examples/github-plan.md +81 -0
  20. package/docs/examples/github-url-report.json +206 -0
  21. package/docs/examples/github-url-report.md +1 -1
  22. package/docs/examples/inventory-report.md +1 -1
  23. package/docs/examples/maintainer-trial-workflow.yml +24 -0
  24. package/docs/examples/self-audit.sarif +2 -2
  25. package/docs/index.md +60 -0
  26. package/docs/json-output.md +66 -0
  27. package/docs/maintainer-feedback.md +54 -0
  28. package/docs/maintainer-playbook.md +18 -4
  29. package/docs/maintainer-trial.md +111 -0
  30. package/docs/marketplace.md +44 -0
  31. package/docs/outreach/README.md +13 -0
  32. package/docs/outreach/divyesh-5981-signal-oss-issue-draft.md +31 -0
  33. package/docs/outreach/divyesh-5981-signal-oss-report.md +47 -0
  34. package/docs/outreach/grovanni-oss-signal-issue-draft.md +27 -0
  35. package/docs/outreach/grovanni-oss-signal-report.md +45 -0
  36. package/docs/outreach/neardws-oss-application-pack-builder-issue-draft.md +23 -0
  37. package/docs/outreach/neardws-oss-application-pack-builder-report.md +50 -0
  38. package/docs/outreach/noctemlabs-signal-oss-issue-draft.md +26 -0
  39. package/docs/outreach/noctemlabs-signal-oss-report.md +49 -0
  40. package/docs/outreach/peer-shortlist-2026-06.md +50 -0
  41. package/docs/plan-output.md +40 -0
  42. package/docs/post-submission-update.md +24 -12
  43. package/docs/release-notes/v0.7.0.md +17 -0
  44. package/docs/release-notes/v0.8.0.md +18 -0
  45. package/docs/release-process.md +1 -1
  46. package/docs/reviewer-evidence.md +65 -8
  47. package/docs/roadmap.md +36 -0
  48. package/docs/sarif-code-scanning.md +88 -0
  49. package/docs/schema/json-output.schema.json +206 -0
  50. package/docs/security-model.md +57 -0
  51. package/docs/self-audit.md +1 -1
  52. package/docs/social-launch.md +151 -0
  53. package/docs/trust-center.md +73 -0
  54. package/package.json +4 -3
  55. package/src/action.js +11 -3
  56. package/src/cli.js +13 -3
  57. 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
  [![CI](https://github.com/SalmonPlays/oss-signal/actions/workflows/ci.yml/badge.svg)](https://github.com/SalmonPlays/oss-signal/actions/workflows/ci.yml)
8
8
  [![Repository health](https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml/badge.svg)](https://github.com/SalmonPlays/oss-signal/actions/workflows/repository-health.yml)
9
+ [![OpenSSF Scorecard](https://github.com/SalmonPlays/oss-signal/actions/workflows/scorecard.yml/badge.svg)](https://github.com/SalmonPlays/oss-signal/actions/workflows/scorecard.yml)
9
10
  [![GitHub release](https://img.shields.io/github/v/release/SalmonPlays/oss-signal.svg)](https://github.com/SalmonPlays/oss-signal/releases/latest)
11
+ [![GitHub Marketplace](https://img.shields.io/badge/GitHub%20Marketplace-oss--signal-blue.svg)](https://github.com/marketplace/actions/oss-signal)
10
12
  [![npm version](https://img.shields.io/npm/v/oss-signal.svg)](https://www.npmjs.com/package/oss-signal)
11
13
  [![npm downloads](https://img.shields.io/npm/dm/oss-signal.svg)](https://www.npmjs.com/package/oss-signal)
12
14
  [![Self audit](https://img.shields.io/badge/self--audit-100%2F100-brightgreen.svg)](docs/self-audit.md)
13
15
  [![Maintainer evidence](https://img.shields.io/badge/maintainer_evidence-public-blue.svg)](docs/reviewer-evidence.md)
14
16
  [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](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, and issue-ready cleanup notes.
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, or a GitHub Issue-ready Markdown body.
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
  ![oss-signal example output](docs/assets/terminal-report.svg)
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
- - Published package: [`oss-signal@0.6.4`](https://www.npmjs.com/package/oss-signal), with `latest` pointing at `0.6.4`.
27
- - Published GitHub Action: [`SalmonPlays/oss-signal@v0.6.4`](https://github.com/SalmonPlays/oss-signal/tree/v0.6.4).
28
- - Post-submission version note: the application may reference earlier evidence; `0.6.4` is the current maintained release and is documented in [docs/post-submission-update.md](docs/post-submission-update.md).
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: four public maintainer-readiness audits have been turned into four issues and four focused follow-up PRs.
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/26883001038) runs the public Action tag and uploads Markdown, SARIF, and Issue-ready artifacts.
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.6.4`, 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.
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.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.
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.6.4
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.6.4
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.6.4
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@v4
246
- - uses: SalmonPlays/oss-signal@v0.6.4
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@v4
269
- - uses: SalmonPlays/oss-signal@v0.6.4
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@v3
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.6.4` against the repository, uploads the Markdown report artifact, and publishes SARIF to Code Scanning on non-PR runs.
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, and issue-ready cleanup notes.
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 issue. Inventory mode supports markdown or json.
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-04T03:01:28Z
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
- - npm package: https://www.npmjs.com/package/oss-signal (`0.6.4` latest)
11
- - GitHub Release: https://github.com/SalmonPlays/oss-signal/releases/tag/v0.6.4
12
- - GitHub Action tag: https://github.com/SalmonPlays/oss-signal/tree/v0.6.4
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/26883001038
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.6.4` with `latest` pointing at `0.6.4`.
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-04. Download counts can lag publication, so this is treated as supporting evidence rather than proof of broad adoption.
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.6.4",
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.6.4` 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.
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.5.1` from a separate workflow file:
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/26883001038
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 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.
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, clean |
94
- | `supermarkt/checkjebon` | [report](outreach/supermarkt-checkjebon-report.md) | https://github.com/supermarkt/checkjebon/issues/22 | https://github.com/supermarkt/checkjebon/pull/23 | open, clean |
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, checks pending |
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 GitHub templates.
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
- 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.
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.6.4 -- oss-signal SalmonPlays/oss-signal --format json
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.6.4` Action tag is used by the repository health workflow for Markdown and SARIF output. The published npm `0.6.4` package has also been executed from a clean temporary directory against the public GitHub repository, returning 100/100 (A).
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
- - Separate workflow demo run: https://github.com/SalmonPlays/oss-signal-adoption-demo/actions/runs/26883001038
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.