@blueforge-studio/audit-scoring

Pure, deterministic audit scoring: penalty/suggestion format, per-dimension baseline compare + gate, markdown scorecard. No I/O.

Informations sur le paquet

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

VersionPubliée
0.2.02026-10-19
0.1.02026-10-19

Chaîne d'approvisionnement par version

VersionSigSBOMAtt
0.2.0
0.1.0

Cliquez sur une version pour voir ses détails.

Chaîne d'approvisionnement

Provenance

Publié par
web:5
Quand
2026-10-19T20:26:09Z
sha256 (calculé par le registre)
32f90ca57a16345fec2822430ae2c67e2b004f7697e26ea46f42751ac124ef0b

Observé par le registre au moment de la publication.

Déclaré par la compilation

L'éditeur n'a rien déclaré sur sa compilation.

Pièces jointes

Signature
aucune
SBOM
aucune

Dépendances

Chargement du graphe de dépendances...

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 required basis of observed or modelled. A dimension the audit could not finish is blocked: 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 reports below-floor, went-null and dimension-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 lowers lowerBound and aggregateLowerBound (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 last window scored runs (default 3) and never lowers it; a blocked run changes nothing. overrideFloor is the only way down and records its reason. ratchetBaseline(state) feeds gate.

Not here: personas and runners (user-audit).