This article is a machine translation of the contents of the following URL, which I wrote in Japanese:
Introduction
As of November 3, 2026, the repository Nutlope/hallmark was trending on GitHub. It's a "design skill" for AI coding agents, with the tagline "refuses to look AI-generated."
When AI generates screens, they tend to produce "familiar structures" such as small labels above headings, different colors for some words, and email registration fields at the end. hallmark provides rules to prohibit these tendencies, along with 50 themes (materials) and inspection scripts as skills.
In this article, we generated the same prompt once using Claude Code without skills and once using hallmark, comparing their appearance, factual accuracy, time, and cost. The subject matter is a page introducing 13 services from Amazon Bedrock AgentCore. We thought the large number of services and the complex information architecture would highlight the difference in skills.
Repository
https://github.com/Nutlope/hallmark
What is hallmark?
The following is based on the README description. Functionality has been confirmed through subsequent testing.
| Item | Content | Accuracy |
|---|---|---|
| Positioning | Design skills for AI coding agents | README description |
| Author/License | Repository owner is Nutlope, stated as "Made by Together AI". MIT | README description |
| Supported Tools | Claude Code, Codex CLI, Cursor, OpenCode | README description |
| Requirements | Node 18 or higher. Browser testing requires puppeteer-core and Chrome separately | README description |
| Output | Self-contained HTML+CSS | README description. This output is also an HTML1 file |
As of 2026-11-03, it had approximately 46.6k stars and 2.5k forks.
How it works
According to the README, the process is as follows:
- Preflight: Reads project settings and asks for actual materials (photos, numbers, etc.) only once. The policy is not to supplement materials with fictional stories.
- Theme selection: Presents 3 suitable options from 50 types.
- Create the hero section first, render it, and review it.
-
sloplint --renderinspects it at 8 widths, and a sub-agent in the new context reviews it.
The rules are divided into three layers.
| Layer | Meaning | Example (from README) |
|---|---|---|
| Floor | Stop shipping | Contrast, focus state, reduced motion, fabricated facts, mobile display issues |
| Reflex | Default quirks to avoid. Overwriteable if reason is recorded | Label above all headings, color only one word of headings, general email registration at the end of all pages |
| Finish | Final details. Do not stop shipping | - |
Reference: Nutlope/hallmark
Pre-installation check
During installation, an external security rating was displayed.
| Rating source | Result |
|---|---|
| Gen | High Risk |
| Socket | 0 alerts |
| Snyk | Med Risk |
The basis for the rating was not displayed, so I searched scripts/ to check (not a thorough reading of the entire text).
| Verification Items | Results |
|---|---|
AI Image Generation (imagegen.mjs) | Calls the Together AI API, but does not communicate if TOGETHER_API_KEY is not set (the code contains "opt-in") |
Photo Acquisition (theme.mjs) | Acquisition destination is limited to upload.wikimedia.org |
Configuration File Rewriting (install-hook.mjs) | Rewrites settings.json. Not executed this time |
| Clearly Suspicious External Transmission | Not found within the search scope |
Hallmark skills operate with agent privileges. When implementing, it is recommended to check the script and limit the scope by separating the working folder, etc.
Verification Design
Comparison Points
Claude Code without skills
Claude Code with hallmarks (project-based, no hooks)
Subject Matter and Materials
The subject matter is the Amazon Bedrock AgentCore service suite. Both participants were given factual notes summarizing the content of the official AWS documentation (13 services, relationships between services, pricing concepts), and asked to create pages using only that information. To avoid confusion with the official site, the AWS logo was not used, and the page was required to clearly state that it was an "unofficial explanation page."
The factual notes did not include preview/GA status, available regions, or pricing figures. If these appeared on the page, they were counted as fictional.
Evaluation Criteria
| Criteria | What to Look At |
|---|---|
| Accuracy of Facts | Consistency with the 16 items in the factual memo |
| Inclusion of Fictional Information | Information not included in the memo (prices, implementing companies, numerical values, etc.) |
| Information Architecture | Ease of finding the 13 services, grouping, relationship diagram |
| Appearance | Readability, color scheme, smartphone width, Japanese typesetting, AI-likeness |
| Cost | Time required, tokens |
Conditions
| Item | No Skill | Hallmark Skill |
|---|---|---|
| Model | Sonnet 5.5 | Sonnet 5.5 |
| Effort | Medium | Medium |
| Claude Code | 2.1.314 | 2.1.314 |
| Hallmark | - | 2.0.0 (Hash of skills-lock.json) 8a79fc0d…3089) |
| Execution Method | claude -p (non-interactive) | claude -p (non-interactive, prefixed with /hallmark) |
| Additional Correction Request | None | None |
| OS Settings at Time of Capture | Dark Mode | Dark Mode |
Procedure
1. Separate working folders
mkdir verify-hallmark cd verify-hallmark mkdir a-baseline b-hallmark Copy the same fact memo (fact_sheet_agentcore_20261103.md) into both folders.
2. Install hallmark in folder B
cd b-hallmark npx skills add nutlope/hallmark --agent claude-code Installed on a project basis without -g. No hooks were included.
3. Prompt (common for both with and without skills)
Create a single Japanese explanation page using only the contents of fact_sheet_agentcore_20261103.md, as a single HTML file (index.html, CSS in the same file). Conditions: - Intended audience: Developers using agents on AWS and those considering adopting them. - Clearly state "Unofficial Explanation Page" at the beginning. - Do not use an appearance similar to the AWS logo or official website. - Do not include information not present in the factual notes (preview/GA status, regions, pricing, adopting companies, performance figures, customer testimonials). - Include all 13 services and structure the page to make it easy for readers to find the service they are looking for. - When grouping services, make it clear that this is a page-specific organization and not an official classification. - Show the relationships between services (see "Relationships between Services" in the factual notes) using diagrams. - Present information on the integration and compatibility of each service in an easy-to-compare format. - Ensure the page is readable on smartphones. Only the Skilled Version has /hallmark at the beginning.
4. Generate in Non-Interactive Mode
Save the prompt from Step 3 to prompt.txt and use it. The skilled version was saved to a separate file with /hallmark appended to the beginning and then passed over.
bash
cat prompt.txt | claude -p \
--model claude-sonnet-5-5 \
--effort medium \
--permission-mode acceptEdits \
--allowed-tools "Read" "Write" "Edit" "Glob" "Grep" "Bash(node *)" \
--max-budget-usd 5 \
--output-format json > result.json
node
The only tools allowed are file reading/writing, searching, and executing.--output-format json` provides the time taken, tokens, and cost.
Results
Visual Comparison
no skills
hallmark Has skills
I will summarize my observations in a table.
| Perspective | No skills | hallmark Skills |
|---|---|---|
| Overall impression | Common composition: rounded corners, colored top edge, left border, pill-shaped tip, etc. | Composition like an edited document with ruled lines and large headings. Corners are square |
| Ease of searching by purpose | "I want to do ~" → List of service names and color-coded tips | No list by purpose, only a 5-group index to the right of the hero and 4 links in the header |
| Relationship diagram | Arrows are well-organized and easy to read. Supplementary labels are floating within the diagram | Straight arrows intersect and are difficult to follow. Gateway and Observability are highlighted with thick borders |
| Comparison table | 3 perspectives, 4 columns. With color bands | 2 perspectives, 3 columns. Concise with links |
| Page margins | Information is crammed | Wide margins, so little information fits on one screen |
I examined the screen width on a smartphone, looking at one page at a time (the top of the page).
No skill required: The "Unofficial" banner at the top occupied approximately 1/6 of the screen, and the tip wrapped to fit.
Skill required: Four links fit in the header, and the H1 tag wrapped between "Unofficial Guide to 13 Services" and "Services."
Accuracy of Facts vs. Fictional Content
I read the entire text and verified the 16 items in the factual notes (coverage of 13 services, key points of each service, relationships between services, pricing strategy, etc.).
| Perspective | No skills | Hallmark skills |
|---|---|---|
| Matching 16 Facts | All match | All match |
| Fictional information (availability, region, pricing, adopting companies, performance figures, customer testimonials) | None | None |
| Was the grouping described as "official classification"? | None (clearly stated as page-specific organization) | None (clearly stated as page-specific organization) |
| AWS logo/expressions suggesting official | None | None |
The scope of Evaluations is particularly easy to confuse. The official description states that the evaluation targets data generated by Strands Agent or LangGraph and instrumented by OpenTelemetry or OpenInference. This is easily confused because other services are described as "any framework," but both descriptions were correct.
However, the matching was done visually and not a strict full-text comparison. The text with skills included the phrase "relationship table of this memo," which was incomprehensible to the reader.
Time Required and Cost
| Item | No Skills | Hallmark Skills Required |
|---|---|---|
| Time Required | 2 minutes 4.6 seconds | 4 minutes 40.4 seconds |
| Number of Turns | 3 | 23 |
| Output Tokens (including thinking) | 19,713 (4,603) | 37,967 (19,022) |
| Cache Reads | 112,985 | 1,183,663 |
| API Equivalent Cost | Approx. $0.356 | Approx. $0.857 |
| Generated Files | 1 index.html (425 lines) | 1 index.html (520 lines) |
The cost is an estimated value converted to API value. I am using the Pro plan and have not been charged additional fees. This will consume your usage allowance.
Lighthouse
Lighthouse is a tool built into Chrome that automatically scores page quality. It scores four areas—Performance, Accessibility, Best Practices, and SEO—on a scale of 100 points, to the extent possible through machine testing. It does not evaluate the quality of the page content.
Each page was measured once using Chrome DevTools' Lighthouse (Mobile, Navigation). Pages were opened via a local HTTP server.
| Item | No Skills | Skills |
|---|---|---|
| Performance | 70 | 98 |
| Accessibility | 100 | 100 |
| Best Practices | 100 | 100 |
| SEO | 100 | 100 |
No Skills

hallmark Skilled Version

- Accessibility was 100 for both. The "contrast" item, which hallmark emphasizes, also showed no problems in the output without skills.
- Performance was 70 for the unskilled version and 98 for the skilled version. We expected the skilled version to be slower than the unskilled version because it loads external fonts (Google Fonts), but the result was the opposite. The reason has not been confirmed.
- Both displayed a warning that "Chrome extensions negatively impacted loading performance." Measurements were taken only once each, and re-measurements were not taken in incognito windows, so the difference in Performance is for reference only.
In conclusion
This time, we compared the unskilled version and hallmark version once each, using the same material and prompt. Personally, I think adding Hallmark reduces the "obviously AI-generated" feel of the cards and chips, giving it a more readable appearance. On the other hand, there were some drawbacks, such as the relatively high time and cost involved for those with the necessary skills.
Design preferences vary, so I can't definitively say which is better, but those who are concerned about the AI-like appearance might want to try the skills I've introduced here.
![[ClaudeCode] How to eliminate the AI-like or artificial feel from web page design? [hallmark]](https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%253Fixlib%253Drb-4.1.1%2526w%253D1200%2526blend64%253DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkZxaWl0YS1pbWFnZS1zdG9yZSUyRjAlMkYxOTI5NDklMkYxYmVjZGE4YTRmMWRiOWU5OTQyZDljOGMwYjZkZDA3NjkwMTM2NjgwJTJGbGFyZ2UucG5nJTNGMTc0MTQ4MzQxMD9peGxpYj1yYi00LjEuMSZhcj0xJTNBMSZmaXQ9Y3JvcCZtYXNrPWVsbGlwc2UmYmc9RkZGRkZGJmZtPXBuZzMyJnM9MDZlM2QxY2EzNTVhN2Y4N2M2ZTQxY2RlYzdmN2M0ODI%2526blend-x%253D120%2526blend-y%253D462%2526blend-w%253D90%2526blend-h%253D90%2526blend-mode%253Dnormal%2526mark64%253DaHR0cHM6Ly9xaWl0YS1vcmdhbml6YXRpb24taW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkZxaWl0YS1vcmdhbml6YXRpb24taW1hZ2UlMkYxZTIwZGI1ZTdlNDA3ZWFlN2I5NzBlYzk5OTg4MGRjOGMzY2MwZjY0JTJGb3JpZ2luYWwuanBnJTNGMTY2NzI3NDk2Mz9peGxpYj1yYi00LjEuMSZ3PTQ0Jmg9NDQmZml0PWNyb3AmbWFzaz1jb3JuZXJzJmNvcm5lci1yYWRpdXM9OCZiZz1GRkZGRkYmYm9yZGVyPTIlMkNGRkZGRkYmZm09cG5nMzImcz04OTI0NDcwMDk1MDMyZjUxYmZlNzE3ZjVkOGUzYmE3ZA%2526mark-x%253D186%2526mark-y%253D515%2526mark-w%253D40%2526mark-h%253D40%2526s%253D0db13b4aef231a19bc684897cf15021a%3Fixlib%3Drb-4.1.1%26w%3D1200%26fm%3Djpg%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjEuMSZ3PTk2MCZoPTMyNCZ0eHQ9JUUzJTgwJTkwQ2xhdWRlQ29kZSVFMyU4MCU5MVdlYiVFMyU4MyU5QSVFMyU4MyVCQyVFMyU4MiVCOCVFMyU4MSVBRSVFMyU4MyU4NyVFMyU4MiVCNiVFMyU4MiVBNCVFMyU4MyVCMyVFMyU4MSU4QiVFMyU4MiU4OUFJJUUzJTgxJUEzJUUzJTgxJUJEJUUzJTgxJTk1JUUzJTgwJTgxQUklRTglODclQUQlRTMlODElOTUlRTMlODIlOTIlRTYlQjYlODglRTMlODElOTklRTMlODElQUIlRTMlODElQUYlRUYlQkMlOUYlRTMlODAlOTBoYWxsbWFyayVFMyU4MCU5MSZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1wYWQ9MCZzPWIwMGE2ZjUwMjBkY2VkOGRkOWU3MjIzNWQ3ZDlmYTc1%26mark-x%3D120%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjEuMSZ3PTgzOCZoPTU4JnR4dD0lNDBOYW5hXzc3NyZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTg1YzQ4MzUyMmVkMGVhNmYxYjhkZjU5MjVjYzhiNjQz%26blend-x%3D242%26blend-y%3D454%26blend-w%3D838%26blend-h%3D46%26blend-fit%3Dcrop%26blend-crop%3Dleft%252Cbottom%26blend-mode%3Dnormal%26txt64%3DS0RESeOCouOCuOODo-OCpOODq-mWi-eZuuOCu-ODs-OCv-ODvOagquW8j-S8muekvg%26txt-x%3D242%26txt-y%3D539%26txt-width%3D838%26txt-clip%3Dend%252Cellipsis%26txt-color%3D%25231E2121%26txt-font%3DHiragino%2520Sans%2520W6%26txt-size%3D28%26s%3Dbec8f56ac6be625e5cceada8bacbfe75)





