Communitygithub.com

Varnan-Tech/opendirectory

创建专业设计的B2B SaaS电子书(HTML + CSS),并导出为可打印的PDF。支持3–10页、9种样式预设、11种页面布局类型。

opendirectory 是什么?

此技能可根据用户提供的主题、受众、预期行动和内容,自动生成高质量的B2B SaaS电子书(铅磁铁、门控指南、培育资产、白皮书)。它通过结构化的五步流程工作:第一步进行需求收集,第二步获取详细的设计和内容偏好,第三步规划内部章节架构,第四步输出页面布局结构供用户确认,第五步生成最终的单文件HTML(所有CSS均已内联)并确保适配A4纸打印。该技能支持多种样式预设(如clean-slate、midnight-editorial等),并内置了严格的设计规则,如禁止内容溢出、使用clamp()实现响应式字体、确保背景色在PDF中正确渲染。它适用于Claude Code、Cursor等AI代理平台,帮助开发者和营销人员快速制作专业水准的PDF报告,无需任何设计或编码经验。

兼容平台✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Varnan-Tech/opendirectory/tree/main/skills/graphic-ebook

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

graphic-ebook

创建专业设计的B2B SaaS电子书——铅磁铁、门控指南、培育资产、白皮书。HTML + CSS → 可打印的PDF。3–10页。

关键规则

在任何步骤之前,这些规则是绝对的:

  1. 每一页必须适合A4画布(1200×1697px)。不允许内容溢出。
  2. 所有可缩放字体大小使用clamp()。仅边框/结构元素使用固定px。
  3. 单一自包含的HTML。所有CSS内联。仅字体CDN <link>作为外部依赖。
  4. **切勿在聊天中转储HTML。**保存到文件,仅显示摘要。
  5. 正文是首要的。在所有text-column和text-sidebar页面上,行高 ≥ 1.75。单列正文的最大宽度 ≤ 65ch。
  6. 无通用AI垃圾:显示字体不使用Inter,白色上无紫到蓝渐变,无“谢谢”结尾。
  7. 视觉节奏:切勿将2个或更多text-column页面连续放置。用chapter-intro、quote-callout或stat-grid打断。
  8. **在生成HTML之前,确定一个设计方向:**一种基调,一个标志性元素,一种背景系统。通用 = 失败。每本电子书必须为其受众和主题进行独特设计——而非模板。
  9. * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }——必选的全局CSS。没有这个,Chromium会在PDF中剥离所有背景颜色。
  10. 除封面外,每一页必须有一个页脚:页码 + 品牌名称。在每个.slide底部绝对定位。

步骤 1:需求收集

四个必填字段。如果用户的提示中存在全部四个字段:跳转到步骤 2。

如果缺少任何一项,请准确询问:

“要创建您的电子书,我需要四件事:

  1. 主题——电子书是关于什么的?(具体说明:“5种降低CAC的方法”而不是“营销技巧”)
  2. 受众——谁会读它?(角色、公司规模、痛点:“在50–500人规模的SaaS公司中,应对客户流失的客户成功经理”)
  3. 期望行动——读者之后应该做什么?(预约演示、下载模板、与团队分享)
  4. 内容——您有现有内容,还是我应该根据主题起草?”

停止并等待。不要阅读参考文件。不要生成任何HTML或大纲。


步骤 2:完整信息收集

在一个消息中询问所有9个问题,并分组。如果跳过,则应用默认值。

内容

  1. 页数——3–5(快速指南/核对清单)/ 6–8(标准指南)/ 9–10(深度探讨)(默认:6)
  2. 关键要点——读者阅读后应该知道或做的3–5件事(告知章节结构)
  3. 品牌名称——封面和页脚的公司或产品名称(或“跳过”)
  4. 品牌标志——网址或“无”

设计 5. 样式——clean-slate / midnight-editorial / matt-gray / product-minimal / mint-pixel-corporate / warm-earth / brutalist / magazine-red / soft-cloud / “显示选项”(默认:clean-slate) 6. 章节数量——多少主要部分?(默认:根据页数得出)

