.agents/skills/structured-data/SKILL.md
# Structured Data Skill — AuditKit This skill is auto-included in the generated ZIP when the Structured Data pillar score is below 90. Structured data (Schema.org JSON-LD) helps search engines and AI systems understand your content type — enabling rich results in Google Search and better AI discoverability. --- ## JSON-LD Basics Always use `application/ld+json` script tags in `<head>`. Never use Microdata or RDFa (JSON-LD is the recommended format per Google). ```html <script type="applica
npx skillsauth add nirholas/auditkit .agents/skills/structured-dataInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill is auto-included in the generated ZIP when the Structured Data pillar score is below 90.
Structured data (Schema.org JSON-LD) helps search engines and AI systems understand your content type — enabling rich results in Google Search and better AI discoverability.
Always use application/ld+json script tags in <head>. Never use Microdata or RDFa (JSON-LD is the recommended format per Google).
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Your Site Name",
"url": "https://yourdomain.com",
"description": "What your site does"
}
</script>
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "AuditKit",
"description": "Zero-key website auditor that generates AI agent fix files",
"url": "https://auditkit.dev",
"applicationCategory": "DeveloperApplication",
"operatingSystem": "Web",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"author": {
"@type": "Person",
"name": "nirholas",
"url": "https://github.com/nirholas"
}
}
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Article Title",
"description": "Brief description",
"datePublished": "2026-01-01",
"dateModified": "2026-01-15",
"author": { "@type": "Person", "name": "Author Name" },
"publisher": {
"@type": "Organization",
"name": "Site Name",
"logo": { "@type": "ImageObject", "url": "https://yourdomain.com/logo.png" }
}
}
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Company Name",
"url": "https://yourdomain.com",
"logo": "https://yourdomain.com/logo.png",
"sameAs": [
"https://twitter.com/yourhandle",
"https://github.com/yourhandle"
]
}
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Does AuditKit require an API key?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. AuditKit works completely without API keys."
}
}
]
}
// app/page.tsx
export default function Page() {
const schema = {
'@context': 'https://schema.org',
'@type': 'SoftwareApplication',
name: 'AuditKit',
// ...
}
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
{/* page content */}
</>
)
}
After adding structured data, validate it:
Ensure every important page is in your sitemap and the sitemap is linked from robots.txt:
// app/sitemap.ts (Next.js App Router)
import type { MetadataRoute } from 'next'
export default function sitemap(): MetadataRoute.Sitemap {
return [
{
url: 'https://yourdomain.com',
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 1.0,
},
// one entry per page
]
}
development
# SEO Skill — AuditKit This skill is auto-included in the generated ZIP when the SEO pillar score is below 90. ## Critical Requirements Every page MUST have: - `<title>` tag (50–60 characters) - `<meta name="description">` (120–158 characters) - `<link rel="canonical">` pointing to the preferred URL - At least one `<h1>` tag ## Meta Tags Checklist ```html <head> <!-- Required --> <title>Page Title — Site Name</title> <meta name="description" content="120–158 char description of this s
development
# Security Skill — AuditKit This skill is auto-included in the generated ZIP when the Security pillar score is below 90. ## HTTP Security Headers Add all of these to every response. Vercel users: add to `vercel.json`. Next.js users: add to `next.config.ts`. ### next.config.ts ```typescript const securityHeaders = [ { key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubDomains; preload', }, { key: 'Content-Security-Policy', value: [ "default-src
development
# Performance Skill — AuditKit This skill is auto-included in the generated ZIP when the Performance pillar score is below 90. ## What it covers Core Web Vitals (LCP, CLS, TBT/FID, FCP, TTFB, Speed Index) and general page weight / render-blocking resource issues. ## Thresholds (Google's "good" targets) | Metric | Good | Needs Improvement | Poor | |--------|------|-------------------|------| | LCP (Largest Contentful Paint) | < 2.5s | 2.5–4s | > 4s | | CLS (Cumulative Layout Shift) | < 0.1 |
tools
# AI Readiness Skill — AuditKit This skill is auto-included in the generated ZIP when the AI Readiness pillar score is below 90. AI Readiness measures how discoverable and usable your project is by AI coding agents, LLM crawlers, and vibe-coders who ask their AI about your tool. --- ## llms.txt The `llms.txt` standard (https://llmstxt.org) is a Markdown file at your domain root that gives LLMs context about your project — like `robots.txt` but for AI. ``` # YourProject > One-sentence desc