mirror of
https://github.com/nexu-io/open-design.git
synced 2026-05-31 19:04:39 +07:00
* add typography-hierarchy and typography-hierarchy-editorial craft rules Adds two layered craft files extending typography.md: - typography-hierarchy.md: core hierarchy contract, vectors, failure modes, controlled violations, and lint checklist - typography-hierarchy-editorial.md: editorial pacing, dramatic scale jumps, whitespace hierarchy, display tracking overrides, and editorial-specific lint Both files are registered in craft/README.md with guidance on when to require them. Includes a new editorial stack example showing the layered opt-in pattern. Validation: - pnpm guard: PASSED - Universal craft knowledge (not brand-specific) - Stable slugs: typography-hierarchy, typography-hierarchy-editorial - No new dependencies or breaking changes Passes craft additions lane per code-review-guidelines.md. * wire typography base into editorial skills craft stack All three editorial skills now require the complete layered stack: [typography, typography-hierarchy, typography-hierarchy-editorial, rtl-and-bidi] The new hierarchy files (typography-hierarchy.md, typography-hierarchy-editorial.md) explicitly extend typography.md and depend on its base contract (scale ranges, tracking values, line-height guidance, weight system). Without typography in requires[], the hierarchy rules arrive at runtime without their foundational contracts, making them incomplete. Skills updated: - skills/blog-post/SKILL.md - skills/docs-page/SKILL.md - skills/digital-eguide/SKILL.md This completes the craft injection for the editorial stack as documented in craft/README.md and ensures both base typography and hierarchy extensions load together at runtime.
2.8 KiB
2.8 KiB
| name | description | triggers | od | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| blog-post | A long-form article / blog post — masthead, hero image placeholder, article body with figures and pull quotes, author byline, related posts. Use when the brief asks for "blog", "article", "post", "essay", or "case study". |
|
|
Blog Post Skill
Produce a single long-form article page — editorial layout, no chrome.
Workflow
- Read the active DESIGN.md (injected above). Lean into the typography tokens — long-form is 70% type, 20% image, 10% chrome.
- Pick the topic from the brief and write a real article — at least 600 words across 4–6 H2 sections. No lorem ipsum.
- Sections, in order:
- Masthead — small wordmark + 4–6 nav links, plain.
- Article header — category eyebrow, headline (display token, large), deck (1–2 sentence subhead), author name + role + date.
- Hero image — a 16:9 placeholder block using a DS-tinted gradient or solid fill (no external images). Add a 1-line caption underneath.
- Body — alternating prose paragraphs with at least:
- 1 pull quote (large display type, accent rule on the inline-start edge so the layout flips correctly under
dir="rtl"). - 1 figure (image placeholder + caption).
- 1 list (numbered or bulleted).
- 1 inline blockquote.
- 1 pull quote (large display type, accent rule on the inline-start edge so the layout flips correctly under
- Author footer — author avatar (initials in a circle), bio paragraph.
- Related — 3 cards linking to other posts. Each card: tiny image block, title, 1-line excerpt, date.
- Write a single HTML document:
<!doctype html>through</html>, CSS inline.- Article body uses the DS body font, centered, max-width per DS layout rule (typically 680–720px).
- Drop caps (
first-letter) only if the DS mood is editorial / serif — skip on tech-y DSes. data-od-idon the headline, hero, body, pull quote, related grid.
- Self-check:
- Type hierarchy is unambiguous — H1 is clearly the headline; H2s are section dividers; pull quotes do not compete with H1.
- Line length 60–75 chars for body prose.
- Accent appears at most twice (eyebrow + pull-quote rule, or one link).
- The page reads like a magazine, not a marketing landing.
Output contract
Emit between <artifact> tags:
<artifact identifier="post-slug" type="text/html" title="Article Title">
<!doctype html>
<html>...</html>
</artifact>
One sentence before the artifact, nothing after.