输出 7. CTA详情——预约演示 / 订阅新闻通讯 / 下载模板 / 其他(默认:“预约演示”) 8. 联系信息——用于结束CTA页面的电子邮件 + 网址(或“稍后添加”) 9. 缩略名——文件名缩略名(例如,“reduce-churn-guide-2025”;如果跳过,则从主题派生)

默认值:

问题默认值
页数6
关键要点从主题派生
品牌名称无
品牌标志无
样式clean-slate
章节数量从页数派生
CTA详情预约演示
联系信息占位符(在核对清单中标出)
缩略名主题的kebab-case

如果样式 = “显示选项”: 生成3个单页HTML预览(仅封面页)并保存到.claude-design/previews/style-a.html、style-b.html、style-c.html。自动打开每个。在步骤3之前要求用户选择。


步骤 3:内部架构

内部派生。切勿向用户展示。

章节 → 页面映射:

页数典型结构
3封面 + [1个内容页] + 结束CTA
4封面 + [1个章节介绍 + 1个文本列] + 结束CTA
5封面 + 目录 + [1个章节介绍 + 1个文本列] + 结束CTA
6封面 + 目录 + [2个章节介绍 + 1个文本列] + 结束CTA
8封面 + 目录 + [3个章节介绍 + 2个内容页] + 结束CTA
10封面 + 目录 + [4个章节介绍 + 3个内容页] + 关键要点 + 结束CTA

目录规则: 对于 ≥ 6页的电子书,包含目录。对于3–5页的电子书,在封面上使用“内容概览”项目符号列表,或完全跳过。

三点式CTA架构(适用于 ≥ 6页的电子书):

  1. 介绍CTA(第2页之后)——微妙的1行内联提及:“在[网址]探索我们的[工具]”
  2. 电子书中部CTA(在stat-grid或chapter-intro之后)——带有1行CTA的小型.callout--stat或.callout--tip框
  3. 结束CTA(最后一页)——全页,主要转化行动

视觉节奏检查: 如果计划中出现2个或更多连续的text-column页面 → 在继续之前,在它们之间插入quote-callout或stat-grid。

设计方向(从样式预设+受众派生——绝不向用户展示):

决策派生来源
基调这个受众期望什么情感基调?(权威、编辑、充满活力、平静、温暖……)
标志性元素一致使用的一个视觉设备:超大的装饰性数字、对角强调条、点网格叠加、封面上的渐变网格、规则线、几何形状出血。选择一个。使用它。
背景系统不同页面的背景如何变化?封面和章节介绍 = 最独特。内容页面较安静,但不是全白。结束CTA = 深色或全强调色反转。没有3个或更多连续页面具有相同的背景。
动态样式.reveal动画做什么?选择一个并保持一致:translateY(16px) → 0、scale(0.97) → 1、translateX(-12px) → 0。错开延迟0.1秒。
难忘的细节读者会记住设计的哪一件事?在编写任何CSS之前命名它。

如果仅从样式预设无法推导出强方向,请问自己:顶级设计公司会为这个特定受众和主题产出什么?然后执行它。

正文密度限制:

  • text-column 1-col:每页最多180–250字
  • text-column 2-col:最多280–380字(每列140–190)
  • text-sidebar:主区域140–180字 + 侧边栏最多70字
  • chapter-intro:40–60字(仅预告)
  • quote-callout:30–45字
  • stat-grid:3–6个指标,最小化标签

步骤 4:页面结构

在规划之前阅读references/page-library.md。

输出一个编号列表,每页带有[布局类型]标签。例如,6页版本:

第1页:[封面] — 标题、副标题、品牌
第2页:[目录] — 3个章节标题 + 页码
第3页:[章节介绍] — 第1章开场
第4页:[文本列] — 第1章正文(1列)
第5页:[统计网格] — 4个关键指标
第6页:[结束CTA] — 预约演示CTA + 联系信息

