What Is the Pre‑Emit Self‑Critique System? Hallmark’s Six Scoring Axes Explained
The pre‑emit self‑critique is a mandatory quality gate in the Hallmark framework that scores every planned artifact on six independent axes before emission, forcing automatic revision until all scores reach 4 or higher on a 1–5 scale.
In the Nutlope/hallmark repository, this system serves as the first line of defense against low‑quality generated content. Before any HTML, CSS, or Markdown file is written to disk, the model must evaluate its proposed output against six specific criteria and embed the results as a machine‑readable stamp on the first line of the file.
How the Pre‑Emit Self‑Critique Works
The system operates as a blocking checkpoint. If any axis scores 3 or lower, the generation loop restarts: the model revises the artifact and re‑scores until every axis hits the official pass threshold of ≥ 4.
According to skills/hallmark/SKILL.md, this rule is non‑optional. It ensures that obvious design weaknesses, generic copy, or structural repetition are caught before downstream processes like the 58‑gate slop‑test begin.
The Six Scoring Axes
The criteria are defined in skills/hallmark/references/slop-test.md and abbreviated as P, H, E, S, R, V. Each measures a distinct quality dimension:
- P – Philosophy: Does the output articulate a clear why or deliberate point of view, rather than functioning as a generic layout?
- H – Hierarchy: Are primary, secondary, and tertiary information levels instantly recognizable through type scale, color weight, and layout ordering?
- E – Execution: Are implementation details (spacing, color contrast, interaction states, accessibility) precise and error‑free?
- S – Specificity: Does the output feel tailor‑made for the specific brief, or could it be any generic page?
- R – Restraint: Has every superfluous element—unnecessary decorations, duplicated components, or padding‑for‑padding’s‑sake—been removed?
- V – Variety: Does the output avoid reusing the exact structural fingerprint of a previous Hallmark page, ensuring a different archetype or variation?
Implementation in the Hallmark Codebase
When scores are finalized, Hallmark stamps them into a comment that must appear as the very first line of the generated file. This format is strictly defined in the slop‑test reference:
/* Hallmark · pre-emit critique: P5 H4 E5 S4 R5 V5 */
This stamp serves dual purposes. It acts as machine‑readable metadata for later automation steps (allowing the 58‑gate slop‑test to skip already‑verified weaknesses) and as a human‑readable audit trail for reviewers.
Key Files Defining the System
| File | Purpose |
|---|---|
skills/hallmark/SKILL.md |
Declares the pre‑emit rule and describes revision loops |
skills/hallmark/references/slop-test.md |
Provides the definitive table of axes and exact comment format |
site/examples/wayfare/style.css |
Real‑world CSS example with the critique stamp |
site/_tests/13-alma/index.html |
HTML demonstration of the stamp in generated output |
Code Examples
Adding the Stamp to CSS
When generating stylesheets, prepend the critique comment before any rules:
/* Hallmark · pre-emit critique: P5 H5 E5 S5 R4 V5 */
body {
font-family: var(--font-body);
line-height: 1.6;
}
The comment must occupy line 1 so automated parsers in the Hallmark pipeline can locate it without scanning the entire file.
Adding the Stamp to Markdown
For Markdown outputs, use an HTML comment to ensure the stamp remains invisible in rendered views:
<!-- Hallmark · pre-emit critique: P4 H4 E5 S3 R5 V5 -->
# Product Overview
This page introduces the new feature set...
Note that a score of S3 in this example would trigger a revision loop, as it falls below the required threshold of 4.
Programmatic Generation Pattern
Below is a pseudo‑code implementation showing how the critique integrates into a generation pipeline:
function preEmitCritique(output) {
const scores = {
P: evaluatePhilosophy(output),
H: evaluateHierarchy(output),
E: evaluateExecution(output),
S: evaluateSpecificity(output),
R: evaluateRestraint(output),
V: evaluateVariety(output),
};
// Check threshold: all must be >= 4
const passed = Object.values(scores).every(s => s >= 4);
const stamp = `/* Hallmark · pre-emit critique: P${scores.P} H${scores.H} E${scores.E} S${scores.S} R${scores.R} V${scores.V} */`;
return {
content: stamp + '\n' + output,
passed,
scores
};
}
Each evaluate* function encapsulates the axis‑specific checklist from the Hallmark skill documentation, ensuring consistent scoring across different model generations.
Summary
-
The pre‑emit self‑critique is a mandatory gate in
Nutlope/hallmarkthat blocks artifact emission until quality thresholds are met. -
Outputs are scored on six axes: Philosophy, Hierarchy, Execution, Specificity, Restraint, and Variety.
-
Scores range from 1–5; a score of 3 or lower forces automatic revision until all axes reach ≥ 4.
-
Results are stamped on line 1 of every file using the format
/* Hallmark · pre-emit critique: P# H# E# S# R# V# */. -
Reference implementations appear in
SKILL.md,slop-test.md, and example files likewayfare/style.css.
Frequently Asked Questions
What happens if one axis scores below 4 but others are perfect?
The system enters a revision loop. According to the rules in skills/hallmark/SKILL.md, the model must regenerate the specific content failing that axis, adjust the design or copy to address the weakness, and re‑score until all six axes meet the ≥ 4 threshold. No file is emitted until this condition is satisfied.
Can the pre‑emit stamp be removed after generation?
Removing the stamp breaks the audit trail and may cause downstream slop‑test gates to fail. The stamp is designed as permanent metadata that remains in the source file, allowing future automated checks to verify that the pre‑emit quality gate was actually passed.
How does the Variety (V) axis prevent templated output?
The Variety axis explicitly checks against "reusing the exact structural fingerprint of a previous Hallmark page." This forces the model to compare the macro‑structure against known archetypes and select a different layout pattern or variation knob, ensuring each generated page feels distinct rather than templated.
Where is the official documentation for the scoring criteria?
The definitive table of axes and scoring rubric lives in skills/hallmark/references/slop-test.md within the repository. The enforcement rule and revision loop logic are documented in skills/hallmark/SKILL.md under the "Pre‑Emit Self‑Critique" section.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →