Skip to content

Commit 9c5de30

Browse files
docs: OpenSSF Scorecard + Software Heritage badges + CITATION.cff (#85)
## Summary Three accreditations added with zero new infrastructure required: 1. **OpenSSF Scorecard badge** — numerical score (0–10) alongside the existing Best Practices boolean badge. Workflow `.github/workflows/scorecard.yml` already publishes the data; this just makes it visible. 2. **Software Heritage badge** — automatic archival credential. softwareheritage.org indexes public GitHub repos without setup; the badge surfaces it. 3. **CITATION.cff** — Citation File Format 1.2.0. Drives GitHub's "Cite this repository" sidebar button and is consumable by Zenodo, Zotero, BibTeX converters, etc. ## What this enables - The Scorecard score is now externally visible — auditors and downstream consumers can verify supply-chain posture without inspecting workflows. - Software-Heritage archival becomes citable evidence of digital preservation. - Academic users can cite BoJ Server properly (OU affiliation surfaced). ## Zenodo (next step, owner action) README's new **Citing** section documents the 4-step Zenodo enablement (link via zenodo.org dashboard, flip toggle, cut a release → DOI). After enablement, add the DOI badge and update `CITATION.cff`'s `doi:` field. I left the DOI badge OUT of this PR because a placeholder badge is worse than none. ## What's NOT in this PR **REUSE compliance** is deferred. `reuse lint` shows the project isn't compliant — bad licences (EXHIBIT-A/B not `LicenseRef-` prefixed, PMPL not SPDX-valid), missing `CC-BY-4.0` + `PMPL-2.0-or-later` text files, 4 invalid SPDX expressions. Resolving these collides head-on with the active licence-debt ledger work (PMPL→MPL-2.0 reconciliation). Better to land REUSE compliance after that ledger closes so the SPDX fixes happen exactly once. ## Test plan - [ ] Scorecard badge renders (will show "loading" briefly, then numerical score) - [ ] Software Heritage badge renders - [ ] GitHub sidebar shows the "Cite this repository" button on the repo home page - [ ] No CI regressions (this is docs/config-only) 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent b0e52ed commit 9c5de30

3 files changed

Lines changed: 60 additions & 0 deletions

File tree

CITATION.cff

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Citation File Format — https://citation-file-format.github.io/
2+
# This file describes how to cite the boj-server software.
3+
cff-version: 1.2.0
4+
title: "BoJ Server — Bundle of Joy MCP Server"
5+
message: "If you use this software, please cite it using the metadata below."
6+
type: software
7+
authors:
8+
- given-names: Jonathan
9+
name-particle: D.A.
10+
family-names: Jewell
11+
email: j.d.a.jewell@open.ac.uk
12+
affiliation: "The Open University"
13+
alias: hyperpolymath
14+
repository-code: "https://github.com/hyperpolymath/boj-server"
15+
url: "https://github.com/hyperpolymath/boj-server"
16+
abstract: >-
17+
Bundle of Joy (BoJ) Server is a cartridge-based Model Context Protocol (MCP)
18+
gateway. Each cartridge — covering databases, container runtimes, git forges,
19+
Kubernetes, observability, secrets, IaC, cloud providers, and multi-instance
20+
AI coordination — is a formally verified Idris2 ABI + Zig FFI + Deno/JS
21+
adapter triple. The server exposes 115 cartridges through a unified stdio
22+
MCP surface plus a local REST API on port 7700. A local-coord-mcp cartridge
23+
provides loopback peer discovery, typed envelopes, claim/heartbeat/watchdog,
24+
and master/journeyman/apprentice supervision for multi-agent AI workflows.
25+
keywords:
26+
- mcp
27+
- model-context-protocol
28+
- llm-tools
29+
- formal-verification
30+
- idris2
31+
- zig
32+
- cartridge-architecture
33+
- devops
34+
- multi-agent
35+
- ai-coordination
36+
license: MPL-2.0
37+
version: 0.4.6
38+
date-released: "2026-04-27"

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# boj-server
22

33
[![OpenSSF Best Practices](https://img.shields.io/badge/OpenSSF-Best_Practices-green?logo=opensourcesecurity)](https://www.bestpractices.dev/en/projects/new?repo_url=https://github.com/hyperpolymath/boj-server)
4+
[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/hyperpolymath/boj-server/badge)](https://scorecard.dev/viewer/?uri=github.com/hyperpolymath/boj-server)
45
[![Glama MCP Server](https://glama.ai/mcp/servers/hyperpolymath/boj-server/badge)](https://glama.ai/mcp/servers/hyperpolymath/boj-server)
56
[![Green Hosting](https://api.thegreenwebfoundation.org/greencheckimage/boj-server.net)](https://www.thegreenwebfoundation.org/green-web-check/?url=boj-server.net)
7+
[![Software Heritage](https://archive.softwareheritage.org/badge/origin/https://github.com/hyperpolymath/boj-server/)](https://archive.softwareheritage.org/browse/origin/?origin_url=https://github.com/hyperpolymath/boj-server)
68

79
BoJ (Bundle of Joy) is a unified MCP server that consolidates all hyperpolymath tooling into a single endpoint — GitHub, GitLab, Cloudflare, Vercel, Verpex, Gmail, Calendar, browser automation, research, ML, and 115 open-source cartridges.
810

@@ -237,6 +239,21 @@ Run the coherence tests:
237239
npm test
238240
```
239241

242+
## Citing
243+
244+
If you use BoJ Server in academic work, citation metadata is in [`CITATION.cff`](./CITATION.cff). GitHub renders a "Cite this repository" button in the sidebar from this file.
245+
246+
Per-release DOIs are available via Zenodo. To enable them:
247+
248+
1. Log in to [zenodo.org](https://zenodo.org/) with your GitHub account.
249+
2. Account → GitHub → flip the **boj-server** repository toggle to on.
250+
3. Cut a new GitHub release; Zenodo auto-archives it and mints a DOI.
251+
4. Add the DOI badge to this README:
252+
```markdown
253+
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.XXXXXXX.svg)](https://doi.org/10.5281/zenodo.XXXXXXX)
254+
```
255+
5. Update the `doi:` field in `CITATION.cff` to match.
256+
240257
## License
241258

242259
MPL-2.0 — see [LICENSE](./LICENSE).

glama.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@
4444
"description": "URL for the local coordination bus backend.",
4545
"default": "http://127.0.0.1:7745"
4646
},
47+
"COORD_REQUIRE_NICKEL": {
48+
"type": "string",
49+
"description": "Set to '1' to enable strict Nickel-contract validation on coord_send_gated envelopes. Default off (envelopes validated permissively).",
50+
"default": "0"
51+
},
4752
"BOJ_TOOL_SCOPE": {
4853
"type": "string",
4954
"description": "Advertised tool-surface scope. 'full' (or unset) advertises every tool (default, backward-compatible). 'core' advertises only the discovery/dispatch core (boj_health, boj_menu, boj_cartridges, boj_cartridge_info, boj_cartridge_invoke) plus all coord_* tools. A CSV of domain prefixes (e.g. 'core,github,browser') advertises core plus the named explicit groups. Every explicit boj_<domain>_* tool remains reachable via boj_cartridge_invoke regardless of scope.",

0 commit comments

Comments
 (0)