How to Use `hallmark audit` to Score UI Against Anti-Patterns
To score a UI against anti-patterns, run hallmark audit <target-file> from the Nutlope/hallmark CLI, which reads your HTML and outputs a ranked markdown report of detected AI-generated design "tells" without modifying any source files.
The hallmark audit command is a read-only analysis tool in the Hallmark design-system CLI that evaluates HTML files against a canonical library of UI anti-patterns. As implemented in the Nutlope/hallmark repository, this verb scans your markup for AI-generated design "tells" and structural issues, producing a severity-ranked punch-list you can use to guide manual fixes or automated redesigns.
How the Scoring Algorithm Works
The hallmark audit verb follows a five-step pipeline defined in skills/hallmark/SKILL.md and skills/hallmark/references/verbs/audit.md. Each step transforms the input HTML into a structured report without altering the source.
Step 1: Load the Anti-Pattern Library
Hallmark ships with a definitive reference list located at skills/hallmark/references/anti-patterns.md. This file contains the catalog of UI patterns considered AI-generated or undesirable, including Invented metrics, Re-drawn chrome, and Italic headers. The audit verb loads this library into memory before parsing your target file.
Step 2: Parse the Target HTML
The verb reads the supplied HTML (or screenshot-derived markup) using a DOM walker. This step is purely observational; no changes are written to disk. The parser extracts structural elements, class names, and visual attributes required for pattern matching.
Step 3: Execute Pattern Matching and Slop-Tests
Hallmark evaluates each DOM element against the anti-pattern catalog. Simultaneously, it runs the 58 "slop-test" gates documented in skills/hallmark/references/slop-test.md. These structural checks catch deeper architectural issues such as mid-render token improvisation and eyebrow-plus-heading misuse that surface-level pattern matching might miss.
Step 4: Rank Findings by Severity
Detected issues are classified into three severity tiers: critical, major, and minor. The algorithm sorts all findings into a punch-list format, prioritizing structural anti-patterns that affect user experience over cosmetic inconsistencies.
Step 5: Generate the Markdown Report
The verb outputs a concise markdown report to stdout. As shown in site/_tests/verbs/audit/audit-report.md, the report format includes the anti-pattern name, a brief explanation, and a recommended fix. No files are written during this process unless you explicitly redirect the output.
Running Your First Audit
Basic CLI Usage
Run the audit against any HTML file in your project:
hallmark audit site/examples/wayfare/index.html
Sample output:
# hallmark audit site/examples/wayfare/index.html
## Findings (ranked)
1. ✗ Gradient hero
→ Use a solid surface or a single accent colour.
2. ✗ Inter as display + body
→ Pair a distinctive display font with a body font.
3. ✗ Centered everything
→ Bias the layout and break symmetry.
4. ✗ Emoji badge
→ Pick an icon library or remove the emoji.
5. ✗ Gradient pill CTA
→ Use a solid fill or outline with a single hue.
The report links directly to the anti-pattern definitions in skills/hallmark/references/anti-patterns.md, allowing you to understand the rationale behind each recommendation.
CI/CD Integration
Because hallmark audit is read-only and returns a markdown artifact, it integrates cleanly into GitHub Actions workflows:
# .github/workflows/audit.yml
name: UI Audit
on: [push, pull_request]
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Hallmark audit
run: |
hallmark audit site/index.html > audit-report.md
- name: Upload report
uses: actions/upload-artifact@v3
with:
name: audit-report
path: audit-report.md
Reviewers can view the uploaded markdown directly in the GitHub UI to verify that new commits do not introduce AI-generated design patterns.
Acting on Audit Results
The hallmark audit output serves two primary workflows: refinement or redesign.
Refinement is appropriate when the audit reveals isolated cosmetic issues. You manually fix the listed anti-patterns while preserving the page's macro-structure.
Redesign is recommended when the audit detects fundamental structural problems. You can feed the audit report into the redesign verb using the --notes flag:
# Generate the audit report
hallmark audit src/pages/home.html > audit.md
# Redesign while respecting the flagged anti-patterns
hallmark redesign src/pages/home.html --notes audit.md
The --notes flag ensures the redesign verb considers the existing anti-patterns, preventing the new design from repeating the same mistakes.
Genre-Aware Scoring
If your project contains a design.md file or genre specification in the project root, hallmark audit applies genre-aware overrides during scoring. This feature, documented in skills/hallmark/references/verbs/audit.md, adjusts the severity of certain anti-patterns based on your specific design system's conventions.
Summary
hallmark auditis a read-only CLI verb in Nutlope/hallmark that scores HTML againstskills/hallmark/references/anti-patterns.md.- The scoring process includes 58 slop-test gates for structural validation and ranks findings by severity (critical, major, minor).
- Output is a markdown punch-list suitable for manual review, CI artifacts, or feeding into
hallmark redesignvia the--notesflag. - The tool respects genre-aware configurations from
design.mdand never modifies source files. - Use it to detect AI-generated "tells" like gradient heroes, emoji badges, and typography misuse before they reach production.
Frequently Asked Questions
What file types does hallmark audit support?
The verb primarily targets HTML files. According to skills/hallmark/SKILL.md, it parses standard HTML markup or screenshot-derived markup representations. While the core focus is HTML, the DOM walker can process any markup format that resolves to a parseable document structure.
Does hallmark audit modify my source files?
No. The audit verb is strictly read-only. As specified in skills/hallmark/references/verbs/audit.md, it parses the target without making edits, outputting results to stdout. This makes it safe to run repeatedly on production code or in CI pipelines without risk of accidental modifications.
How does Hallmark determine the severity of anti-patterns?
Severity is assigned based on the structural impact of the pattern. Critical issues—such as those detected by the slop-test gates in skills/hallmark/references/slop-test.md—indicate fundamental architectural problems. Major and minor tiers correspond to user-facing inconsistencies and cosmetic deviations, respectively. The ranking algorithm ensures structural fixes are prioritized over aesthetic adjustments.
Can I customize the anti-pattern rules for my project?
Yes. While Hallmark provides a canonical list in skills/hallmark/references/anti-patterns.md, you can influence scoring through genre-aware overrides. By defining a design.md or genre specification in your project root, you instruct the audit verb to adjust severity weights or ignore specific patterns that align with your established design system conventions.
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 →