@phuc1403/musketeer 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INSTALLATION.md +52 -52
- package/README.md +49 -49
- package/bin/musketeer.js +168 -168
- package/manifest.json +333 -301
- package/package.json +48 -48
- package/src/dotnet-scaffold-copier.js +79 -79
- package/src/provisioner/detect.js +93 -93
- package/src/self-update.js +77 -77
- package/template/.claude/agents/code-reviewer.md +182 -166
- package/template/.claude/agents/git-manager.md +18 -18
- package/template/.claude/agents/hallmark-auditor.md +78 -78
- package/template/.claude/agents/researcher.md +33 -33
- package/template/.claude/hooks/block-unsafe-adr-title.cjs +85 -85
- package/template/.claude/hooks/git-skill-reminder.cjs +53 -0
- package/template/.claude/hooks/init-adr-dir.cjs +173 -173
- package/template/.claude/hooks/inject-adr-flags.cjs +94 -94
- package/template/.claude/hooks/lib/adr/command-scan.cjs +115 -115
- package/template/.claude/hooks/lib/characteristics/checker.cjs +357 -357
- package/template/.claude/hooks/lib/colors.cjs +180 -122
- package/template/.claude/hooks/lib/git-info-cache.cjs +191 -191
- package/template/.claude/hooks/lib/transcript-parser.cjs +300 -277
- package/template/.claude/hooks/sync-adr-toc.cjs +146 -146
- package/template/.claude/hooks/{usage-context-awareness.cjs → usage-quota-cache-refresh.cjs} +166 -166
- package/template/.claude/hooks/validate-characteristics-hook.cjs +66 -66
- package/template/.claude/hooks/validate-cml-hook.js +145 -145
- package/template/.claude/skills/adr-writer/SKILL.md +48 -48
- package/template/.claude/skills/adr-writer/references/adr-example.md +35 -35
- package/template/.claude/skills/architecture-characteristic-writer/SKILL.md +215 -215
- package/template/.claude/skills/architecture-characteristic-writer/assets/worksheet-template.md +29 -29
- package/template/.claude/skills/architecture-characteristic-writer/references/characteristics-catalog.md +40 -40
- package/template/.claude/skills/architecture-characteristic-writer/scripts/ranking-table.cjs +171 -171
- package/template/.claude/skills/code-review/SKILL.md +201 -54
- package/template/.claude/skills/code-review/references/checklist-workflow.md +96 -0
- package/template/.claude/skills/code-review/references/checklists/api.md +52 -52
- package/template/.claude/skills/code-review/references/checklists/base.md +100 -100
- package/template/.claude/skills/code-review/references/checklists/web-app.md +54 -54
- package/template/.claude/skills/code-review/references/code-review-reception.md +113 -0
- package/template/.claude/skills/code-review/references/codebase-scan-workflow.md +30 -0
- package/template/.claude/skills/code-review/references/edge-case-scouting.md +119 -0
- package/template/.claude/skills/code-review/references/input-mode-resolution.md +135 -0
- package/template/.claude/skills/code-review/references/parallel-review-workflow.md +76 -0
- package/template/.claude/skills/code-review/references/requesting-code-review.md +116 -0
- package/template/.claude/skills/code-review/references/spec-compliance-review.md +43 -0
- package/template/.claude/skills/code-review/references/task-management-reviews.md +140 -0
- package/template/.claude/skills/code-review/references/verification-before-completion.md +139 -0
- package/template/.claude/skills/context-map/SKILL.md +80 -80
- package/template/.claude/skills/context-map/example.cml +106 -106
- package/template/.claude/skills/context-map/reference/Bounded Context/Bounded Context.md +40 -40
- package/template/.claude/skills/context-map/reference/Bounded Context/businessModel.md +5 -5
- package/template/.claude/skills/context-map/reference/Bounded Context/domainVisionStatement.md +2 -2
- package/template/.claude/skills/context-map/reference/Bounded Context/evolution.md +5 -5
- package/template/.claude/skills/context-map/reference/Bounded Context/implementationTechnology.md +1 -1
- package/template/.claude/skills/context-map/reference/Bounded Context/implements.md +1 -1
- package/template/.claude/skills/context-map/reference/Bounded Context/knowledgeLevel.md +4 -4
- package/template/.claude/skills/context-map/reference/Bounded Context/realizes.md +9 -9
- package/template/.claude/skills/context-map/reference/Bounded Context/refines.md +10 -10
- package/template/.claude/skills/context-map/reference/Bounded Context/responsibilities.md +26 -26
- package/template/.claude/skills/context-map/reference/Bounded Context/type.md +23 -23
- package/template/.claude/skills/context-map/reference/Bounded Context Relationship/Anticorruption Layer.md +5 -5
- package/template/.claude/skills/context-map/reference/Bounded Context Relationship/Bounded Context Relationship.md +12 -12
- package/template/.claude/skills/context-map/reference/Bounded Context Relationship/Conformist.md +5 -5
- package/template/.claude/skills/context-map/reference/Bounded Context Relationship/Customer-Supplier (C-S).md +22 -22
- package/template/.claude/skills/context-map/reference/Bounded Context Relationship/Open Host Service.md +4 -4
- package/template/.claude/skills/context-map/reference/Bounded Context Relationship/Partnership (P).md +13 -13
- package/template/.claude/skills/context-map/reference/Bounded Context Relationship/Published Language.md +4 -4
- package/template/.claude/skills/context-map/reference/Bounded Context Relationship/Shared Kernel (SK).md +12 -12
- package/template/.claude/skills/context-map/reference/Context Map.md +62 -62
- package/template/.claude/skills/context-map/reference/Domain/Domain.md +30 -30
- package/template/.claude/skills/context-map/reference/Domain/supports.md +33 -33
- package/template/.claude/skills/context-map/reference/Domain/type.md +3 -3
- package/template/.claude/skills/context-map/reference/Semantic Rules.md +32 -32
- package/template/.claude/skills/git/SKILL.md +131 -115
- package/template/.claude/skills/git/references/branch-management.md +88 -88
- package/template/.claude/skills/git/references/commit-standards.md +46 -46
- package/template/.claude/skills/git/references/context-efficiency.md +54 -0
- package/template/.claude/skills/git/references/gh-cli-guide.md +109 -109
- package/template/.claude/skills/git/references/safety-protocols.md +69 -69
- package/template/.claude/skills/git/references/workflow-commit.md +58 -58
- package/template/.claude/skills/git/references/workflow-merge-pr.md +136 -0
- package/template/.claude/skills/git/references/workflow-merge.md +48 -48
- package/template/.claude/skills/git/references/workflow-pr.md +58 -58
- package/template/.claude/skills/git/references/workflow-push.md +52 -52
- package/template/.claude/skills/hallmark/SKILL.md +552 -552
- package/template/.claude/skills/hallmark/references/anti-patterns.md +412 -412
- package/template/.claude/skills/hallmark/references/assets.md +406 -406
- package/template/.claude/skills/hallmark/references/color.md +95 -95
- package/template/.claude/skills/hallmark/references/component-cookbook.md +256 -256
- package/template/.claude/skills/hallmark/references/components/c1-outlined-chip.md +12 -12
- package/template/.claude/skills/hallmark/references/components/c2-inline-form-as-cta.md +16 -16
- package/template/.claude/skills/hallmark/references/components/c3-typographic-link.md +8 -8
- package/template/.claude/skills/hallmark/references/components/c4-sticky-bottom-bar.md +16 -16
- package/template/.claude/skills/hallmark/references/components/f1-bento-grid.md +20 -20
- package/template/.claude/skills/hallmark/references/components/f2-sticky-scroll-stack.md +20 -20
- package/template/.claude/skills/hallmark/references/components/f3-tabular-spec-sheet.md +11 -11
- package/template/.claude/skills/hallmark/references/components/f4-step-sequence.md +11 -11
- package/template/.claude/skills/hallmark/references/components/f5-annotated-screenshot.md +11 -11
- package/template/.claude/skills/hallmark/references/components/f6-product-card-grid.md +41 -41
- package/template/.claude/skills/hallmark/references/components/ft1-mast-headed.md +13 -13
- package/template/.claude/skills/hallmark/references/components/ft2-inline-rule-single-line.md +10 -10
- package/template/.claude/skills/hallmark/references/components/ft3-index-style-category-list.md +12 -12
- package/template/.claude/skills/hallmark/references/components/ft4-dense-typographic.md +10 -10
- package/template/.claude/skills/hallmark/references/components/ft5-statement.md +21 -21
- package/template/.claude/skills/hallmark/references/components/ft6-letter-close.md +19 -19
- package/template/.claude/skills/hallmark/references/components/ft7-newsletter-first.md +27 -27
- package/template/.claude/skills/hallmark/references/components/ft8-marquee-scroll.md +25 -25
- package/template/.claude/skills/hallmark/references/components/h1-marquee.md +15 -15
- package/template/.claude/skills/hallmark/references/components/h2-split-diptych.md +15 -15
- package/template/.claude/skills/hallmark/references/components/h3-quote-led.md +11 -11
- package/template/.claude/skills/hallmark/references/components/h4-stat-led.md +14 -14
- package/template/.claude/skills/hallmark/references/components/h5-letter-hero.md +11 -11
- package/template/.claude/skills/hallmark/references/components/h6-photographic-fold.md +16 -16
- package/template/.claude/skills/hallmark/references/components/h7-demo-video-clipped-by-viewport-edge.md +27 -27
- package/template/.claude/skills/hallmark/references/components/h8-mockup-split-browser-framed.md +23 -23
- package/template/.claude/skills/hallmark/references/components/h9-custom-illustration-centerpiece.md +27 -27
- package/template/.claude/skills/hallmark/references/components/n1-wordmark-2-links.md +12 -12
- package/template/.claude/skills/hallmark/references/components/n10-floating-on-scroll-morph.md +19 -19
- package/template/.claude/skills/hallmark/references/components/n2-floating-chip.md +14 -14
- package/template/.claude/skills/hallmark/references/components/n3-side-rail.md +14 -14
- package/template/.claude/skills/hallmark/references/components/n4-hidden-behind-k.md +9 -9
- package/template/.claude/skills/hallmark/references/components/n5-floating-pill.md +28 -28
- package/template/.claude/skills/hallmark/references/components/n6-newspaper-masthead.md +24 -24
- package/template/.claude/skills/hallmark/references/components/n7-brutal-slab.md +22 -22
- package/template/.claude/skills/hallmark/references/components/n8-terminal-command.md +21 -21
- package/template/.claude/skills/hallmark/references/components/n9-edge-aligned-minimal.md +17 -17
- package/template/.claude/skills/hallmark/references/components/s1-left-margin-numbered.md +15 -15
- package/template/.claude/skills/hallmark/references/components/s2-hanging.md +13 -13
- package/template/.claude/skills/hallmark/references/components/s3-sticky-pinned.md +19 -19
- package/template/.claude/skills/hallmark/references/components/s4-inline-no-break.md +11 -11
- package/template/.claude/skills/hallmark/references/components/s5-bottom-anchored.md +13 -13
- package/template/.claude/skills/hallmark/references/components/t1-pull-quote-with-marginalia.md +12 -12
- package/template/.claude/skills/hallmark/references/components/t2-logo-wall-hairline.md +19 -19
- package/template/.claude/skills/hallmark/references/components/t3-single-huge-quote.md +11 -11
- package/template/.claude/skills/hallmark/references/components/t4-numbered-stat-strip.md +14 -14
- package/template/.claude/skills/hallmark/references/contract.md +24 -24
- package/template/.claude/skills/hallmark/references/copy.md +182 -182
- package/template/.claude/skills/hallmark/references/custom-craft.md +626 -626
- package/template/.claude/skills/hallmark/references/custom-theme.md +329 -329
- package/template/.claude/skills/hallmark/references/design-md.md +116 -116
- package/template/.claude/skills/hallmark/references/export-formats.md +328 -328
- package/template/.claude/skills/hallmark/references/floating-nav.md +89 -89
- package/template/.claude/skills/hallmark/references/genres/atmospheric.md +65 -65
- package/template/.claude/skills/hallmark/references/genres/editorial.md +70 -70
- package/template/.claude/skills/hallmark/references/genres/modern-minimal.md +67 -67
- package/template/.claude/skills/hallmark/references/genres/playful.md +65 -65
- package/template/.claude/skills/hallmark/references/hero-enrichment.md +474 -474
- package/template/.claude/skills/hallmark/references/imagery-kit.md +170 -170
- package/template/.claude/skills/hallmark/references/interaction-and-states.md +207 -207
- package/template/.claude/skills/hallmark/references/layout-and-space.md +111 -111
- package/template/.claude/skills/hallmark/references/macrostructures/01-bento-grid.md +35 -35
- package/template/.claude/skills/hallmark/references/macrostructures/02-long-document.md +34 -34
- package/template/.claude/skills/hallmark/references/macrostructures/03-marquee-hero.md +31 -31
- package/template/.claude/skills/hallmark/references/macrostructures/04-stat-led.md +32 -32
- package/template/.claude/skills/hallmark/references/macrostructures/05-workbench.md +32 -32
- package/template/.claude/skills/hallmark/references/macrostructures/06-conversational-faq.md +33 -33
- package/template/.claude/skills/hallmark/references/macrostructures/07-manifesto.md +32 -32
- package/template/.claude/skills/hallmark/references/macrostructures/08-photographic.md +34 -34
- package/template/.claude/skills/hallmark/references/macrostructures/09-quote-led.md +32 -32
- package/template/.claude/skills/hallmark/references/macrostructures/10-specimen.md +32 -32
- package/template/.claude/skills/hallmark/references/macrostructures/11-catalogue.md +23 -23
- package/template/.claude/skills/hallmark/references/macrostructures/12-letter.md +23 -23
- package/template/.claude/skills/hallmark/references/macrostructures/13-index-first.md +23 -23
- package/template/.claude/skills/hallmark/references/macrostructures/14-narrative-workflow.md +23 -23
- package/template/.claude/skills/hallmark/references/macrostructures/15-split-studio.md +23 -23
- package/template/.claude/skills/hallmark/references/macrostructures/16-feature-stack.md +23 -23
- package/template/.claude/skills/hallmark/references/macrostructures/17-type-specimen.md +23 -23
- package/template/.claude/skills/hallmark/references/macrostructures/18-portfolio-grid.md +23 -23
- package/template/.claude/skills/hallmark/references/macrostructures/19-map-diagram.md +23 -23
- package/template/.claude/skills/hallmark/references/macrostructures/20-ecosystem-index.md +23 -23
- package/template/.claude/skills/hallmark/references/macrostructures/21-component-playground.md +23 -23
- package/template/.claude/skills/hallmark/references/macrostructures.md +89 -89
- package/template/.claude/skills/hallmark/references/microinteractions.md +260 -260
- package/template/.claude/skills/hallmark/references/motion.md +109 -109
- package/template/.claude/skills/hallmark/references/preview-examples.md +49 -49
- package/template/.claude/skills/hallmark/references/responsive.md +138 -138
- package/template/.claude/skills/hallmark/references/slop-test.md +205 -205
- package/template/.claude/skills/hallmark/references/structure.md +164 -164
- package/template/.claude/skills/hallmark/references/study.md +511 -511
- package/template/.claude/skills/hallmark/references/typography.md +243 -243
- package/template/.claude/skills/hallmark/references/verbs/audit.md +25 -25
- package/template/.claude/skills/hallmark/references/verbs/redesign.md +269 -269
- package/template/.claude/skills/hallmark-loop/SKILL.md +105 -105
- package/template/.claude/skills/hallmark-loop/references/auditor-call.md +60 -60
- package/template/.claude/skills/hallmark-loop/references/capture.md +78 -78
- package/template/.claude/skills/hallmark-loop/references/loop-control.md +79 -79
- package/template/.claude/skills/handoff/SKILL.md +15 -15
- package/template/.claude/skills/knowledge-crunching/SKILL.md +94 -94
- package/template/.claude/skills/research/SKILL.md +69 -69
- package/template/.claude/skills/skill-creator/LICENSE.txt +201 -201
- package/template/.claude/skills/skill-creator/SKILL.md +154 -149
- package/template/.claude/skills/skill-creator/agents/analyzer.md +274 -274
- package/template/.claude/skills/skill-creator/agents/comparator.md +202 -202
- package/template/.claude/skills/skill-creator/agents/grader.md +223 -223
- package/template/.claude/skills/skill-creator/assets/eval_review.html +146 -146
- package/template/.claude/skills/skill-creator/eval-viewer/generate_review.py +471 -471
- package/template/.claude/skills/skill-creator/eval-viewer/viewer.html +1325 -1325
- package/template/.claude/skills/skill-creator/references/benchmark-optimization-guide.md +86 -86
- package/template/.claude/skills/skill-creator/references/distribution-guide.md +79 -79
- package/template/.claude/skills/skill-creator/references/eval-infrastructure-guide.md +129 -129
- package/template/.claude/skills/skill-creator/references/eval-schemas.md +121 -121
- package/template/.claude/skills/skill-creator/references/mcp-skills-integration.md +71 -71
- package/template/.claude/skills/skill-creator/references/metadata-quality-criteria.md +94 -94
- package/template/.claude/skills/skill-creator/references/plugin-marketplace-hosting.md +104 -104
- package/template/.claude/skills/skill-creator/references/plugin-marketplace-overview.md +89 -89
- package/template/.claude/skills/skill-creator/references/plugin-marketplace-schema.md +93 -93
- package/template/.claude/skills/skill-creator/references/plugin-marketplace-sources.md +103 -103
- package/template/.claude/skills/skill-creator/references/plugin-marketplace-troubleshooting.md +76 -76
- package/template/.claude/skills/skill-creator/references/script-quality-criteria.md +106 -106
- package/template/.claude/skills/skill-creator/references/skill-anatomy-and-requirements.md +77 -77
- package/template/.claude/skills/skill-creator/references/skill-creation-workflow.md +152 -151
- package/template/.claude/skills/skill-creator/references/skill-design-patterns.md +75 -75
- package/template/.claude/skills/skill-creator/references/skillmark-benchmark-criteria.md +102 -102
- package/template/.claude/skills/skill-creator/references/structure-organization-criteria.md +114 -114
- package/template/.claude/skills/skill-creator/references/testing-and-iteration.md +78 -78
- package/template/.claude/skills/skill-creator/references/token-efficiency-criteria.md +74 -74
- package/template/.claude/skills/skill-creator/references/troubleshooting-guide.md +81 -81
- package/template/.claude/skills/skill-creator/references/validation-checklist.md +83 -83
- package/template/.claude/skills/skill-creator/references/writing-effective-instructions.md +88 -88
- package/template/.claude/skills/skill-creator/references/yaml-frontmatter-reference.md +92 -92
- package/template/.claude/skills/skill-creator/scripts/aggregate_benchmark.py +401 -401
- package/template/.claude/skills/skill-creator/scripts/encoding_utils.py +36 -36
- package/template/.claude/skills/skill-creator/scripts/generate_report.py +326 -326
- package/template/.claude/skills/skill-creator/scripts/improve_description.py +248 -248
- package/template/.claude/skills/skill-creator/scripts/init_skill.py +360 -360
- package/template/.claude/skills/skill-creator/scripts/package_skill.py +143 -143
- package/template/.claude/skills/skill-creator/scripts/quick_validate.py +110 -110
- package/template/.claude/skills/skill-creator/scripts/run_eval.py +310 -310
- package/template/.claude/skills/skill-creator/scripts/run_loop.py +332 -332
- package/template/.claude/skills/skill-creator/scripts/utils.py +47 -47
- package/template/.claude/skills/tdd/SKILL.md +142 -142
- package/template/.claude/skills/tdd/deep-modules.md +15 -15
- package/template/.claude/skills/tdd/interface-design.md +31 -31
- package/template/.claude/skills/tdd/mocking.md +59 -59
- package/template/.claude/skills/tdd/refactoring.md +10 -10
- package/template/.claude/skills/tdd/tests.md +61 -61
- package/template/.claude/statusline.cjs +0 -0
- package/template/.claude/skills/code-review/references/adversarial-review.md +0 -223
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
### N7 · Brutal slab
|
|
2
|
-
A heavy, full-width nav with a 2 px solid border-bottom, all-caps wordmark and tracked uppercase link row, dense rhythm, no shadow, no rounded corners. Reads as Pentagram project pages, Liquid Death, brutalist-leaning agencies.
|
|
3
|
-
*Use when:* the genre is playful (Brutal, Manifesto, Sport) or the brand voice is heavy / declarative.
|
|
4
|
-
*Don't confuse with:* N1 Wordmark + 2 links (which is small and quiet).
|
|
5
|
-
|
|
6
|
-
```html
|
|
7
|
-
<header class="nav-slab">
|
|
8
|
-
<a class="slab-mark">STUDIO</a>
|
|
9
|
-
<nav class="slab-nav" aria-label="Primary">
|
|
10
|
-
<ul><li><a>CATALOG</a></li><li><a>VOICE</a></li><li><a>WORK</a></li></ul>
|
|
11
|
-
</nav>
|
|
12
|
-
<a class="cta-fill cta-fill--slab">GET</a>
|
|
13
|
-
</header>
|
|
14
|
-
```
|
|
15
|
-
```css
|
|
16
|
-
.nav-slab { display: flex; align-items: center; gap: var(--space-md); padding: var(--space-sm) var(--page-gutter); border-bottom: 2px solid var(--color-ink); background: var(--color-paper); }
|
|
17
|
-
.slab-mark { font-family: var(--font-display); font-weight: 800; letter-spacing: 0.04em; }
|
|
18
|
-
.slab-nav ul { display: flex; gap: var(--space-md); list-style: none; padding: 0; margin: 0 0 0 auto; }
|
|
19
|
-
.slab-nav a { text-transform: uppercase; letter-spacing: 0.08em; font-size: var(--text-sm); font-weight: 600; }
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
*Anti-pattern:* combining N7 with rounded corners, soft shadows, or backdrop-blur — those vocabularies fight. If you reach for blur, drop to N5; if you reach for round, drop to N1.
|
|
1
|
+
### N7 · Brutal slab
|
|
2
|
+
A heavy, full-width nav with a 2 px solid border-bottom, all-caps wordmark and tracked uppercase link row, dense rhythm, no shadow, no rounded corners. Reads as Pentagram project pages, Liquid Death, brutalist-leaning agencies.
|
|
3
|
+
*Use when:* the genre is playful (Brutal, Manifesto, Sport) or the brand voice is heavy / declarative.
|
|
4
|
+
*Don't confuse with:* N1 Wordmark + 2 links (which is small and quiet).
|
|
5
|
+
|
|
6
|
+
```html
|
|
7
|
+
<header class="nav-slab">
|
|
8
|
+
<a class="slab-mark">STUDIO</a>
|
|
9
|
+
<nav class="slab-nav" aria-label="Primary">
|
|
10
|
+
<ul><li><a>CATALOG</a></li><li><a>VOICE</a></li><li><a>WORK</a></li></ul>
|
|
11
|
+
</nav>
|
|
12
|
+
<a class="cta-fill cta-fill--slab">GET</a>
|
|
13
|
+
</header>
|
|
14
|
+
```
|
|
15
|
+
```css
|
|
16
|
+
.nav-slab { display: flex; align-items: center; gap: var(--space-md); padding: var(--space-sm) var(--page-gutter); border-bottom: 2px solid var(--color-ink); background: var(--color-paper); }
|
|
17
|
+
.slab-mark { font-family: var(--font-display); font-weight: 800; letter-spacing: 0.04em; }
|
|
18
|
+
.slab-nav ul { display: flex; gap: var(--space-md); list-style: none; padding: 0; margin: 0 0 0 auto; }
|
|
19
|
+
.slab-nav a { text-transform: uppercase; letter-spacing: 0.08em; font-size: var(--text-sm); font-weight: 600; }
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
*Anti-pattern:* combining N7 with rounded corners, soft shadows, or backdrop-blur — those vocabularies fight. If you reach for blur, drop to N5; if you reach for round, drop to N1.
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
### N8 · Terminal command
|
|
2
|
-
A nav formatted as a CLI prompt: `> studio --catalog --voice --get▮`. The "links" are command flags. The blinking cursor (`▮`) is allowed *only here* (it has purpose — signals "you'd type next"); never standalone elsewhere on the page. Reads as Vercel CLI docs landing, Charm, Mitchell Hashimoto's site.
|
|
3
|
-
*Use when:* the page is a CLI tool, dev-tool docs, or carries the Terminal theme.
|
|
4
|
-
*Don't confuse with:* N4 ⌘K-only (which is a palette, not a visible bar).
|
|
5
|
-
|
|
6
|
-
```html
|
|
7
|
-
<header class="nav-term">
|
|
8
|
-
<pre class="nav-term__line"><span class="prompt">></span> studio <a href="#catalog">--catalog</a> <a href="#voice">--voice</a> <a href="#get">--get</a><span class="caret" aria-hidden="true">▮</span></pre>
|
|
9
|
-
</header>
|
|
10
|
-
```
|
|
11
|
-
```css
|
|
12
|
-
.nav-term { padding: var(--space-sm) var(--page-gutter); border-bottom: var(--rule-hair) solid var(--color-rule); }
|
|
13
|
-
.nav-term__line { font-family: var(--font-outlier, ui-monospace, "JetBrains Mono", monospace); font-size: var(--text-sm); margin: 0; }
|
|
14
|
-
.nav-term__line .prompt { color: var(--color-accent); padding-right: 0.4ch; }
|
|
15
|
-
.nav-term__line a { color: var(--color-ink); text-decoration: underline; text-underline-offset: 2px; }
|
|
16
|
-
.caret { display: inline-block; width: 1ch; animation: blink 1.05s steps(2) infinite; color: var(--color-accent); }
|
|
17
|
-
@keyframes blink { 50% { opacity: 0; } }
|
|
18
|
-
@media (prefers-reduced-motion: reduce) { .caret { animation: none; opacity: 1; } }
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
*Anti-pattern:* using `>` prompt vocabulary on a non-developer site (a wedding photographer's portfolio with a `> view --gallery` nav reads as set decoration). N8 belongs to genuine terminal / CLI brands only.
|
|
1
|
+
### N8 · Terminal command
|
|
2
|
+
A nav formatted as a CLI prompt: `> studio --catalog --voice --get▮`. The "links" are command flags. The blinking cursor (`▮`) is allowed *only here* (it has purpose — signals "you'd type next"); never standalone elsewhere on the page. Reads as Vercel CLI docs landing, Charm, Mitchell Hashimoto's site.
|
|
3
|
+
*Use when:* the page is a CLI tool, dev-tool docs, or carries the Terminal theme.
|
|
4
|
+
*Don't confuse with:* N4 ⌘K-only (which is a palette, not a visible bar).
|
|
5
|
+
|
|
6
|
+
```html
|
|
7
|
+
<header class="nav-term">
|
|
8
|
+
<pre class="nav-term__line"><span class="prompt">></span> studio <a href="#catalog">--catalog</a> <a href="#voice">--voice</a> <a href="#get">--get</a><span class="caret" aria-hidden="true">▮</span></pre>
|
|
9
|
+
</header>
|
|
10
|
+
```
|
|
11
|
+
```css
|
|
12
|
+
.nav-term { padding: var(--space-sm) var(--page-gutter); border-bottom: var(--rule-hair) solid var(--color-rule); }
|
|
13
|
+
.nav-term__line { font-family: var(--font-outlier, ui-monospace, "JetBrains Mono", monospace); font-size: var(--text-sm); margin: 0; }
|
|
14
|
+
.nav-term__line .prompt { color: var(--color-accent); padding-right: 0.4ch; }
|
|
15
|
+
.nav-term__line a { color: var(--color-ink); text-decoration: underline; text-underline-offset: 2px; }
|
|
16
|
+
.caret { display: inline-block; width: 1ch; animation: blink 1.05s steps(2) infinite; color: var(--color-accent); }
|
|
17
|
+
@keyframes blink { 50% { opacity: 0; } }
|
|
18
|
+
@media (prefers-reduced-motion: reduce) { .caret { animation: none; opacity: 1; } }
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
*Anti-pattern:* using `>` prompt vocabulary on a non-developer site (a wedding photographer's portfolio with a `> view --gallery` nav reads as set decoration). N8 belongs to genuine terminal / CLI brands only.
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
### N9 · Edge-aligned minimal
|
|
2
|
-
Wordmark hard-left, single CTA hard-right, vast empty space between, no link row at all. The *absence* is the design — Apple product pages, Carl Hauser, luxury sites.
|
|
3
|
-
*Use when:* the page is luxury / quiet / Atelier / Salon and the brand earns the silence.
|
|
4
|
-
*Don't confuse with:* N1 Wordmark + 2 links (which fills the middle).
|
|
5
|
-
|
|
6
|
-
```html
|
|
7
|
-
<header class="nav-edge">
|
|
8
|
-
<a class="wordmark">Studio</a>
|
|
9
|
-
<a class="cta-outline">Get →</a>
|
|
10
|
-
</header>
|
|
11
|
-
```
|
|
12
|
-
```css
|
|
13
|
-
.nav-edge { display: flex; justify-content: space-between; align-items: center; padding: var(--space-md) var(--page-gutter); }
|
|
14
|
-
.nav-edge .wordmark { font-family: var(--font-display); font-size: var(--text-md); }
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
*Anti-pattern:* adding 4 inline links between the wordmark and CTA "to fill the space". The space *is* the design; if you fill it, you've made N1 with extra steps.
|
|
1
|
+
### N9 · Edge-aligned minimal
|
|
2
|
+
Wordmark hard-left, single CTA hard-right, vast empty space between, no link row at all. The *absence* is the design — Apple product pages, Carl Hauser, luxury sites.
|
|
3
|
+
*Use when:* the page is luxury / quiet / Atelier / Salon and the brand earns the silence.
|
|
4
|
+
*Don't confuse with:* N1 Wordmark + 2 links (which fills the middle).
|
|
5
|
+
|
|
6
|
+
```html
|
|
7
|
+
<header class="nav-edge">
|
|
8
|
+
<a class="wordmark">Studio</a>
|
|
9
|
+
<a class="cta-outline">Get →</a>
|
|
10
|
+
</header>
|
|
11
|
+
```
|
|
12
|
+
```css
|
|
13
|
+
.nav-edge { display: flex; justify-content: space-between; align-items: center; padding: var(--space-md) var(--page-gutter); }
|
|
14
|
+
.nav-edge .wordmark { font-family: var(--font-display); font-size: var(--text-md); }
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
*Anti-pattern:* adding 4 inline links between the wordmark and CTA "to fill the space". The space *is* the design; if you fill it, you've made N1 with extra steps.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
### S1 · Left-margin numbered
|
|
3
|
-
A narrow left column holds `01 — LABEL.`; the wide right column holds the heading and content.
|
|
4
|
-
*Use when:* the page is editorial / specimen.
|
|
5
|
-
*Don't confuse with:* S5 Bottom-anchored (which puts the label *under* the section).
|
|
6
|
-
|
|
7
|
-
```html
|
|
8
|
-
<header class="head-margin">
|
|
9
|
-
<p class="num-label">01 — Foundations</p>
|
|
10
|
-
<h2>…</h2>
|
|
11
|
-
</header>
|
|
12
|
-
```
|
|
13
|
-
```css
|
|
14
|
-
.head-margin { display: grid; grid-template-columns: 10rem 1fr; gap: var(--space-xl); align-items: baseline; }
|
|
15
|
-
```
|
|
1
|
+
|
|
2
|
+
### S1 · Left-margin numbered
|
|
3
|
+
A narrow left column holds `01 — LABEL.`; the wide right column holds the heading and content.
|
|
4
|
+
*Use when:* the page is editorial / specimen.
|
|
5
|
+
*Don't confuse with:* S5 Bottom-anchored (which puts the label *under* the section).
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<header class="head-margin">
|
|
9
|
+
<p class="num-label">01 — Foundations</p>
|
|
10
|
+
<h2>…</h2>
|
|
11
|
+
</header>
|
|
12
|
+
```
|
|
13
|
+
```css
|
|
14
|
+
.head-margin { display: grid; grid-template-columns: 10rem 1fr; gap: var(--space-xl); align-items: baseline; }
|
|
15
|
+
```
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
### S2 · Hanging
|
|
2
|
-
Heading floats above the section in negative space; no border, no rule.
|
|
3
|
-
*Use when:* the content has a quiet, room-to-breathe energy.
|
|
4
|
-
*Don't confuse with:* S3 Sticky-pinned (which moves with scroll).
|
|
5
|
-
|
|
6
|
-
```html
|
|
7
|
-
<header class="head-hang">
|
|
8
|
-
<h2>…</h2>
|
|
9
|
-
</header>
|
|
10
|
-
```
|
|
11
|
-
```css
|
|
12
|
-
.head-hang { padding-block: var(--space-3xl) var(--space-xl); }
|
|
13
|
-
```
|
|
1
|
+
### S2 · Hanging
|
|
2
|
+
Heading floats above the section in negative space; no border, no rule.
|
|
3
|
+
*Use when:* the content has a quiet, room-to-breathe energy.
|
|
4
|
+
*Don't confuse with:* S3 Sticky-pinned (which moves with scroll).
|
|
5
|
+
|
|
6
|
+
```html
|
|
7
|
+
<header class="head-hang">
|
|
8
|
+
<h2>…</h2>
|
|
9
|
+
</header>
|
|
10
|
+
```
|
|
11
|
+
```css
|
|
12
|
+
.head-hang { padding-block: var(--space-3xl) var(--space-xl); }
|
|
13
|
+
```
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
### S3 · Sticky pinned
|
|
2
|
-
Heading remains in viewport while content scrolls beneath. Orientation aid.
|
|
3
|
-
*Use when:* the section is dense and the user benefits from always seeing where they are.
|
|
4
|
-
*Don't confuse with:* S1 Left-margin (which doesn't move).
|
|
5
|
-
|
|
6
|
-
```html
|
|
7
|
-
<header class="head-sticky">
|
|
8
|
-
<p class="num-label">02</p>
|
|
9
|
-
<h2>…</h2>
|
|
10
|
-
</header>
|
|
11
|
-
```
|
|
12
|
-
```css
|
|
13
|
-
/* If the page has a sticky top nav, offset by its height so the sticky
|
|
14
|
-
head docks BENEATH it instead of bleeding over (slop-test gate 68).
|
|
15
|
-
Use --z-sticky (in-page) so the nav's --z-sticky-nav out-paints it. */
|
|
16
|
-
.head-sticky { position: sticky; top: var(--banner-height, 0px); background: var(--color-paper); padding-block: var(--space-sm); border-bottom: 1px solid var(--color-ink); z-index: var(--z-sticky); }
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
**Sticky pairing rule:** if the page emits a sticky `<header>` / `<nav>` / `.banner` (anything with `position: sticky; top: 0`), you MUST also declare `--banner-height` (a px value matching the nav's height) and `--z-sticky-nav` (≥ 1 above `--z-sticky`) in `tokens.css`. The S3 recipe above pulls both. Without those tokens the section head paints over the nav during scroll — see slop-test gate 68.
|
|
1
|
+
### S3 · Sticky pinned
|
|
2
|
+
Heading remains in viewport while content scrolls beneath. Orientation aid.
|
|
3
|
+
*Use when:* the section is dense and the user benefits from always seeing where they are.
|
|
4
|
+
*Don't confuse with:* S1 Left-margin (which doesn't move).
|
|
5
|
+
|
|
6
|
+
```html
|
|
7
|
+
<header class="head-sticky">
|
|
8
|
+
<p class="num-label">02</p>
|
|
9
|
+
<h2>…</h2>
|
|
10
|
+
</header>
|
|
11
|
+
```
|
|
12
|
+
```css
|
|
13
|
+
/* If the page has a sticky top nav, offset by its height so the sticky
|
|
14
|
+
head docks BENEATH it instead of bleeding over (slop-test gate 68).
|
|
15
|
+
Use --z-sticky (in-page) so the nav's --z-sticky-nav out-paints it. */
|
|
16
|
+
.head-sticky { position: sticky; top: var(--banner-height, 0px); background: var(--color-paper); padding-block: var(--space-sm); border-bottom: 1px solid var(--color-ink); z-index: var(--z-sticky); }
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Sticky pairing rule:** if the page emits a sticky `<header>` / `<nav>` / `.banner` (anything with `position: sticky; top: 0`), you MUST also declare `--banner-height` (a px value matching the nav's height) and `--z-sticky-nav` (≥ 1 above `--z-sticky`) in `tokens.css`. The S3 recipe above pulls both. Without those tokens the section head paints over the nav during scroll — see slop-test gate 68.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
### S4 · Inline (no break)
|
|
2
|
-
The heading is a small caps phrase that emerges *inside* the body flow; no spatial break.
|
|
3
|
-
*Use when:* the page is prose-led; reading should be continuous.
|
|
4
|
-
*Don't confuse with:* S2 Hanging (which separates with negative space).
|
|
5
|
-
|
|
6
|
-
```html
|
|
7
|
-
<p>… <span class="head-inline">A small heading.</span> …</p>
|
|
8
|
-
```
|
|
9
|
-
```css
|
|
10
|
-
.head-inline { font-variant-caps: all-small-caps; letter-spacing: 0.06em; font-weight: 500; }
|
|
11
|
-
```
|
|
1
|
+
### S4 · Inline (no break)
|
|
2
|
+
The heading is a small caps phrase that emerges *inside* the body flow; no spatial break.
|
|
3
|
+
*Use when:* the page is prose-led; reading should be continuous.
|
|
4
|
+
*Don't confuse with:* S2 Hanging (which separates with negative space).
|
|
5
|
+
|
|
6
|
+
```html
|
|
7
|
+
<p>… <span class="head-inline">A small heading.</span> …</p>
|
|
8
|
+
```
|
|
9
|
+
```css
|
|
10
|
+
.head-inline { font-variant-caps: all-small-caps; letter-spacing: 0.06em; font-weight: 500; }
|
|
11
|
+
```
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
### S5 · Bottom-anchored
|
|
2
|
-
The label or heading sits *below* the section's content. Inverts hierarchy.
|
|
3
|
-
*Use when:* the content is the primary act and the label is a footer to it.
|
|
4
|
-
*Don't confuse with:* S1 Left-margin (which leads with the label).
|
|
5
|
-
|
|
6
|
-
```html
|
|
7
|
-
<section>
|
|
8
|
-
<div class="content">…</div>
|
|
9
|
-
<p class="num-label">— end of 02</p>
|
|
10
|
-
</section>
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
---
|
|
1
|
+
### S5 · Bottom-anchored
|
|
2
|
+
The label or heading sits *below* the section's content. Inverts hierarchy.
|
|
3
|
+
*Use when:* the content is the primary act and the label is a footer to it.
|
|
4
|
+
*Don't confuse with:* S1 Left-margin (which leads with the label).
|
|
5
|
+
|
|
6
|
+
```html
|
|
7
|
+
<section>
|
|
8
|
+
<div class="content">…</div>
|
|
9
|
+
<p class="num-label">— end of 02</p>
|
|
10
|
+
</section>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
package/template/.claude/skills/hallmark/references/components/t1-pull-quote-with-marginalia.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
### T1 · Pull-quote with marginalia
|
|
3
|
-
A quote sits in the wide column; the attribution and source link float in the narrow margin column.
|
|
4
|
-
*Use when:* the page already has a marginalia rhythm (Tufte-leaning, editorial).
|
|
5
|
-
*Don't confuse with:* T3 Single huge quote (which is centered and dominates).
|
|
6
|
-
|
|
7
|
-
```html
|
|
8
|
-
<aside class="proof-margin">
|
|
9
|
-
<blockquote class="serif-italic">"…"</blockquote>
|
|
10
|
-
<p class="attribution muted">— Name<br />Role, Company</p>
|
|
11
|
-
</aside>
|
|
12
|
-
```
|
|
1
|
+
|
|
2
|
+
### T1 · Pull-quote with marginalia
|
|
3
|
+
A quote sits in the wide column; the attribution and source link float in the narrow margin column.
|
|
4
|
+
*Use when:* the page already has a marginalia rhythm (Tufte-leaning, editorial).
|
|
5
|
+
*Don't confuse with:* T3 Single huge quote (which is centered and dominates).
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<aside class="proof-margin">
|
|
9
|
+
<blockquote class="serif-italic">"…"</blockquote>
|
|
10
|
+
<p class="attribution muted">— Name<br />Role, Company</p>
|
|
11
|
+
</aside>
|
|
12
|
+
```
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
### T2 · Logo wall (hairline)
|
|
2
|
-
A row of customer logos, monochromatic, separated by hairline rules. No card boxes, no shadows.
|
|
3
|
-
*Use when:* you have recognisable customers and want to surface them quietly.
|
|
4
|
-
*Don't confuse with:* the AI-default 6-logo box grid; this version refuses card boxes.
|
|
5
|
-
|
|
6
|
-
```html
|
|
7
|
-
<section class="logo-wall">
|
|
8
|
-
<ul>
|
|
9
|
-
<li><img src="" /></li>
|
|
10
|
-
<li><img src="" /></li>
|
|
11
|
-
<li><img src="" /></li>
|
|
12
|
-
</ul>
|
|
13
|
-
</section>
|
|
14
|
-
```
|
|
15
|
-
```css
|
|
16
|
-
.logo-wall ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: 0; }
|
|
17
|
-
.logo-wall li { padding: var(--space-md); border-right: 1px solid var(--color-rule); display: grid; place-items: center; }
|
|
18
|
-
.logo-wall img { filter: grayscale(1); opacity: 0.7; }
|
|
19
|
-
```
|
|
1
|
+
### T2 · Logo wall (hairline)
|
|
2
|
+
A row of customer logos, monochromatic, separated by hairline rules. No card boxes, no shadows.
|
|
3
|
+
*Use when:* you have recognisable customers and want to surface them quietly.
|
|
4
|
+
*Don't confuse with:* the AI-default 6-logo box grid; this version refuses card boxes.
|
|
5
|
+
|
|
6
|
+
```html
|
|
7
|
+
<section class="logo-wall">
|
|
8
|
+
<ul>
|
|
9
|
+
<li><img src="" /></li>
|
|
10
|
+
<li><img src="" /></li>
|
|
11
|
+
<li><img src="" /></li>
|
|
12
|
+
</ul>
|
|
13
|
+
</section>
|
|
14
|
+
```
|
|
15
|
+
```css
|
|
16
|
+
.logo-wall ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: 0; }
|
|
17
|
+
.logo-wall li { padding: var(--space-md); border-right: 1px solid var(--color-rule); display: grid; place-items: center; }
|
|
18
|
+
.logo-wall img { filter: grayscale(1); opacity: 0.7; }
|
|
19
|
+
```
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
### T3 · Single huge quote
|
|
2
|
-
One quote, set big, centered, taking a whole section. No supporting text, no attribution boxes — attribution is a small caps line beneath.
|
|
3
|
-
*Use when:* one quote is so good it earns the room.
|
|
4
|
-
*Don't confuse with:* T1 Margin pull-quote (which is the *side* mate, not the *room*).
|
|
5
|
-
|
|
6
|
-
```html
|
|
7
|
-
<section class="proof-room">
|
|
8
|
-
<blockquote class="display-italic">"…"</blockquote>
|
|
9
|
-
<p class="attribution"><span class="caps">— Name, Company</span></p>
|
|
10
|
-
</section>
|
|
11
|
-
```
|
|
1
|
+
### T3 · Single huge quote
|
|
2
|
+
One quote, set big, centered, taking a whole section. No supporting text, no attribution boxes — attribution is a small caps line beneath.
|
|
3
|
+
*Use when:* one quote is so good it earns the room.
|
|
4
|
+
*Don't confuse with:* T1 Margin pull-quote (which is the *side* mate, not the *room*).
|
|
5
|
+
|
|
6
|
+
```html
|
|
7
|
+
<section class="proof-room">
|
|
8
|
+
<blockquote class="display-italic">"…"</blockquote>
|
|
9
|
+
<p class="attribution"><span class="caps">— Name, Company</span></p>
|
|
10
|
+
</section>
|
|
11
|
+
```
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
### T4 · Numbered stat strip
|
|
2
|
-
A horizontal strip of 3–5 stats (count + qualifier) running across one row. Tabular nums.
|
|
3
|
-
*Use when:* you have multiple complementary metrics that work together.
|
|
4
|
-
*Don't confuse with:* H4 Stat-led hero (which is one focal number, not several).
|
|
5
|
-
|
|
6
|
-
```html
|
|
7
|
-
<section class="stat-strip tnum">
|
|
8
|
-
<div><b>2.4M</b><span>users</span></div>
|
|
9
|
-
<div><b>99.97%</b><span>uptime</span></div>
|
|
10
|
-
<div><b>14</b><span>regions</span></div>
|
|
11
|
-
</section>
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
---
|
|
1
|
+
### T4 · Numbered stat strip
|
|
2
|
+
A horizontal strip of 3–5 stats (count + qualifier) running across one row. Tabular nums.
|
|
3
|
+
*Use when:* you have multiple complementary metrics that work together.
|
|
4
|
+
*Don't confuse with:* H4 Stat-led hero (which is one focal number, not several).
|
|
5
|
+
|
|
6
|
+
```html
|
|
7
|
+
<section class="stat-strip tnum">
|
|
8
|
+
<div><b>2.4M</b><span>users</span></div>
|
|
9
|
+
<div><b>99.97%</b><span>uptime</span></div>
|
|
10
|
+
<div><b>14</b><span>regions</span></div>
|
|
11
|
+
</section>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
---
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# Output contract & scope
|
|
2
|
-
|
|
3
|
-
Loaded once per build, at handoff time.
|
|
4
|
-
|
|
5
|
-
## Output contract
|
|
6
|
-
|
|
7
|
-
When producing new work:
|
|
8
|
-
|
|
9
|
-
- Put design tokens in one place at the top of the stylesheet (`:root` custom properties) or in a `tokens.css` / `tokens.ts` file if the project uses one.
|
|
10
|
-
- Name tokens by semantic role, not value. `--color-ink`, not `--color-black`.
|
|
11
|
-
- If the project uses Tailwind, extend the theme; do not inline arbitrary values across components.
|
|
12
|
-
- If the project uses a framework, match the framework's file conventions — don't reinvent them.
|
|
13
|
-
- Include a short comment block at the top of the stylesheet naming the genre, the tone the user picked, the palette's anchor hue, and the structural fingerprint. This is the only comment you need.
|
|
14
|
-
|
|
15
|
-
## Scope and limits
|
|
16
|
-
|
|
17
|
-
Hallmark is a *taste* skill. It will not:
|
|
18
|
-
|
|
19
|
-
- Invent product copy. If the user hasn't given you the words, ask.
|
|
20
|
-
- Pick a brand identity. It will follow one you give it.
|
|
21
|
-
- Enforce a specific style (dark mode, glassmorphism, brutalism). It will execute whichever genre + tone the user committed to.
|
|
22
|
-
- Build logic — state management, data fetching, business rules. It is a visual / interaction layer only.
|
|
23
|
-
|
|
24
|
-
If a request falls outside taste — "build the auth flow", "wire up Stripe" — do the work, but apply Hallmark to the rendered surface.
|
|
1
|
+
# Output contract & scope
|
|
2
|
+
|
|
3
|
+
Loaded once per build, at handoff time.
|
|
4
|
+
|
|
5
|
+
## Output contract
|
|
6
|
+
|
|
7
|
+
When producing new work:
|
|
8
|
+
|
|
9
|
+
- Put design tokens in one place at the top of the stylesheet (`:root` custom properties) or in a `tokens.css` / `tokens.ts` file if the project uses one.
|
|
10
|
+
- Name tokens by semantic role, not value. `--color-ink`, not `--color-black`.
|
|
11
|
+
- If the project uses Tailwind, extend the theme; do not inline arbitrary values across components.
|
|
12
|
+
- If the project uses a framework, match the framework's file conventions — don't reinvent them.
|
|
13
|
+
- Include a short comment block at the top of the stylesheet naming the genre, the tone the user picked, the palette's anchor hue, and the structural fingerprint. This is the only comment you need.
|
|
14
|
+
|
|
15
|
+
## Scope and limits
|
|
16
|
+
|
|
17
|
+
Hallmark is a *taste* skill. It will not:
|
|
18
|
+
|
|
19
|
+
- Invent product copy. If the user hasn't given you the words, ask.
|
|
20
|
+
- Pick a brand identity. It will follow one you give it.
|
|
21
|
+
- Enforce a specific style (dark mode, glassmorphism, brutalism). It will execute whichever genre + tone the user committed to.
|
|
22
|
+
- Build logic — state management, data fetching, business rules. It is a visual / interaction layer only.
|
|
23
|
+
|
|
24
|
+
If a request falls outside taste — "build the auth flow", "wire up Stripe" — do the work, but apply Hallmark to the rendered surface.
|