本文へ移動
cccskills
無料GitHub で公開

content-seo-geo

Optimize a prisma.io page for search engines and AI answer engines. Use when writing or reviewing blog posts, docs pages, or landing pages for SEO, GEO, AEO, AI citations, AI Overviews, ChatGPT/Perplexity visibility, featured snippets, metadata, or FAQ sections; when refreshing an existing page for freshness or rankings; or when asked why a page isn't ranking or being cited.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md7.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

SEO + GEO Optimization

Optimize one page at a time so that AI engines cite it and search engines rank it. Being cited by AI engines is the primary goal and ranks above search engine rankings: an AI assistant that quotes and recommends Prisma reaches developers (and their coding agents) before a search results page ever loads. Search ranking is the supporting mechanism, since ranked pages get retrieved and cited more often. When a trade-off appears, choose what makes the page more quotable by AI engines.

Both goals are earned by the same underlying property: a page that answers a specific question with verifiable, extractable claims. Work through the steps in order; the page is done when every completion criterion checks.

This skill is used in conjunction with the content-write-blog skill in this repo: content-write-blog produces and drafts the post (author, frontmatter shape, link rules, writing quality), and this skill optimizes the result for search and AI engines. content-write-blog stays the source of truth for drafting conventions; this skill does not restate them.

Step 1: Name the target queries

Write down the questions this page should be the answer to: one primary query and the 5–10 related queries an AI engine fans out to (synonyms, "how to", "X vs Y", "best X for Y" variants). Every later step is judged against this list.

For new pages, let the query pick the format: comparisons, definitive guides, and original data are the formats AI engines cite most, so frame the page as one of those where the topic allows, rather than a generic post on the same subject.

Done when: the primary query is one sentence, and each fan-out query is either answered on this page or deliberately assigned to another page.

Step 2: Answer first

The first paragraph answers the primary query directly: what the thing is, what the reader will achieve, and the exact mechanism, with the product and category named. A reader (or model) who sees only this paragraph should correctly classify the page and be able to quote a correct answer from it.

Series or context position is stated explicitly ("This is the second part of a five-part series on...") — models can't infer position from URL structure.

The lead carries the canonical internal links, so agents know from the first paragraph where the related information lives: the first product mention linked to its docs page (per content-write-blog link rules) and, where one exists, the predecessor or parent page (previous series part, overview page). Only those; "related reading" clusters dilute the answer and stay out of the lead.

Done when: the primary query is answered within the first 100 words, with no throat-clearing ("Welcome to", "In today's world", "Here's the thing"), and the lead links to the canonical docs page and predecessor page where they exist.

Step 3: Structure for extraction

AI engines extract passages, not pages. Match block type to query type:

Query shapeBlock
"What is X?"Definition paragraph, 40–60 words, standalone
"How to X"Numbered steps
"X vs Y"Comparison table
"Is X better / should I X"Pros/cons list
Recurring questionsFAQ section (markup below)

Rules:

  • Headings phrased the way people ask ("Does whitelist: true reject unknown fields?"), where that reads naturally.
  • Every section leads with its answer; explanation follows.
  • One idea per paragraph.
  • Structure serves people first. The same clear page satisfies Google and AI engines; chunking content into fragments "for AI" or writing per-engine variants triggers spam policies and reads worse.
  • No inline table of contents — the site layout renders its own InlineTOC from headings.
  • FAQ sections use the site's accordion components. Bodies are server-rendered, so collapsed answers remain fully readable to crawlers and models:
## Frequently asked questions

<Accordions type="single">
  <Accordion title="Question phrased the way people ask it?">
Answer as a standalone, quotable claim. State the fact first, qualification second.
  </Accordion>
</Accordions>

3–4 questions per page. Each answer must stand alone with zero surrounding context.

Done when: each target query from Step 1 maps to a block on the page, and every FAQ answer reads as a complete fact on its own.

Step 4: Make claims citable

