# The 6 Axes of Hallmark's Pre‑Emit Self‑Critique Explained

> Understand Hallmark's 6 axes of pre-emit self-critique: Philosophy, Hierarchy, Execution, Specificity, Restraint, and Variety. Learn how Hallmark ensures quality design with this scoring system.

- Repository: [Hassan El Mghari/hallmark](https://github.com/Nutlope/hallmark)
- Tags: deep-dive
- Published: 2026-08-02

---

**Hallmark scores every design artifact on six distinct axes—Philosophy, Hierarchy, Execution, Specificity, Restraint, and Variety—each rated 1 to 5, and blocks output emission if any score falls below 3.**

Before generating any final markup, the Hallmark design skill built by `Nutlope/hallmark` performs a mandatory self‑critique. This gatekeeping mechanism ensures all generated UI components meet strict quality standards for design systems, preventing "slop" from reaching production files.

## What Is the Pre‑Emit Self‑Critique?

The **pre‑emit self‑critique** is a rule‑based evaluation step defined in [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md). It executes immediately before Hallmark writes content to disk, acting as a final quality checkpoint. If the artifact fails to meet minimum thresholds on any of the six evaluation axes, Hallmark must revisit and revise the design rather than emit the output.

This process is distinct from post‑generation linting; it operates on the generated content structure itself, assessing both the design intent and implementation quality.

## The Six Axes Defined

Each axis evaluates a specific dimension of design craft, scored on a 1‑5 Likert scale where 5 represents exemplary execution.

### Philosophy

**Philosophy** measures alignment with the overarching design intent and systemic thinking. It checks whether the component honors the established design language, maintains consistency with brand principles, and contributes coherently to the broader information architecture.

### Hierarchy

**Hierarchy** evaluates the clarity and effectiveness of visual and information structure. This axis ensures that typographic scale, spacing relationships, and content prominence guide user attention appropriately, creating clear paths for navigation and comprehension.

### Execution

**Execution** assesses the technical quality of implementation. This includes correctness of markup semantics, validity of CSS, accessibility attributes, and whether component behavior matches the specified interaction patterns without bugs or anti‑patterns.

### Specificity

**Specificity** demands precision in details. High scores require concrete metrics (exact pixel values, specific timing functions), verbatim copy text rather than placeholders, and explicit design decisions rather than vague or generalized specifications.

### Restraint

**Restraint** guards against over‑embellishment. This axis penalizes unnecessary flourishes, decorative elements that distract from function, invented metrics without data backing, or any addition that does not serve the core user need. The [`skills/hallmark/references/anti-patterns.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/anti-patterns.md) file catalogs common violations that impact this score.

### Variety

**Variety** ensures structural and visual diversity across the system. It prevents template fatigue by verifying that each page or component feels distinct, avoiding repetitive layouts that signal boilerplate generation rather than thoughtful, contextual design.

## How the Scoring System Works

Hallmark applies a strict blocking rule: **any axis scoring below 3 triggers a mandatory revision pass**. The aggregate score does not matter; a single weak dimension invalidates the entire artifact.

The scoring stamp follows a standardized comment format embedded in the generated code:

```css
/* Hallmark · pre‑emit critique: P5 H4 E5 S4 R5 V5 */

```

In this example, Philosophy scores 5, Hierarchy scores 4, Execution scores 5, Specificity scores 4, Restraint scores 5, and Variety scores 5. Since all values meet the ≥3 threshold, the component may proceed to emission.

## Implementation in the Codebase

The six axes are formally defined in the **Pre‑emit self‑critique** section of [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md). The stamping format and validation logic are documented in [`skills/hallmark/references/slop-test.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/slop-test.md), which specifies how scores must be recorded to pass the quality gate.

Concrete anti‑patterns that would lower Restraint or Specificity scores are catalogued in [`skills/hallmark/references/anti-patterns.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/anti-patterns.md). For working examples of critique stamps in production contexts, inspect the test outputs located in `site/_tests/`.

Programmatically, the validation logic resembles this pattern:

```javascript
function validatePreEmitCritique(scores) {
  const [philosophy, hierarchy, execution, specificity, restraint, variety] = scores;
  const minimumThreshold = 3;
  
  if ([philosophy, hierarchy, execution, specificity, restraint, variety]
      .some(score => score < minimumThreshold)) {
    return { emit: false, action: 'revisitDesign' };
  }
  return { emit: true };
}

```

When working with React components, the critique stamp appears as a JSX comment:

```tsx
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>
  );
}

```

## Summary

- **Hallmark’s pre‑emit self‑critique** evaluates every artifact before output generation, acting as a mandatory quality gate.
- **Six axes**—Philosophy, Hierarchy, Execution, Specificity, Restraint, and Variety—cover design intent, visual hierarchy, code quality, detail precision, editorial discipline, and structural diversity.
- **Scoring range** is 1‑5 per axis; any score below 3 forces a redesign iteration.
- **Source definitions** reside in [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md), with stamping conventions documented in [`skills/hallmark/references/slop-test.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/slop-test.md).
- **Anti‑patterns** that threaten Restraint and Specificity scores are enumerated in [`skills/hallmark/references/anti-patterns.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/anti-patterns.md).

## Frequently Asked Questions

### What happens if a Hallmark component scores a 2 on any single axis?

If any axis receives a score below 3, Hallmark must **block emission and trigger a revision pass**. The system does not average scores or allow compensation across axes; each dimension must independently meet the minimum threshold of 3 before the artifact can be emitted.

### Where are the six axes formally defined in the Hallmark repository?

The canonical definitions appear in **[`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md)** within the "Pre‑emit self‑critique" section. This file establishes the scoring criteria, while [`skills/hallmark/references/slop-test.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/slop-test.md) specifies the comment stamp format used to record scores in generated code.

### How does the Restraint axis prevent low‑quality design output?

**Restraint** explicitly penalizes over‑embellishment and invented metrics. By requiring designers (and the AI system) to justify every element, this axis eliminates decorative noise, placeholder data presented as real, and unnecessary flourishes that do not serve functional goals. Violations are cross‑referenced against the anti‑patterns catalog in [`skills/hallmark/references/anti-patterns.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/anti-patterns.md).

### Can the pre‑emit self‑critique be disabled or configured with different thresholds?

According to the current implementation in `Nutlope/hallmark`, the **<3 blocking threshold** appears to be hardcoded within the skill's rule set. The system treats this as a non‑negotiable quality gate, ensuring consistent enforcement of design standards across all generated artifacts without user‑configurable override.