在步骤5之前与用户确认。


步骤 5:内容起草

以纯文本形式编写每页文案(无HTML)。每种布局类型的规则:

  • 封面:标题(≤10字,以价值或紧张感开头——而非通用标签)+ 副标题(≤15字)+ 可选类别标签 + 品牌名称
  • 目录:章节标题(每个≤6字)+ 相应的章节编号。清晰、编号的列表。
  • 章节介绍:章节编号(装饰性)+ 章节标题(≤8字)+ 预告段落(2–3句)
  • 文本列(1列):小节标题 + 正文段落。最多250字。散文 > 项目符号。每个句子都值得存在。
  • 文本列(2列):相同规则,每列140–190字。用于比较、步骤对、双重视角。
  • 文本侧边栏:主正文(140–180字)+ 侧边栏标注类型(提示/警告/统计/引用/核对清单),最多70字
  • 引用标注:拉引 ≤40字 + 归属(姓名、职称、公司或来源)
  • 统计网格:3–6个指标——数字 + 标签 + 1行背景。可选:下面的1句叙述。
  • 关键要点:5–8个要点,每个≤15字,尽可能使用祈使句
  • 结束CTA:标题≤5字(祈使句)+ 1句正文 + CTA行动 + 电子邮件 + 网址(两者都需要)

禁止词汇(无例外): "powerful"、"seamless"、"game-changing"、"leverage"、"innovative"、"revolutionary"、"transform"、"cutting-edge"、"robust"、"unlock"、"scalable"(作为填充词)。


步骤 6:HTML生成

在生成之前阅读所有这些。不要概括或总结它们——阅读实际文件。

此技能的参考:

  • references/design-system.md
  • references/page-library.md
  • references/style-presets.md

打包的资源(确切路径——在<style>块中包含完整的逐字内容):

  • assets/viewport-base.css——捆绑在此技能的目录内

路径解析: 所有以assets/或scripts/为前缀的路径都相对于包含此SKILL.md文件的目录。在安装后的Claude Code中:~/.claude/skills/graphic-ebook/assets/和~/.claude/skills/graphic-ebook/scripts/。在读取之前,从SKILL.md文件位置解析实际路径。

生成规则

  1. 单一自包含的HTML。 所有CSS内联。仅字体CDN <link>作为外部依赖。

  2. 在<style>块中包含viewport-base.css的完整逐字内容。

  3. 在viewport-base.css之后添加A4纵向覆盖(在同一个<style>块中):

