What Are the Six Axes of Hallmark's Pre-Emit Self-Critique? A Complete Breakdown
Hallmark uses six distinct evaluation axes—Philosophy, Hierarchy, Execution, Specificity, Restraint, and Variety—to score every artifact 1-5 before emitting output, requiring revision if any score falls below 3.
Hallmark's design skill enforces quality through a pre-emit self-critique that runs automatically before any output is generated. According to the Nutlope/hallmark source code, this quality gate ensures every artifact meets strict standards across six dimensions. This article explains each axis, how scoring works, and where to find the implementation in the codebase.
What Is Pre-Emit Self-Critique?
Pre-emit self-critique is Hallmark's built-in quality control mechanism. Rather than generating output immediately, the system evaluates its own work against six criteria, assigns scores, and blocks emission if quality thresholds aren't met.
This process is defined in [skills/hallmark/SKILL.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md) in the "Pre-emit self-critique" section. The scoring format is documented in [skills/hallmark/references/slop-test.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/slop-test.md).
The Six Axes Explained
Each axis evaluates a distinct quality dimension. Scores range from 1 (poor) to 5 (excellent). Any score below 3 triggers mandatory revision.
Philosophy (P)
Evaluates: Consistency with the overarching design philosophy and intent.
This axis checks whether the output aligns with established design principles. Does the solution match the intended approach? Is the reasoning coherent with the project's stated goals?
Hierarchy (H)
Evaluates: Clarity and effectiveness of visual and information hierarchy.
Good hierarchy guides users naturally through content. This axis measures whether the structure emphasizes the right elements, uses appropriate prominence levels, and creates clear reading order.
Execution (E)
Evaluates: Quality of implementation—correctness of markup, CSS, and component behavior.
Execution checks technical fundamentals. Is the code valid? Do components render correctly? Are there broken behaviors or accessibility failures?
Specificity (S)
Evaluates: Precision of details—concrete metrics, exact copy, and explicit design decisions.
Vague placeholders fail this axis. Hallmark demands exact values, real copy, and specific measurements rather than generic examples like "X items" or "Y% improvement."
Restraint (R)
Evaluates: Avoidance of over-embellishment, unnecessary flourishes, or invented metrics.
This axis combats "slop"—the tendency to add decorative elements without purpose. It also catches hallucinated statistics or unsupported claims. Review [skills/hallmark/references/anti-patterns.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/anti-patterns.md) for patterns that violate restraint.
Variety (V)
Evaluates: Structural and visual diversity—ensuring each page/component feels unique rather than a template copy.
Repetitive, cookie-cutter output receives low Variety scores. This axis rewards differentiation between components and pages.
How the Scoring System Works
The six-letter scoring format follows a consistent pattern:
/* Hallmark · pre-emit critique: P5 H4 E5 S4 R5 V5 */
Each letter corresponds to an axis, with the number indicating the score. The comment stamp appears in generated code, creating an auditable quality record.
Programmatic Score Checking
Pseudo-code for implementing the revision gate:
function preEmitCritique(scores) {
const [P, H, E, S, R, V] = scores;
if ([P, H, E, S, R, V].some(s => s < 3)) {
// trigger a revision pass
revisitDesign();
}
}
This pattern matches the logic implied by [SKILL.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md)—any sub-3 score blocks emission.
React/TSX Example
export default function Hero() {
return (
<section className="hero">
{/* Hallmark · pre-emit critique: P4 H3 E5 S5 R4 V5 */}
<h1>Welcome</h1>
<p>Crafted with purpose.</p>
</section>
);
}
The inline comment documents the quality assessment for future reviewers.
Key Implementation Files
| File | Purpose |
|---|---|
[skills/hallmark/SKILL.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md) |
Defines all six axes and scoring rules |
[skills/hallmark/references/slop-test.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/slop-test.md) |
Documents the critique stamp format |
[skills/hallmark/references/anti-patterns.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/anti-patterns.md) |
Lists specific failures for Restraint/Specificity axes |
site/_tests/ |
Example outputs with critique stamps |
Summary
- Hallmark's pre-emit self-critique runs automatically before any output generation.
- Six axes—Philosophy, Hierarchy, Execution, Specificity, Restraint, Variety—each score 1-5.
- Scores below 3 trigger mandatory revision.
- The scoring system is defined in [
SKILL.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md) and stamped as inline comments. - This quality gate prevents "slop" by enforcing specificity, restraint, and technical correctness.
Frequently Asked Questions
Why does Hallmark use a pre-emit critique instead of post-generation review?
Pre-emit critique blocks low-quality output before it reaches users. As defined in the Hallmark source code, this prevents the accumulation of technical debt and ensures every emitted artifact meets minimum standards. Post-hoc review would allow problematic code to persist.
What happens if multiple axes score below 3?
Any single axis below 3 triggers revision regardless of other scores. The [slop-test.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/slop-test.md) reference implies a binary pass/fail on the threshold rather than an average or weighted calculation.
How does the Restraint axis differ from Specificity?
Specificity demands concrete, precise details—actual numbers and real copy. Restraint prohibits excess detail—decorative flourishes, invented metrics, or unsupported claims. An output can fail both (vague and embellished), pass both (precise and focused), or split them (specific but over-designed, or restrained but vague).
Where can I see real examples of critique stamps?
The site/_tests/ directory contains generated output files with embedded critique stamps. These examples demonstrate how the six axes appear in practice across different component types and page structures.
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 →