@mrkt_frwd/award
v0.1.2
Published
Award — a calibrated craft critic. Scores a page or an object against external anchors, and refuses to score rather than guessing.
Readme
@mrkt_frwd/award
A calibrated craft critic that returns "unscored" rather than a number it cannot justify.
npx @mrkt_frwd/award axes # the rubric
npx @mrkt_frwd/award prompt # the scorecard to hand a judge
npx @mrkt_frwd/award score axes.jsonWhat it is for
Scoring design work with a model in the loop, without the score quietly becoming meaningless. Award does not look at your page. It holds the rubric and the arithmetic; the seeing comes from a judge you supply. Separating those two halves is the entire design — the arithmetic is deterministic and auditable, the seeing is not, and pretending otherwise is how a scoring system learns to certify its own output.
The claim, and the evidence for it
The same scorecard, where the judge could not evidence two of five axes:
| | compositionalTension | chapterDifferentiation | result | |---|---|---|---| | a critic that zero-fills | 0 | 0 | 49 | | Award | dropped, weights renormalised | dropped | 77 |
Twenty-eight points, and not one of them is about the page. Abstention is
required, not optional: if the capture carries no evidence for an axis, the
judge emits skip and says why. It never guesses a middle score.
And when nothing at all is scorable:
unscored — no axis was scorable. That is an answer, not a zero.The doctrine
Seven rules. Each one is a bug that shipped here first, and each has a test that fails if the guard is removed.
- Never tune a threshold to make a run pass. Fix the work. Gates may be optimised; quality scores may not — a quality scalar under optimisation pressure gets gamed, and this project has three recorded instances.
- Tests must recompute. Never assert over a checked-in result file, or both sides of the comparison come from the same file.
- The gold set must include work you did not produce. Without external anchors, separation only proves the critic agrees with your own ranking — it cannot detect that the whole set sits too low.
- Calibration may never lower a bar. It may only move the vision blend weight.
- Calibrate against the medium you are judging. Page anchors scored with a product-photography rubric inverted the ranking. Objects judged against screenshots of web pages produced specific, correct findings and no stable bar.
- An abstained axis is dropped, never scored zero.
- A set containing only your own work can never report ready for training — enforced in code, not convention.
Full text: npx @mrkt_frwd/award doctrine
Commands
award axes | prompt | score <axes.json> | verdict <verdict.json>
award brief | divergence <frames…> --against <anchors…> | providers | doctrinedivergence is the guard against reproducing a reference you were calibrating
against — it compares captured frames to anchor stills and refuses a composition
clone.
Requirements
Node 18+. No dependencies.
MIT © Joe Asare. Built at Joe Asare Studio, after the scoring system there learned to certify its own output.