/* A4纵向覆盖 */
html { scroll-snap-type: none; scroll-behavior: auto; }
.slide {
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
  scroll-snap-align: none;
}
/* 关键:防止Chromium在PDF中剥离背景 */
* { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  1. 每个页面 = <section class="slide">——为export-pdf.sh页面检测所必需。

  2. 注释每个页面: /* === 页面 N: 布局类型 === */

  3. 正文文本: clamp(0.875rem, 1.25vw, 1.05rem)、line-height: 1.75、max-width: min(65ch, 100%)应用于text-column和text-sidebar布局中的所有<p>。

  4. 统计数字: 主角为clamp(3rem, 8vw, 5.5rem),使用强调色。次要数字为clamp(2.5rem, 7vw, 5rem),使用次要颜色。

  5. 无可用图像 → 仅使用CSS生成的视觉元素(渐变、几何形状、圆点图案、抽象元素)。切勿显示占位框。

  6. 无SlidePresentation JS。 仅包含最小的IntersectionObserver用于.reveal动画。

  7. 章节编号装饰(在chapter-intro页面上):

.chapter-number-deco {
  font-family: var(--font-display);
  font-size: clamp(6rem, 18vw, 14rem);
  font-weight: var(--display-weight);
  opacity: 0.06;
  position: absolute;
  top: -0.1em;
  right: var(--page-padding);
  line-height: 1;
  color: var(--accent);
  pointer-events: none;
  user-select: none;
}
  1. 类型化标注框(用于text-sidebar页面):
.callout { border-left: 3px solid; border-radius: var(--card-radius, 4px); padding: clamp(0.75rem, 1.5%, 1.1rem); }
.callout-label { font-size: clamp(0.58rem, 0.8vw, 0.68rem); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 0.5em; }
.callout--tip      { background: rgba(22, 163, 74, 0.07);  border-color: #16A34A; }
.callout--tip      .callout-label { color: #16A34A; }
.callout--warning  { background: rgba(217, 119, 6, 0.07);  border-color: #D97706; }
.callout--warning  .callout-label { color: #D97706; }
.callout--stat     { background: rgba(var(--accent-rgb, 100,100,100), 0.07); border-color: var(--accent); }
.callout--stat     .callout-label { color: var(--accent); }
.callout--quote    { background: var(--bg-elevated); border-color: var(--divider); font-style: italic; }
.callout--quote    .callout-label { color: var(--text-muted); }
.callout--checklist { background: rgba(8, 145, 178, 0.07);  border-color: #0891B2; }
.callout--checklist .callout-label { color: #0891B2; }
  1. 页脚(除封面外的每一页):
.page-footer {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: clamp(0.5rem, 1%, 0.625rem) var(--page-padding);
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--divider);
  font-family: var(--font-body);
  font-size: clamp(0.55rem, 0.75vw, 0.65rem);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
}

HTML:<div class="page-footer"><span>[品牌名称]</span><span>[N]</span></div>

  1. 2列布局: display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 4%, 3.5rem);,左列带有border-right: 1px solid var(--divider)。

  2. 文本侧边栏布局: display: grid; grid-template-columns: 2fr 1fr; gap: clamp(1.5rem, 3%, 2.5rem);

设计质量规则(来自前端设计原则)

这些控制每本生成电子书的美学追求。在结构规则之后、输出之前应用。

排版:

  • 显示字体必须在大尺寸下有特色。Plus Jakarta Sans 800、Instrument Serif、Syne、Lora、Fraunces——都可以。以显示权重使用Inter = 立即的垃圾信号。
  • 切勿为两个连续的层级级别使用相同的字体权重。封面标题(800)→ 章节标题(700)→ 小节标题(700,较小尺寸)→ 正文(400/500)。
  • 当预设支持时,将显示字体与精致的正文字体配对(例如Instrument Serif + Inter、Syne + IBM Plex Sans)。单字体堆栈必须改用权重对比。

背景和氛围:

  • 封面必须有一个重要的装饰性::before或::after伪元素,创建视觉深度:透明度为0.04–0.06的幽灵字母、几何形状出血、径向渐变叠加、或点/线网格图案。
  • 章节介绍页面必须在视觉上与相邻的内容页面形成对比——使用var(--bg-alt)或样式合适的替代处理。
  • 内容页面(text-column、text-sidebar)可以是白色/中性,但……

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Varnan-Tech/opendirectory

Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.

Varnan-Tech/opendirectory

World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.

Varnan-Tech/opendirectory

Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.

Varnan-Tech/opendirectory

Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.

Varnan-Tech/opendirectory

Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.

Varnan-Tech/opendirectory

Give it your product URL or description. It finds your top 5 competitors, runs three-track PR research across all of them (editorial, podcasts, communities), identifies which channels appear most frequently, looks up the journalist or host for each, and returns a tiered outreach list with story angles and ready-to-send cold pitch drafts tailored to your product. Use when asked to find PR opportunities, discover where competitors got featured, build a media outreach list, find which journalists cover my space, or get pitch templates for press coverage.

Varnan-Tech/opendirectory

Generate high-converting, deep-dive growth case studies in MDX format. Use this skill when asked to write a case study or blog post about a company's growth, tech stack, or product-led strategy. It handles the full pipeline (researching the company via Tavily, generating a 16:9 cover image, quality checking the draft, uploading assets to cloud storage, and pushing directly to the target repository).

Varnan-Tech/opendirectory

Scans your project for outdated npm, pip, Cargo, Go, or Ruby packages. Runs a CVE security audit. Fetches changelogs, summarizes breaking changes with Gemini, and opens one PR per risk group (patch, minor, major). Includes Diagnosis Mode for install conflicts. Use when asked to update dependencies, check for outdated packages, open dependency PRs, scan for package updates, audit for CVEs, or flag breaking changes in upgrades. Trigger when a user says "check for outdated packages", "update my dependencies", "open PRs for dependency updates", "scan for CVEs", or "which packages need upgrading".

Varnan-Tech/opendirectory

Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture. Uses graphify to build a knowledge graph first, then writes accurate docs from it. Use when asked to write docs, generate a README, document an API, update stale docs, create an API reference from code, add an architecture section, or document a project in any language. Trigger when a user says their docs are missing, outdated, or wants to document their codebase without writing it manually.

Varnan-Tech/opendirectory

Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.

Varnan-Tech/opendirectory

Brutally honest developer-experience audit for a GitHub repo. Scores 10 DX dimensions (time-to-first-success, README clarity, visual proof, install, quick-start, docs, examples, community, trust, marketing), writes a shareable roast in the requested tone (brutal/honest/kind), produces a prioritized action plan ranked by impact × effort, and sketches an ideal README. Trigger when user says "roast my repo", "audit my README", "dx audit", "developer experience review", "score my GitHub project", "before launch checklist", or "make my repo shareable".

Varnan-Tech/opendirectory

Drafts and designs a complete HTML email newsletter from a topic or content brief. Outputs paste-ready HTML for Loops, Mailchimp, Beehiiv, Resend, or any standard email platform. Includes subject line options and plain-text fallback. Trigger when a user says "write a newsletter", "draft an email newsletter", "create an HTML email", "design an email for my subscribers", or "write a newsletter about [topic]".

Varnan-Tech/opendirectory

Takes a GitHub PR URL or the current branch and writes a plain-English explanation of what it does and why, then posts it as a PR comment. Use when asked to explain a PR, summarize a pull request, write a plain-English description of a PR, add a summary comment to a PR, or understand what a PR changes. Trigger when a user says "explain this PR", "summarize this pull request", "what does this PR do", "add a comment explaining the PR", or shares a GitHub PR URL and asks what it does.

Varnan-Tech/opendirectory

Audit how often LLMs recommend your brand vs competitors and generate a GEO action plan.

Varnan-Tech/opendirectory

Takes a competitor's public GitHub repo URL, fetches their open issues via the GitHub REST API, filters noise locally, clusters issues into 6 demand categories, computes a demand score per issue and per cluster, and outputs a ranked demand gap report with a GTM messaging brief. Use when asked to scan a competitor's GitHub issues, find what their users are begging for, turn GitHub complaints into product positioning, identify competitor feature gaps, or generate messaging from real user demand. Trigger when a user says "scan competitor issues", "what are users asking for on X repo", "find demand gaps in Y", "turn GitHub issues into messaging", or "what should I build based on competitor complaints".

Varnan-Tech/opendirectory

Find recurring confusion in your repo's GitHub Discussions, rank it by urgency, and draft the actual docs fixes and content angles — with verbatim community quotes and source links as evidence.

Varnan-Tech/opendirectory

SEO keyword research workflow for blog generation using Google Trends data. Use when writing blog posts, planning content calendars, or optimizing articles for search engines. Finds breakout keywords, builds content structure, and generates SEO-optimized blog outlines targeting tech and developer audiences.

Varnan-Tech/opendirectory

Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this customer win into a PDF".

Varnan-Tech/opendirectory

Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6. 1080×1080px default, 5 style presets, highlight annotations. Trigger when user says "create a chart", "visualize data", "make a bar chart", "line graph", "pie chart", "data visualization", "chart this data", "plot", "graph", or "visualize these numbers".

Varnan-Tech/opendirectory

Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning opportunities.

相关技能