@cejel/cejel 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +656 -10
- package/README.md +73 -8
- package/dist/{chunk-QQVCIG4N.js → chunk-SQNTNX5U.js} +1645 -3038
- package/dist/index.js +13 -4
- package/dist/mcp/index.js +216 -216
- package/package.json +9 -7
package/README.md
CHANGED
|
@@ -41,14 +41,15 @@ product, and you can falsify it in ten seconds:
|
|
|
41
41
|
docker run --rm --network=none -v "$PWD:/w" -w /w -v "$PWD/cejel:/cejel:ro" debian:stable-slim /cejel .
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
**npm.**
|
|
44
|
+
**npm (scoped package).**
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
|
-
npx @cejel/cejel .
|
|
47
|
+
npx --yes --package @cejel/cejel cejel .
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
The package is published under the `@cejel` scope while the unscoped name is under npm
|
|
51
|
+
registry review. The installed executable remains `cejel`. For a global install, run
|
|
52
|
+
`npm install --global @cejel/cejel`, then invoke `cejel .`.
|
|
52
53
|
|
|
53
54
|
**GitHub Action** — score every PR and publish the badge:
|
|
54
55
|
|
|
@@ -70,6 +71,49 @@ Released binaries: `cejel-Darwin-arm64`, `cejel-Linux-x86_64`. A Homebrew tap an
|
|
|
70
71
|
remaining architectures are in progress; they are not listed here because they do not exist
|
|
71
72
|
yet.
|
|
72
73
|
|
|
74
|
+
## Leaderboard
|
|
75
|
+
|
|
76
|
+
This repo ships the [Cejel OSS trust leaderboard](./leaderboard/leaderboard.md): the whole
|
|
77
|
+
corpus scored and published in the open — elite OSS projects, Cejel itself, and the private
|
|
78
|
+
studio monorepo Cejel was built inside — with a per-repository evidence report for every
|
|
79
|
+
row under [`leaderboard/reports/`](./leaderboard/reports/). The board is also hosted at
|
|
80
|
+
[cejel.dev](https://cejel.dev). Every score on this board is produced by the same sealed
|
|
81
|
+
public scorer used by `npx cejel .` — check out the source commit printed in the
|
|
82
|
+
report, run the tool, and you will get this number. A required guard does exactly that for
|
|
83
|
+
every corpus row and compares score, verdict, measured coverage, and evidence. No private
|
|
84
|
+
domain collector contributes to any published score, ours included; nobody is exempt.
|
|
85
|
+
|
|
86
|
+
### Redaction policy
|
|
87
|
+
|
|
88
|
+
A path is published exactly when the reader can check it. Every public repository on the
|
|
89
|
+
board cites full evidence paths and line numbers, everywhere, in every artifact — a
|
|
90
|
+
certificate whose evidence you cannot open is not evidence. The two private-repository
|
|
91
|
+
entries (this monorepo's own transparency entry, and Cejel's own source sub-package inside
|
|
92
|
+
it) never cite a source path, anywhere, in any field or format — but the finding itself, its
|
|
93
|
+
dimension, status, score, and content hash always survive; only the location is withheld,
|
|
94
|
+
marked uniformly as "path withheld — private repository". Redaction removes a location, never
|
|
95
|
+
a fact: a private repository failing its own check still shows up on its certificate, by
|
|
96
|
+
name. The v3 repository scanner marks B1 and B5 not applicable for every repository,
|
|
97
|
+
including ours; it does not accept structured substrate evidence for them. They remain
|
|
98
|
+
defined for other rubric inputs, while the repository ranking excludes them fail-closed.
|
|
99
|
+
Nobody is scored on evidence the public scanner cannot collect.
|
|
100
|
+
|
|
101
|
+
### Known false positives (fixed before publishing)
|
|
102
|
+
|
|
103
|
+
Calibrating a rubric against real, elite repositories surfaces mistakes; the record is part
|
|
104
|
+
of the trust claim, not something to bury. Two dimensions produced a punitive score for the
|
|
105
|
+
*absence* of a ratable surface rather than a real weakness, and both are fixed:
|
|
106
|
+
Django was flagged critical on dependency hygiene for using version ranges instead of exact
|
|
107
|
+
pins — normal, deliberate practice for a library, not an app; the rubric now scores
|
|
108
|
+
dependency hygiene against archetype-appropriate norms. OSSF Scorecard — Google's own
|
|
109
|
+
supply-chain security auditing tool — was flagged critical on audit-trail completeness for
|
|
110
|
+
publishing release notes via GitHub Releases instead of a committed `CHANGELOG.md`; a
|
|
111
|
+
repository with no ratable audit surface now returns "insufficient data" (excluded from the
|
|
112
|
+
composite) instead of a punitive score. The board also publishes a measured-coverage
|
|
113
|
+
indicator per row: a score reflects only its *measured* dimensions, and a row scored on fewer
|
|
114
|
+
than half of its applicable dimensions is shown as unranked rather than ordered against
|
|
115
|
+
better-evidenced rows.
|
|
116
|
+
|
|
73
117
|
## Usage
|
|
74
118
|
|
|
75
119
|
```bash
|
|
@@ -80,11 +124,18 @@ Scores the current directory with sensible defaults: no flags, no signup, fully
|
|
|
80
124
|
Prints a concise terminal certificate and writes to `.cejel/`:
|
|
81
125
|
|
|
82
126
|
- `report.json` — the full structured report
|
|
127
|
+
- `attestation.json` — an unsigned in-toto statement binding the report digest, repository
|
|
128
|
+
revision, rubric, and scored-or-abstained outcome; ready for an external signer
|
|
83
129
|
- `certificate.html` — a self-contained HTML certificate (no external assets)
|
|
84
130
|
- `badge.json` — a [shields.io endpoint](https://shields.io/badges/endpoint-badge) payload
|
|
85
131
|
- `badge.svg` — a static, self-contained trust-score badge
|
|
86
132
|
- `summary.json` — a compact digest (score, verdict, top findings)
|
|
87
133
|
|
|
134
|
+
The attestation is deliberately explicit about its assurance level: Cejel creates the
|
|
135
|
+
statement, but it does not pretend to be an independent signer. Until a customer, reviewer,
|
|
136
|
+
or provenance system signs it, `assurance.status` is `unsigned` and `issuer` is
|
|
137
|
+
`self-generated`. An abstained scan carries only the refusal reason, never a numeric score.
|
|
138
|
+
|
|
88
139
|
### Flags
|
|
89
140
|
|
|
90
141
|
- `<path>` — repo to score (default: current directory)
|
|
@@ -227,7 +278,7 @@ Add it to an MCP client config:
|
|
|
227
278
|
"mcpServers": {
|
|
228
279
|
"cejel": {
|
|
229
280
|
"command": "npx",
|
|
230
|
-
"args": ["-y", "--package
|
|
281
|
+
"args": ["-y", "--package=cejel", "cejel-mcp"]
|
|
231
282
|
}
|
|
232
283
|
}
|
|
233
284
|
}
|
|
@@ -238,9 +289,9 @@ The server exposes one tool and two resources:
|
|
|
238
289
|
- `scan` — input `{ path, format? }`; scores the repository at `path` and returns the trust
|
|
239
290
|
cert as JSON (`format: "summary"`, the default, is the compact digest; `format: "json"` is
|
|
240
291
|
the full report, identical to the CLI's `report.json`).
|
|
241
|
-
- `cejel
|
|
292
|
+
- `cejel://last-scan/certificate.html` and `cejel://last-scan/badge.svg` — the
|
|
242
293
|
HTML certificate and SVG badge for the most recent scan (the URI scheme derives from the
|
|
243
|
-
npm package name
|
|
294
|
+
npm package name).
|
|
244
295
|
|
|
245
296
|
Like the CLI, scoring over MCP is fully offline: no network calls, no telemetry, no signup,
|
|
246
297
|
and the server writes no files.
|
|
@@ -248,10 +299,24 @@ and the server writes no files.
|
|
|
248
299
|
## What "offline" means here
|
|
249
300
|
|
|
250
301
|
Scoring a repo — `cejel .` itself, and the Action's scoring step — makes zero network
|
|
251
|
-
calls: no telemetry, no signup, no model call. Fetching the
|
|
302
|
+
calls: no telemetry, no signup, no model call. Fetching the `cejel` package the
|
|
252
303
|
first time (like any npm-distributed CLI, including this Action's own dependency install)
|
|
253
304
|
does need network; that's a one-time install cost, not part of the scoring guarantee.
|
|
254
305
|
|
|
306
|
+
## Help validate Cejel
|
|
307
|
+
|
|
308
|
+
Cejel does not collect telemetry. External validation is therefore opt-in and inspectable:
|
|
309
|
+
|
|
310
|
+
- [Report a calibration result](https://github.com/BargLabs/cejel/issues/new?template=calibration.yml)
|
|
311
|
+
when a score, finding, evidence pointer, or refusal is wrong. The form asks permission before
|
|
312
|
+
a correction is added to the public error ledger.
|
|
313
|
+
- [Join a pack design-partner pilot](https://github.com/BargLabs/cejel/issues/new?template=pack-interest.yml)
|
|
314
|
+
for the Quant or Healthcare Pack. Both remain pilot surfaces until their domain-specific
|
|
315
|
+
calibration gates pass.
|
|
316
|
+
|
|
317
|
+
Submit only public or redacted evidence. Never put credentials, proprietary strategy code,
|
|
318
|
+
patient data, or protected health information in a GitHub issue.
|
|
319
|
+
|
|
255
320
|
## The public leaderboard: what we redact, what we exclude, and where we were wrong
|
|
256
321
|
|
|
257
322
|
We publish a trust board scoring a corpus of well-known open-source repositories alongside
|