diff --git a/plugins/README.md b/plugins/README.md index cf4a21ecc5..6888c7f93e 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -12,6 +12,7 @@ Learn more in the [official plugins documentation](https://docs.claude.com/en/do | Name | Description | Contents | |------|-------------|----------| +| [agentmarkup](./agentmarkup/) | Make websites machine-readable for LLMs and AI agents with llms.txt, llms-full.txt, JSON-LD, markdown mirrors, and AI crawler directives | **Command:** `/agentmarkup` - Analyze project and set up machine-readable assets with the right adapter or manual approach
**Skill:** `agentmarkup` - Auto-invoked for site metadata, agent-readable assets, and structured data work | | [agent-sdk-dev](./agent-sdk-dev/) | Development kit for working with the Claude Agent SDK | **Command:** `/new-sdk-app` - Interactive setup for new Agent SDK projects
**Agents:** `agent-sdk-verifier-py`, `agent-sdk-verifier-ts` - Validate SDK applications against best practices | | [claude-opus-4-5-migration](./claude-opus-4-5-migration/) | Migrate code and prompts from Sonnet 4.x and Opus 4.1 to Opus 4.5 | **Skill:** `claude-opus-4-5-migration` - Automated migration of model strings, beta headers, and prompt adjustments | | [code-review](./code-review/) | Automated PR code review using multiple specialized agents with confidence-based scoring to filter false positives | **Command:** `/code-review` - Automated PR review workflow
**Agents:** 5 parallel Sonnet agents for CLAUDE.md compliance, bug detection, historical context, PR history, and code comments | diff --git a/plugins/agentmarkup/.claude-plugin/plugin.json b/plugins/agentmarkup/.claude-plugin/plugin.json new file mode 100644 index 0000000000..6e4696af55 --- /dev/null +++ b/plugins/agentmarkup/.claude-plugin/plugin.json @@ -0,0 +1,9 @@ +{ + "name": "agentmarkup", + "version": "1.0.0", + "description": "Make websites machine-readable for LLMs and AI agents with llms.txt, llms-full.txt, JSON-LD, markdown mirrors, and AI crawler directives", + "author": { + "name": "Sebastian Cochinescu", + "url": "https://github.com/cochinescu" + } +} diff --git a/plugins/agentmarkup/LICENSE.txt b/plugins/agentmarkup/LICENSE.txt new file mode 100644 index 0000000000..70797f73e0 --- /dev/null +++ b/plugins/agentmarkup/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Sebastian Cochinescu and Anima Felix + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/plugins/agentmarkup/README.md b/plugins/agentmarkup/README.md new file mode 100644 index 0000000000..211055ea4e --- /dev/null +++ b/plugins/agentmarkup/README.md @@ -0,0 +1,76 @@ +# Agent Markup Plugin + +Make websites machine-readable for LLMs and AI agents using the current `agentmarkup` toolchain: `llms.txt`, optional `llms-full.txt`, JSON-LD, markdown mirrors, AI crawler directives, and agent-facing headers. + +## What It Does + +This plugin helps developers add machine-readable assets to their web projects so AI agents and LLMs can understand and interact with their sites. + +It covers five areas: +- **`llms.txt`** — a standardized manifest that describes site content for LLMs +- **`llms-full.txt`** — optional inlined same-site context for deeper agent fetches +- **JSON-LD structured data** — schema.org markup that gives pages semantic meaning +- **Markdown mirrors** — optional `.md` pages for cleaner agent-facing fetch targets +- **AI crawler and header directives** — `robots.txt`, `_headers`, `Content-Signal`, and canonical `Link` headers where appropriate + +## Command: `/agentmarkup` + +Analyzes your project and guides you through setting up machine-readable assets with the right `agentmarkup` adapter or manual approach. + +**Usage:** +```bash +/agentmarkup +``` + +Or with context: +```bash +/agentmarkup Set up llms.txt for my documentation site +``` + +The command will: +1. Detect your framework and who owns the final HTML output +2. Check for existing assets (`llms.txt`, `llms-full.txt`, JSON-LD, `robots.txt`, `_headers`, markdown mirrors) +3. Recommend the right setup approach +4. Guide implementation step by step +5. Validate the result and call out compatibility caveats + +## Skill: `agentmarkup` + +Automatically activates when you're working on site metadata, SEO, structured data, agent-readable assets, or AI crawler configuration. Provides contextual guidance on: + +- llms.txt format and best practices +- llms-full.txt and markdown mirror tradeoffs +- JSON-LD schema.org types and validation +- AI crawler directives and headers (`GPTBot`, `ClaudeBot`, `PerplexityBot`, `Google-Extended`, `CCBot`) +- `@agentmarkup/vite`, `@agentmarkup/astro`, and `@agentmarkup/core` compatibility +- Common mistakes to avoid + +## When to Use + +- Setting up a new website and want it to be AI-discoverable +- Adding structured data to an existing site +- Configuring robots.txt for AI crawlers +- Creating or editing an `llms.txt` or `llms-full.txt` manifest +- Generating markdown mirrors for agent-friendly fetches +- Making a documentation site agent-friendly +- Choosing between the Vite adapter, Astro adapter, and core helpers for a meta-framework or custom build + +## Learn More + +- [llms.txt specification](https://llmstxt.org) +- [schema.org](https://schema.org) +- [agentmarkup repository](https://github.com/agentmarkup/agentmarkup) +- [@agentmarkup/vite](https://github.com/agentmarkup/agentmarkup/tree/main/packages/vite) +- [@agentmarkup/astro](https://github.com/agentmarkup/agentmarkup/tree/main/packages/astro) +- [@agentmarkup/core](https://github.com/agentmarkup/agentmarkup/tree/main/packages/core) + +## Compatibility Notes + +- Use `@agentmarkup/vite` when plain Vite owns the final HTML output. +- Use `@agentmarkup/astro` for Astro sites. +- Use `@agentmarkup/core` in custom prerender or post-build pipelines, and for frameworks that do an additional final render step after Vite. +- Current schema presets are `webSite`, `organization`, `article`, `faqPage`, `product`, and `offer`. + +## Author + +Sebastian Cochinescu ([@cochinescu](https://github.com/cochinescu)) diff --git a/plugins/agentmarkup/commands/agentmarkup.md b/plugins/agentmarkup/commands/agentmarkup.md new file mode 100644 index 0000000000..946ea59375 --- /dev/null +++ b/plugins/agentmarkup/commands/agentmarkup.md @@ -0,0 +1,169 @@ +--- +description: Analyze a web project and set up machine-readable assets for LLMs and AI agents +argument-hint: Optional framework or setup question +--- + +# Agent Markup Setup + +You are helping a developer make their website machine-readable for LLMs and AI agents. Analyze the project and guide them through adding the right assets. + +## Core Principles + +- **Detect before suggesting**: Read the project's config files and dependencies before recommending anything +- **Minimal, correct setup**: Only suggest what the project actually needs +- **Compatibility-first**: Match the current `agentmarkup` package surface from `github.com/agentmarkup/agentmarkup` +- **Standards-first**: Prioritize the `llms.txt` specification and schema.org JSON-LD +- **Non-destructive**: Never overwrite existing metadata without asking +- **Do not install or build without approval**: Ask before running package-manager installs or build commands + +--- + +## Phase 1: Project Detection + +**Goal**: Understand the project's framework, who owns the final HTML output, and which machine-readable assets already exist + +**Actions**: +1. Check for framework config files: + - `vite.config.ts` / `vite.config.js` → Vite project + - `astro.config.mjs` / `astro.config.ts` → Astro project + - `next.config.ts` / `next.config.js` → Next.js project + - `nuxt.config.ts` → Nuxt project + - `svelte.config.js` / `svelte.config.ts` → SvelteKit project + - `remix.config.js` / `remix.config.ts` → Remix project + - Static HTML → Plain site +2. Check for existing metadata: + - `public/llms.txt` or `llms.txt` → Already has llms.txt + - `public/llms-full.txt` or `llms-full.txt` → Already has llms-full.txt + - JSON-LD `