Models cite pages that contain facts they can lift and defend. Convert vague statements into specific ones:

  • Concrete nouns and named products over pronouns and "our platform".
  • Numbers with dates and sources ("55.3M downloads/month, npm, July 2026"), never round marketing claims. Sourced statistics are the single strongest citation driver (roughly +40% in the Princeton GEO study).
  • A quotation from a named person (maintainer, engineer, customer) where one genuinely exists; quoted experts lift citation rates, manufactured quotes destroy trust.
  • Keywords used where a reader needs them and nowhere else; repeating terms to game engines measurably reduces AI visibility.
  • Behavior stated exactly ("fails with HTTP 409 and the message Unique constraint failed"), quoted from real output.
  • Every claim verified before publication: code samples run on the current release, numbers pulled from the live source, links resolving. A page that teaches models one wrong fact does more damage than a page that ranks nowhere.

Done when: every factual claim on the page would survive being quoted out of context, and each has been verified this pass (not assumed from a previous version).

Step 5: Entity and freshness signals

  • Same product names everywhere on the page; state the category near the top ("Prisma ORM, a TypeScript ORM...").
  • Named author with a real profile; keep the original author on refreshes.
  • updatedAt frontmatter bumped honestly per touch, plus an "Updated (Month Year):" callout stating what changed and which versions everything was verified against.
  • Internal links to the canonical docs, product, and related blog pages per content-write-blog link rules.

Done when: the page names its category, carries a current updatedAt + callout, and links to at least the canonical docs page for each product it covers.

Step 6: Metadata

  • metaTitle: leads with the primary query's answer or subject, under ~60 characters, current version names included where they earn clicks ("Input Validation in a REST API with NestJS and Prisma 7").
  • metaDescription: one or two sentences answering the primary query, naming the stack and the outcome, under ~160 characters.
  • Slug: never changed on refreshes — ranking history lives there.

Done when: title and description each answer the primary query on their own, and the slug is untouched.

Step 7: Verify the page as served

Build or serve the page and check the rendered HTML, not the source file: FAQ bodies present in HTML, headings generating TOC entries, no broken components, links returning 200. Content checks against the source file pass on stale builds and lie.

Done when: every check in this list was run against the served page:

  • Primary query answered in first 100 words
  • Each Step 1 query mapped to a block
  • FAQ accordion bodies present in served HTML
  • All claims verified this pass; all links 200
  • updatedAt + Updated callout present (refreshes)
  • metaTitle / metaDescription answer the primary query
  • No inline TOC

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Use when the operator wants a hero or meta image for a Prisma blog post; asks to create or generate a blog hero, cover, social card, Open Graph, or YouTube image; mentions cover art, a blog thumbnail, cover.svg/hero.svg/meta.png; references content-create-hero-image; or wants to interactively design cover imagery in Prisma's 2026 brand (light paper, prism accents, Sora). Produces an editable SVG hero plus a pixel-exact PNG meta image, and includes an interactive mode and a built-in design-review pass.

日本語の概要は準備中です。原文の説明を表示しています。

prisma/web1,1052026年10月10日 更新

Use when the operator wants to write a blog post, draft a blog article, start a new post for the Prisma blog, or publish to prisma.io/blog.

日本語の概要は準備中です。原文の説明を表示しています。

prisma/web1,1052026年10月10日 更新

Use when adding a new docs section or product area, editing llms.ts / the llms.txt or llms/[...slug] / llms-full.txt routes / get-llm-text / skill.md / .well-known endpoints, or working on the "agent score", "llms.txt", or anything "agent-ready" in the docs and site apps. Explains the invariants the Mintlify agent-readiness audit measures and how to hold them.

日本語の概要は準備中です。原文の説明を表示しています。

prisma/web1,1052026年10月10日 更新

Use when a docs page or section has been written or rewritten and is about to be handed over, when the operator says "reader review", "does this read like a human wrote it", "too much jargon", "plain language", or when a docs brief asks for a review before a pull request.

日本語の概要は準備中です。原文の説明を表示しています。

prisma/web1,1052026年10月10日 更新

Use when writing, rewriting, or improving technical docs (quickstarts, how-tos, tutorials, concept pages, or API references).

日本語の概要は準備中です。原文の説明を表示しています。

prisma/web1,1052026年10月10日 更新

prisma のスキルをすべて見る

このスキルの問題を報告する