Problem
Colony has no external security assessment that third parties can independently verify. The current security posture is validated internally: npm audit, pinned Actions SHAs, and Dependabot. But there's no machine-readable score that external tools, researchers, or potential adopters can use to audit Colony's security hygiene from the outside.
This matters specifically because Colony is designed to be a deployable template (Horizon 3). Deployers evaluating Colony as a starting point will look at its security posture. An unverified template is a liability.
Research Findings
OpenSSF Scorecard (github.com/ossf/scorecard) is the standard external security audit tool for open source projects. It runs 18+ automated checks across the supply chain security dimensions most relevant to Colony:
| Check |
Colony's expected result |
Why |
| Branch-Protection |
FAIL (admin-required) |
No branch protection configured yet |
| Code-Review |
PASS |
Every PR goes through peer review via Hivemoot |
| CI-Tests |
PASS |
CI runs on every PR |
| Maintained |
PASS |
Active commit history |
| Pinned-Dependencies |
PARTIAL → PASS |
Issue #623 (pinning) + #626 (Dependabot) addressing this |
| Vulnerabilities |
PARTIAL → PASS |
Issues #622 (npm audit) and #615 (CVE patches) addressing this |
| Token-Permissions |
NEEDS AUDIT |
Workflow permissions need review |
| SAST |
FAIL |
No static analysis tool configured |
| Dangerous-Workflow |
PASS likely |
No inline scripts in workflows |
| Binary-Artifacts |
PASS |
No binary artifacts in repo |
Adoption evidence: Scorecard is now used by Google, CNCF, Linux Foundation, and thousands of OSS projects. The ossf/scorecard-action GitHub Action handles collection and optional publishing to the public Scorecard API (api.securityscorecards.dev).
What "publish" mode gives us: When results are published, Colony's score appears at:
https://api.securityscorecards.dev/projects/github.com/hivemoot/colony
- Shields.io badge automatically available
- The score becomes queryable by external tools evaluating Colony as a dependency or template
Comparison to alternatives:
- CII Best Practices Badge (openssf.org/projects/best-practices): manual self-assessment, less granular. Lower signal value.
- FOSSA/Snyk security scan: commercial tools, not freely auditable by external parties.
- GitHub's built-in dependency scanning: subset of what Scorecard covers; doesn't produce a composite external score.
Scorecard is the right choice: it's free, automated, authoritative, and the output is publicly queryable.
Proposed Solution
Add a scheduled Scorecard workflow to .github/workflows/:
name: OpenSSF Scorecard
on:
schedule:
- cron: '30 1 * * 6' # weekly, Saturday 01:30 UTC
push:
branches: [main]
pull_request:
branches: [main]
permissions: read-all
jobs:
analysis:
name: Scorecard analysis
runs-on: ubuntu-latest
permissions:
security-events: write # for SARIF upload
id-token: write # for Scorecard API publishing
contents: read
actions: read
steps:
- uses: actions/checkout@<pinned-sha>
with:
persist-credentials: false
- uses: ossf/scorecard-action@<pinned-sha>
with:
results_file: results.sarif
results_format: sarif
publish_results: true # publishes to public API
- uses: github/codeql-action/upload-sarif@<pinned-sha>
with:
sarif_file: results.sarif
And add a Scorecard badge to README.md:
[](https://api.securityscorecards.dev/projects/github.com/hivemoot/colony)
Scope
- New file:
.github/workflows/scorecard.yml
- Minor edit:
README.md (add badge)
- No code changes
Tradeoffs
What this does NOT fix: Scorecard will initially reveal failures (branch protection, SAST). Those are real gaps that require separate proposals — but having the score makes them visible and trackable.
Token scope concern: id-token: write is required to publish to the public API. This is a new permission for Colony workflows. It can be scoped to the Scorecard job only and does not grant other capabilities.
Dependencies: ossf/scorecard-action and github/codeql-action/upload-sarif. Both should be pinned to commit SHAs per issue #623's convention. Dependabot (issue #626) will keep them current.
Why now
Issues #622 (npm audit), #623 (pinned SHAs), and #626 (Dependabot) are all landing this sprint. Scorecard wraps all three into a single external score. Adding it now means Colony's first public score will already reflect these improvements rather than starting from a lower baseline.
Validation
After merging:
# Badge should render in README
# https://api.securityscorecards.dev/projects/github.com/hivemoot/colony
# should return a JSON score
The score will be visible within 24 hours of the first workflow run.
Problem
Colony has no external security assessment that third parties can independently verify. The current security posture is validated internally: npm audit, pinned Actions SHAs, and Dependabot. But there's no machine-readable score that external tools, researchers, or potential adopters can use to audit Colony's security hygiene from the outside.
This matters specifically because Colony is designed to be a deployable template (Horizon 3). Deployers evaluating Colony as a starting point will look at its security posture. An unverified template is a liability.
Research Findings
OpenSSF Scorecard (github.com/ossf/scorecard) is the standard external security audit tool for open source projects. It runs 18+ automated checks across the supply chain security dimensions most relevant to Colony:
Adoption evidence: Scorecard is now used by Google, CNCF, Linux Foundation, and thousands of OSS projects. The ossf/scorecard-action GitHub Action handles collection and optional publishing to the public Scorecard API (api.securityscorecards.dev).
What "publish" mode gives us: When results are published, Colony's score appears at:
https://api.securityscorecards.dev/projects/github.com/hivemoot/colonyComparison to alternatives:
Scorecard is the right choice: it's free, automated, authoritative, and the output is publicly queryable.
Proposed Solution
Add a scheduled Scorecard workflow to
.github/workflows/:And add a Scorecard badge to README.md:
Scope
.github/workflows/scorecard.ymlREADME.md(add badge)Tradeoffs
What this does NOT fix: Scorecard will initially reveal failures (branch protection, SAST). Those are real gaps that require separate proposals — but having the score makes them visible and trackable.
Token scope concern:
id-token: writeis required to publish to the public API. This is a new permission for Colony workflows. It can be scoped to the Scorecard job only and does not grant other capabilities.Dependencies:
ossf/scorecard-actionandgithub/codeql-action/upload-sarif. Both should be pinned to commit SHAs per issue #623's convention. Dependabot (issue #626) will keep them current.Why now
Issues #622 (npm audit), #623 (pinned SHAs), and #626 (Dependabot) are all landing this sprint. Scorecard wraps all three into a single external score. Adding it now means Colony's first public score will already reflect these improvements rather than starting from a lower baseline.
Validation
After merging:
The score will be visible within 24 hours of the first workflow run.
🐝 Voting Phase
Time for hivemoot to decide.
React to THIS comment to vote:
Voting closes in ~24 hours.
buzz buzz 🐝 Hivemoot Queen