ワンクリックで
icp-2
ICP-2 — Human-First SEO & Answer Engine Optimization (AEO) standard for 2026
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
ICP-2 — Human-First SEO & Answer Engine Optimization (AEO) standard for 2026
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Enforces atomic commits, checkpoint summaries, rate-limit recovery, and safe resume patterns. Writes session state to cognitive-memory so interrupted sessions can restart cleanly.
Round-robin multi-LLM consultation with full-context debate. GPT proposes, Gemini refines, Grok challenges — each sees the full chain including wheat/chaff verdicts and justifications. Nothing is filtered between rounds.
Knows common ingredient substitutions and validates they don't break recipes. Handles dairy-free, gluten-free, egg-free, sugar-free, and altitude adjustments.
Cross-repository cognitive memory system with semantic search. Persists knowledge across sessions using TF-IDF recall, memory versioning, knowledge graph edges, and confidence decay. Memory is cognition, not storage.
Audits WCAG 2.1 AA compliance for Granny Hudson's Kitchen — validates image alt text, color contrast, heading hierarchy, form labels, keyboard navigation, and screen reader compatibility on recipe pages.
Tracks content freshness across Granny Hudson's Kitchen web pages. Flags stale pages, monitors recipe data currency, and ensures the website reflects the latest transcription work.
| name | icp-2 |
| version | 2.1.0 |
| description | ICP-2 — Human-First SEO & Answer Engine Optimization (AEO) standard for 2026 |
| type | guardrail |
| enforcement | block |
| triggers | [{"file_pattern":"**/*.html"},{"file_pattern":"*.html"}] |
Successor to: ICP-Lite v1.4 Status: Active standard (blocking enforcement) Purpose: Every page must be findable by humans, citable by AI, and honest about what it knows. Principle: Human first. No SEO theater. No AEO theater.
Soli Deo Gloria
v2.1 incorporates findings from multi-LLM research (GPT + Gemini consensus audit). Both models were asked: "What do you actually use vs. ignore?" Results:
When any .html file is edited, all of the following must be true or the edit is blocked.
<meta name="ai-summary" content="..."/>
<meta name="last-reviewed" content="YYYY-MM-DD"/>
<meta name="description" content="..."/>
<!-- Internal tooling only — not read by any crawler -->
<meta name="content-protocol" content="ICP-2"/>
Rules:
ai-summary: max 250 chars, first 155 chars must be a complete standalone answerai-summary must be factual, specific, no hype, no CTAslast-reviewed: must be a real date when a human last verified the contentdescription: traditional meta description, can differ from ai-summary but must be honestcontent-protocol: internal only — tells our validation which standard to check against. Not blocking if missing, but should be present for tooling.Every page must have at minimum a JSON-LD block. Prefer specific types (Article, HowTo, TouristDestination) over generic WebPage — specific types give AI models much more to work with.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"name": "PAGE TITLE",
"description": "Consistent with ai-summary (not necessarily identical)",
"dateModified": "MUST MATCH last-reviewed EXACTLY",
"datePublished": "YYYY-MM-DD"
}
</script>
Parity rules:
description must be consistent with ai-summary — same facts, same meaning, but doesn't need to be character-identical. (Both models confirmed: exact-match adds maintenance burden without AI benefit.)dateModified must exactly match last-reviewed — conflicting dates actively confuse both humans and AI about content freshness. This is data integrity.Pages about a specific thing must declare mainEntity with the appropriate type:
| Page Type | Schema Type | Key Properties |
|---|---|---|
| Ship | Product | name, category, manufacturer |
| Port | TouristDestination | name, description, geo |
| Restaurant/Venue | FoodEstablishment | name, servesCuisine, priceRange |
| Article/Guide | Article | headline, author, datePublished |
| How-To/Planning | HowTo | name, step[], tool[] |
| Tool/Calculator | SoftwareApplication | name, applicationCategory |
| Person/Author | Person | name, jobTitle, knowsAbout |
| Hub/Index | CollectionPage | name, description |
<article>, <section>, <nav>, <aside> to segment content. These help AI identify which part of the page contains the primary content vs. navigation vs. supplementary material.Key content — the text a human reads, the facts an AI cites — must be in the static HTML. Do not hide content behind JavaScript rendering, client-side fetch, or dynamic injection. If a search engine or AI crawler can't see it without executing JS, it doesn't exist.
<link rel="canonical" href="https://DOMAIN/exact-path.html"/>
Only applies to repos with public websites (InTheWake, flickersofmajesty). Recipe repos, sheep repo, and sermon repo are exempt unless they have public pages.
<meta property="og:title" content="..."/>
<meta property="og:description" content="..."/>
<meta property="og:url" content="..."/>
<meta property="og:image" content="..."/>
<meta property="og:type" content="website"/>
The ai-summary is the page's "answer" for AI citation. Write it as if an AI assistant will read it aloud as the complete answer to someone's question.
Test: "If an AI reads only this summary to a user, would they get an accurate, useful answer?"
Multi-surface reality: This summary serves Google snippets, AI Overviews, ChatGPT citations, Perplexity answers, and social share previews simultaneously. Write it for all of them — which means write it for humans.
How AI actually uses your content (March 2026): AI models increasingly synthesize from multiple sources rather than extracting verbatim snippets. This means your page may inform an AI answer without being quoted directly. The best strategy is the same one that works for humans: be the most accurate, specific, and well-structured source on the topic. Original data, unique statistics, and firsthand experience are what make your content indispensable — AI can't synthesize what doesn't exist elsewhere.
robots.txt must explicitly allow AI crawlers:
User-agent: GPTBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Allow: /
Do NOT block AI crawlers unless there is a specific, documented reason.
If the site has a public presence, a /llms.txt at site root is recommended containing:
Note: Both GPT and Gemini confirmed llms.txt is not an established standard. It may be ignored. Include it as a low-cost bet, not a requirement.
lastmod must reflect actual last content modification per pagelast-reviewed in HTML must match realityWhen content includes prices, menus, operating hours, policies, or any fact that changes:
This is not SEO theater — both AI models and humans need to know when time-sensitive data was last checked.
Images, video, and audio are increasingly processed by AI. Help them:
alt text that states what's in the image factually (not "beautiful sunset photo" — instead "Ship wake at sunrise departing Port Canaveral"). Use WebP format, lazy loading for below-fold.This isn't about stuffing keywords into alt text — it's about making visual content accessible to both screen readers and AI simultaneously.
Person schemaknowsAbout must list specific, real expertise areas (not aspirational)sameAs should link to other presences only if they actually exist and are active — do not create social profiles just for SEOThese are theater. ICP-2 explicitly forbids them:
lastmod without actually reviewing contentgeo.region, geo.placename on non-local sitessameAs linksShip: [Ship Name] is a [Class] ship ([GT] GT, [capacity] guests, [year]) featuring [2-3 signature features] and [itinerary type] itineraries.
Port: [Port Name] features [signature experience]. [Key fact]. [What cruisers do here].
Restaurant: [Name] is [line]'s [type] ([surcharge/included]) featuring [signature items] [availability].
Tool: [Tool name] helps cruisers [primary benefit]. [What it does in one sentence].
Article: [Topic] — [key insight or answer]. [Why it matters for cruise planning].
Hub: [Action verb] all [entity type] by [filters]. [Scope/count].
When this skill fires on an HTML file edit, check in order:
ai-summary exists and is <= 250 charslast-reviewed exists and is valid YYYY-MM-DDdescription meta tag exists@typedescription is consistent with ai-summary (same facts/meaning)dateModified matches last-reviewed exactlyIf ANY check fails:
If all checks pass:
Pages with content-protocol="ICP-Lite v1.4" are allowed during migration. When editing such a page:
ICP-2ai-breadcrumbs HTML comments if presentmeta name="keywords" if presentmeta name="geo.region" / geo.placename if presentEnd of ICP-2 v2.1 Protocol