@blueforge-studio/audit-scoring
Pure, deterministic audit scoring: penalty/suggestion format, per-dimension baseline compare + gate, markdown scorecard. No I/O.
Package Info
Latest Version0.2.0
Licensenone
Keywords-
Repositorygit+https://github.com/blueforge-studio/blueforge-org.git
Author-
Homepagehttps://github.com/blueforge-studio/blueforge-org#readme
Bugs[object Object]
Versions
| Version | Published |
|---|---|
| 0.2.0 | 2026-10-19 |
| 0.1.0 | 2026-10-19 |
Per-version supply chain
| Version | Sig | SBOM | Att |
|---|---|---|---|
| 0.2.0 | |||
| 0.1.0 |
Click a version to view its details.
Supply chain
Provenance
- Published by
- web:5
- When
- 2026-10-19T20:26:09Z
- sha256 (registry-computed)
- 32f90ca57a16345fec2822430ae2c67e2b004f7697e26ea46f42751ac124ef0b
Observed by the registry at publish.
Claimed by the build
The publisher claimed nothing about its build.
Attachments
- Signature
- none
- SBOM
- none
Dependencies
Loading dependency graph...
README
@blueforge-studio/audit-scoring
Pure, deterministic scoring for user/XP audits. No file, network or browser access; the caller reads and writes files. Proposal and decisions: PR #360 (docs/proposals/2026-10-17-audit-packages.md).
Parts:
- Scorecard.
buildScorecard(dimensions)turns per-dimension penalties into 0-100 scores and a weighted aggregate. Every penalty carries its evidence and a requiredbasisofobservedormodelled. A dimension the audit could not finish isblocked: it has no score, gets no low-score suggestion, and stays out of the aggregate. - Baseline gate.
toBaseline(card)stores ids and scores only.gate(baseline, card, { tolerance })compares each dimension with its own baseline and reportsbelow-floor,went-nullanddimension-removed. There is no global floor and no per-content comparison. - Markdown.
renderMarkdown(card, { gate }).
Types are shaped like auditor-sdk's so convergence later is mechanical; this package does not depend on it.
- Coverage (0.2.0). A dimension may declare
coverage: { observed, declared }. Thin coverage lowerslowerBoundandaggregateLowerBound(unwalked units assumed 0); it never raises a score. - Ratchet (0.2.0).
updateRatchet(state, card, { window })raises each dimension's own floor to the minimum of its lastwindowscored runs (default 3) and never lowers it; a blocked run changes nothing.overrideFlooris the only way down and records its reason.ratchetBaseline(state)feedsgate.
Not here: personas and runners (user-audit).