@blueforge-studio/audit-scoring

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

Información del paquete

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]

Versiones

VersiónPublicada
0.2.02026-10-19
0.1.02026-10-19

Cadena de suministro por versión

VersiónFirmaSBOMAtt
0.2.0
0.1.0

Haz clic en una versión para ver sus detalles.

Cadena de suministro

Procedencia

Publicado por
web:5
Cuándo
2026-10-19T20:26:09Z
sha256 (calculado por el registro)
32f90ca57a16345fec2822430ae2c67e2b004f7697e26ea46f42751ac124ef0b

Observado por el registro en el momento de publicar.

Declarado por la compilación

Quien publicó no declaró nada sobre su compilación.

Adjuntos

Firma
ninguno
SBOM
ninguno

Dependencias

Cargando el grafo de dependencias...

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).