Skip to content

Commit 602bdfb

Browse files
mertguvencliclaude
andcommitted
feat: add markdown editor with live preview and PDF export
Implement the core MarkBloom application with a split-pane Markdown editor and live preview. Includes PDF export in A4/Letter/Legal sizes, SEO metadata with structured data, robots.txt, sitemap, llms.txt, and GitHub Actions workflow. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 878ae49 commit 602bdfb

30 files changed

Lines changed: 5049 additions & 68 deletions

.agents/skills/ai-seo/SKILL.md

Lines changed: 443 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
{
2+
"skill_name": "ai-seo",
3+
"evals": [
4+
{
5+
"id": 1,
6+
"prompt": "How do I make sure our SaaS product shows up in AI search results? We're a project management tool and we keep getting left out of ChatGPT and Perplexity recommendations when people ask about project management software.",
7+
"expected_output": "Should check for product-marketing-context.md first. Should apply the three pillars framework: Structure (make content extractable), Authority (make content citable), Presence (be where AI looks). Should run through the AI Visibility Audit checklist across platforms (Google AI Overviews, ChatGPT, Perplexity, etc.). Should check content extractability (clear definitions, structured comparisons, statistics). Should reference Princeton GEO research findings (citations improve visibility +40%, statistics +37%). Should check AI bot access in robots.txt. Should provide a prioritized action plan.",
8+
"assertions": [
9+
"Checks for product-marketing-context.md",
10+
"Applies three pillars framework (Structure, Authority, Presence)",
11+
"Runs AI Visibility Audit across platforms",
12+
"Checks content extractability",
13+
"References Princeton GEO research findings",
14+
"Checks AI bot access in robots.txt",
15+
"Provides prioritized action plan"
16+
],
17+
"files": []
18+
},
19+
{
20+
"id": 2,
21+
"prompt": "Should we block AI crawlers like GPTBot and PerplexityBot in our robots.txt? We're worried about content theft.",
22+
"expected_output": "Should address the AI bot access question directly. Should explain the tradeoff: blocking AI bots prevents training on your content but also prevents AI platforms from citing and recommending you. Should reference the specific bots and their purposes (GPTBot, Google-Extended, PerplexityBot, ClaudeBot, etc.). Should provide the recommended robots.txt configuration. Should explain that blocking may hurt AI visibility more than it protects content. Should provide a nuanced recommendation based on business goals.",
23+
"assertions": [
24+
"Addresses the blocking tradeoff directly",
25+
"Explains impact on AI visibility vs content protection",
26+
"Lists specific AI bot user agents",
27+
"Provides recommended robots.txt configuration",
28+
"Gives nuanced recommendation based on business goals",
29+
"Explains what each bot does"
30+
],
31+
"files": []
32+
},
33+
{
34+
"id": 3,
35+
"prompt": "What kind of content gets cited most by AI systems? We want to create content specifically optimized for AI search.",
36+
"expected_output": "Should reference the content types that get cited most, including comparisons (~33% of AI citations), definitive guides (~15%), and other high-citation content types. Should explain why these formats work (they provide the structured, extractable, authoritative information AI systems need). Should provide specific recommendations for creating AI-optimized content: clear definitions, structured data, original statistics, comparison tables, expert quotes. Should reference the Princeton GEO research on what increases citation probability.",
37+
"assertions": [
38+
"References specific content types with citation rates",
39+
"Mentions comparisons as highest-cited format",
40+
"Explains why these formats work for AI",
41+
"Provides specific content creation recommendations",
42+
"References Princeton GEO research",
43+
"Mentions structured data, statistics, and clear definitions"
44+
],
45+
"files": []
46+
},
47+
{
48+
"id": 4,
49+
"prompt": "we noticed our competitors are showing up in google AI overviews but we're not. what do we need to change?",
50+
"expected_output": "Should trigger on casual phrasing. Should focus specifically on Google AI Overviews visibility. Should explain how AI Overviews selects sources (authoritative, well-structured, directly answers queries). Should run through the Structure pillar checklist: content extractability, heading hierarchy, answer-first format, structured data. Should check Authority signals: domain authority, citations, E-E-A-T. Should recommend specific content structure changes. Should suggest monitoring approach.",
51+
"assertions": [
52+
"Triggers on casual phrasing",
53+
"Focuses on Google AI Overviews specifically",
54+
"Explains how AI Overviews selects sources",
55+
"Checks Structure pillar (extractability, headings, answer-first)",
56+
"Checks Authority signals",
57+
"Recommends specific content structure changes",
58+
"Suggests monitoring approach"
59+
],
60+
"files": []
61+
},
62+
{
63+
"id": 5,
64+
"prompt": "Can you audit our website for AI search readiness? We want to know how visible we are across ChatGPT, Perplexity, Google AI Overviews, and other AI platforms.",
65+
"expected_output": "Should run the full AI Visibility Audit. Should check each platform in the landscape (Google AI Overviews, ChatGPT, Perplexity, Claude, Gemini, Copilot). Should evaluate all three pillars: Structure (content extractability, JSON-LD, clear definitions), Authority (citations, backlinks, E-E-A-T signals), Presence (AI bot access, platform-specific factors). Should provide findings organized by pillar. Should provide a prioritized action plan with specific fixes.",
66+
"assertions": [
67+
"Runs full AI Visibility Audit",
68+
"Checks multiple AI platforms",
69+
"Evaluates all three pillars (Structure, Authority, Presence)",
70+
"Checks content extractability",
71+
"Checks AI bot access",
72+
"Provides findings organized by pillar",
73+
"Provides prioritized action plan"
74+
],
75+
"files": []
76+
},
77+
{
78+
"id": 6,
79+
"prompt": "Our organic search traffic has dropped 30% this quarter. Can you do a full SEO audit to figure out what's going on?",
80+
"expected_output": "Should recognize this is a traditional SEO audit request, not specifically an AI SEO task. Should defer to or cross-reference the seo-audit skill, which handles comprehensive traditional SEO audits including crawlability, technical foundations, on-page optimization, and content quality. May mention AI search as one factor to investigate but should make clear that seo-audit is the primary skill for this task.",
81+
"assertions": [
82+
"Recognizes this as a traditional SEO audit request",
83+
"References or defers to seo-audit skill",
84+
"Does not attempt a full traditional SEO audit using AI SEO patterns",
85+
"May mention AI search as one factor to consider"
86+
],
87+
"files": []
88+
}
89+
]
90+
}
Lines changed: 285 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,285 @@
1+
# AEO and GEO Content Patterns
2+
3+
Reusable content block patterns optimized for answer engines and AI citation.
4+
5+
---
6+
7+
## Contents
8+
- Answer Engine Optimization (AEO) Patterns (Definition Block, Step-by-Step Block, Comparison Table Block, Pros and Cons Block, FAQ Block, Listicle Block)
9+
- Generative Engine Optimization (GEO) Patterns (Statistic Citation Block, Expert Quote Block, Authoritative Claim Block, Self-Contained Answer Block, Evidence Sandwich Block)
10+
- Domain-Specific GEO Tactics (Technology Content, Health/Medical Content, Financial Content, Legal Content, Business/Marketing Content)
11+
- Voice Search Optimization (Question Formats for Voice, Voice-Optimized Answer Structure)
12+
13+
## Answer Engine Optimization (AEO) Patterns
14+
15+
These patterns help content appear in featured snippets, AI Overviews, voice search results, and answer boxes.
16+
17+
### Definition Block
18+
19+
Use for "What is [X]?" queries.
20+
21+
```markdown
22+
## What is [Term]?
23+
24+
[Term] is [concise 1-sentence definition]. [Expanded 1-2 sentence explanation with key characteristics]. [Brief context on why it matters or how it's used].
25+
```
26+
27+
**Example:**
28+
```markdown
29+
## What is Answer Engine Optimization?
30+
31+
Answer Engine Optimization (AEO) is the practice of structuring content so AI-powered systems can easily extract and present it as direct answers to user queries. Unlike traditional SEO that focuses on ranking in search results, AEO optimizes for featured snippets, AI Overviews, and voice assistant responses. This approach has become essential as over 60% of Google searches now end without a click.
32+
```
33+
34+
### Step-by-Step Block
35+
36+
Use for "How to [X]" queries. Optimal for list snippets.
37+
38+
```markdown
39+
## How to [Action/Goal]
40+
41+
[1-sentence overview of the process]
42+
43+
1. **[Step Name]**: [Clear action description in 1-2 sentences]
44+
2. **[Step Name]**: [Clear action description in 1-2 sentences]
45+
3. **[Step Name]**: [Clear action description in 1-2 sentences]
46+
4. **[Step Name]**: [Clear action description in 1-2 sentences]
47+
5. **[Step Name]**: [Clear action description in 1-2 sentences]
48+
49+
[Optional: Brief note on expected outcome or time estimate]
50+
```
51+
52+
**Example:**
53+
```markdown
54+
## How to Optimize Content for Featured Snippets
55+
56+
Earning featured snippets requires strategic formatting and direct answers to search queries.
57+
58+
1. **Identify snippet opportunities**: Use tools like Semrush or Ahrefs to find keywords where competitors have snippets you could capture.
59+
2. **Match the snippet format**: Analyze whether the current snippet is a paragraph, list, or table, and format your content accordingly.
60+
3. **Answer the question directly**: Provide a clear, concise answer (40-60 words for paragraph snippets) immediately after the question heading.
61+
4. **Add supporting context**: Expand on your answer with examples, data, and expert insights in the following paragraphs.
62+
5. **Use proper heading structure**: Place your target question as an H2 or H3, with the answer immediately following.
63+
64+
Most featured snippets appear within 2-4 weeks of publishing well-optimized content.
65+
```
66+
67+
### Comparison Table Block
68+
69+
Use for "[X] vs [Y]" queries. Optimal for table snippets.
70+
71+
```markdown
72+
## [Option A] vs [Option B]: [Brief Descriptor]
73+
74+
| Feature | [Option A] | [Option B] |
75+
|---------|------------|------------|
76+
| [Criteria 1] | [Value/Description] | [Value/Description] |
77+
| [Criteria 2] | [Value/Description] | [Value/Description] |
78+
| [Criteria 3] | [Value/Description] | [Value/Description] |
79+
| [Criteria 4] | [Value/Description] | [Value/Description] |
80+
| Best For | [Use case] | [Use case] |
81+
82+
**Bottom line**: [1-2 sentence recommendation based on different needs]
83+
```
84+
85+
### Pros and Cons Block
86+
87+
Use for evaluation queries: "Is [X] worth it?", "Should I [X]?"
88+
89+
```markdown
90+
## Advantages and Disadvantages of [Topic]
91+
92+
[1-sentence overview of the evaluation context]
93+
94+
### Pros
95+
96+
- **[Benefit category]**: [Specific explanation]
97+
- **[Benefit category]**: [Specific explanation]
98+
- **[Benefit category]**: [Specific explanation]
99+
100+
### Cons
101+
102+
- **[Drawback category]**: [Specific explanation]
103+
- **[Drawback category]**: [Specific explanation]
104+
- **[Drawback category]**: [Specific explanation]
105+
106+
**Verdict**: [1-2 sentence balanced conclusion with recommendation]
107+
```
108+
109+
### FAQ Block
110+
111+
Use for topic pages with multiple common questions. Essential for FAQ schema.
112+
113+
```markdown
114+
## Frequently Asked Questions
115+
116+
### [Question phrased exactly as users search]?
117+
118+
[Direct answer in first sentence]. [Supporting context in 2-3 additional sentences].
119+
120+
### [Question phrased exactly as users search]?
121+
122+
[Direct answer in first sentence]. [Supporting context in 2-3 additional sentences].
123+
124+
### [Question phrased exactly as users search]?
125+
126+
[Direct answer in first sentence]. [Supporting context in 2-3 additional sentences].
127+
```
128+
129+
**Tips for FAQ questions:**
130+
- Use natural question phrasing ("How do I..." not "How does one...")
131+
- Include question words: what, how, why, when, where, who, which
132+
- Match "People Also Ask" queries from search results
133+
- Keep answers between 50-100 words
134+
135+
### Listicle Block
136+
137+
Use for "Best [X]", "Top [X]", "[Number] ways to [X]" queries.
138+
139+
```markdown
140+
## [Number] Best [Items] for [Goal/Purpose]
141+
142+
[1-2 sentence intro establishing context and selection criteria]
143+
144+
### 1. [Item Name]
145+
146+
[Why it's included in 2-3 sentences with specific benefits]
147+
148+
### 2. [Item Name]
149+
150+
[Why it's included in 2-3 sentences with specific benefits]
151+
152+
### 3. [Item Name]
153+
154+
[Why it's included in 2-3 sentences with specific benefits]
155+
```
156+
157+
---
158+
159+
## Generative Engine Optimization (GEO) Patterns
160+
161+
These patterns optimize content for citation by AI assistants like ChatGPT, Claude, Perplexity, and Gemini.
162+
163+
### Statistic Citation Block
164+
165+
Statistics increase AI citation rates by 15-30%. Always include sources.
166+
167+
```markdown
168+
[Claim statement]. According to [Source/Organization], [specific statistic with number and timeframe]. [Context for why this matters].
169+
```
170+
171+
**Example:**
172+
```markdown
173+
Mobile optimization is no longer optional for SEO success. According to Google's 2024 Core Web Vitals report, 70% of web traffic now comes from mobile devices, and pages failing mobile usability standards see 24% higher bounce rates. This makes mobile-first indexing a critical ranking factor.
174+
```
175+
176+
### Expert Quote Block
177+
178+
Named expert attribution adds credibility and increases citation likelihood.
179+
180+
```markdown
181+
"[Direct quote from expert]," says [Expert Name], [Title/Role] at [Organization]. [1 sentence of context or interpretation].
182+
```
183+
184+
**Example:**
185+
```markdown
186+
"The shift from keyword-driven search to intent-driven discovery represents the most significant change in SEO since mobile-first indexing," says Rand Fishkin, Co-founder of SparkToro. This perspective highlights why content strategies must evolve beyond traditional keyword optimization.
187+
```
188+
189+
### Authoritative Claim Block
190+
191+
Structure claims for easy AI extraction with clear attribution.
192+
193+
```markdown
194+
[Topic] [verb: is/has/requires/involves] [clear, specific claim]. [Source] [confirms/reports/found] that [supporting evidence]. This [explains/means/suggests] [implication or action].
195+
```
196+
197+
**Example:**
198+
```markdown
199+
E-E-A-T is the cornerstone of Google's content quality evaluation. Google's Search Quality Rater Guidelines confirm that trust is the most critical factor, stating that "untrustworthy pages have low E-E-A-T no matter how experienced, expert, or authoritative they may seem." This means content creators must prioritize transparency and accuracy above all other optimization tactics.
200+
```
201+
202+
### Self-Contained Answer Block
203+
204+
Create quotable, standalone statements that AI can extract directly.
205+
206+
```markdown
207+
**[Topic/Question]**: [Complete, self-contained answer that makes sense without additional context. Include specific details, numbers, or examples in 2-3 sentences.]
208+
```
209+
210+
**Example:**
211+
```markdown
212+
**Ideal blog post length for SEO**: The optimal length for SEO blog posts is 1,500-2,500 words for competitive topics. This range allows comprehensive topic coverage while maintaining reader engagement. HubSpot research shows long-form content earns 77% more backlinks than short articles, directly impacting search rankings.
213+
```
214+
215+
### Evidence Sandwich Block
216+
217+
Structure claims with evidence for maximum credibility.
218+
219+
```markdown
220+
[Opening claim statement].
221+
222+
Evidence supporting this includes:
223+
- [Data point 1 with source]
224+
- [Data point 2 with source]
225+
- [Data point 3 with source]
226+
227+
[Concluding statement connecting evidence to actionable insight].
228+
```
229+
230+
---
231+
232+
## Domain-Specific GEO Tactics
233+
234+
Different content domains benefit from different authority signals.
235+
236+
### Technology Content
237+
- Emphasize technical precision and correct terminology
238+
- Include version numbers and dates for software/tools
239+
- Reference official documentation
240+
- Add code examples where relevant
241+
242+
### Health/Medical Content
243+
- Cite peer-reviewed studies with publication details
244+
- Include expert credentials (MD, RN, etc.)
245+
- Note study limitations and context
246+
- Add "last reviewed" dates
247+
248+
### Financial Content
249+
- Reference regulatory bodies (SEC, FTC, etc.)
250+
- Include specific numbers with timeframes
251+
- Note that information is educational, not advice
252+
- Cite recognized financial institutions
253+
254+
### Legal Content
255+
- Cite specific laws, statutes, and regulations
256+
- Reference jurisdiction clearly
257+
- Include professional disclaimers
258+
- Note when professional consultation is advised
259+
260+
### Business/Marketing Content
261+
- Include case studies with measurable results
262+
- Reference industry research and reports
263+
- Add percentage changes and timeframes
264+
- Quote recognized thought leaders
265+
266+
---
267+
268+
## Voice Search Optimization
269+
270+
Voice queries are conversational and question-based. Optimize for these patterns:
271+
272+
### Question Formats for Voice
273+
- "What is..."
274+
- "How do I..."
275+
- "Where can I find..."
276+
- "Why does..."
277+
- "When should I..."
278+
- "Who is..."
279+
280+
### Voice-Optimized Answer Structure
281+
- Lead with direct answer (under 30 words ideal)
282+
- Use natural, conversational language
283+
- Avoid jargon unless targeting expert audience
284+
- Include local context where relevant
285+
- Structure for single spoken response

0 commit comments

Comments
 (0)