Skip to content

Releases: charlesjones-dev/claude-code-plugins-dev

v2.4.1 — ai-geo llms.txt discoverability signals

18 Apr 04:35

Choose a tag to compare

ai-geo v1.0.0 → v1.1.0

Extends all three ai-geo skills with the stackable weak-signal stack for llms.txt discovery beyond serving /llms.txt at root.

🧪 No major LLM provider (OpenAI, Anthropic, Perplexity, Google) has publicly committed to reading llms.txt as a first-class signal. Discovery today depends on multiple weak signals stacked together.

Changed

/geo-audit

  • Category 1 (llms.txt Protocol Compliance) gains four discoverability-signal checks:
    • <head> <link rel="alternate" type="text/markdown" title="llms.txt" href="/llms.txt">Medium if missing
    • sitemap.xml <url><loc>/llms.txt</loc></url> entry — Medium if missing
    • robots.txt # LLM index: https://<domain>/llms.txt comment — Low / informational
    • Public directory submission (llmstxt.site, directory.llmstxt.cloud) — Low / manual; never auto-detected, never Critical/High
  • Report template gains "On llms.txt discovery" subsection documenting the weak-signal landscape and 🧪 experimental marker.

/geo-fix

  • Safe-auto bucket gains three new fixes:
    • <link rel="alternate"> in <head> via framework-idiomatic head API (Next.js Metadata API alternates.types, Nuxt useHead, Vue + @unhead/vue, Astro layout, SvelteKit <svelte:head>, Remix meta export, vanilla <head>) — skip if already present
    • /llms.txt entry in sitemap (Next.js app/sitemap.ts push, static <url> block with changefreq=monthly + priority=0.5, @nuxtjs/sitemap, @astrojs/sitemap customPages) — skip if already present
    • # LLM index: https://<domain>/llms.txt comment in robots.txt with auto-derived domain (prompts if unresolvable) — skip if already present
  • New informational bucket prints directory-submission URLs as a manual next step (web forms, never automated).
  • Terminal summary gains "llms.txt discovery signals" block with per-signal status + build-order warning.
  • Build-order rule: when both llms.txt and sitemap are build-time generated, llms.txt generator MUST run first so the sitemap can read llms.txt's mtime. Warn with suggested reordering rather than silent reshuffle.

/geo-llms-txt

  • New Step 7.5 — Wire Discoverability Signals (post-write) offers to add the head link[rel=alternate] hint, sitemap /llms.txt entry, and robots.txt comment after writing llms.txt, each skipped if already present.
  • New Build pipeline — order dependency subsection under Step 6 documents per-framework rules: Next.js Metadata API (no order issue), Astro endpoint vs static, Nuxt prebuild hook, Vite/SvelteKit/Remix/TanStack Start warn-don't-reshuffle.
  • Terminal summary gains discoverability-signal statuses + manual directory-submission URLs.
  • Quality Assurance Checklist extended with post-write wiring + build-order + directory-submission items.
  • llms-full.txt logic unchanged.

Preserved

LLM Knowledge Gap Corrections, examples, and existing QA checklist items across all three skills.

Marketplace

  • ai-geo: 1.0.01.1.0
  • marketplace: 2.4.02.4.1

Full changelog: v2.4.0...v2.4.1

v2.4.0 — ai-seo and ai-geo plugins

17 Apr 21:43

Choose a tag to compare

What's new

Two new plugins for web-content optimization across both traditional search engines and AI answer engines.

🆕 ai-seo v1.0.0

Modern SEO auditing and remediation that catches deprecated patterns LLMs still generate (keywords meta tags, X-UA-Compatible, IE conditionals, float layouts, XHTML doctype, FID optimization) and enforces current best practices (JSON-LD, Core Web Vitals with INP, semantic HTML, framework-idiomatic meta APIs).

Skills:

  • /seo-audit — 9-category weighted audit with timestamped reports in /docs/seo-audit/
  • /seo-fix — tiered safe-auto / content-requiring / refactor remediation with --dry-run
  • /seo-schema — JSON-LD generator and validator for 15+ schema types

Framework support: Next.js (App + Pages Router), Nuxt, TanStack Start, Astro, SvelteKit, Remix, vanilla HTML. Context7 MCP integration with explicit training-data fallback.

🆕 ai-geo v1.0.0

Generative Engine Optimization (GEO) — the AI-engine counterpart to SEO. Optimizes web content for citation in ChatGPT, Perplexity, Claude, Gemini, Google AI Overviews, and Bing Copilot.

Skills:

  • /geo-audit — 10-category weighted audit (llms.txt protocol, AI crawler access, content structure, citation-worthiness, AI-friendly structured data, semantic chunking, content freshness, entity optimization, conversational alignment, technical AI accessibility)
  • /geo-fix — safe-auto / intent-requiring / content-requiring / refactor remediation with separate prompts for training-bot vs citation-bot policy
  • /geo-llms-txt — generate, update, or validate llms.txt and llms-full.txt per the llmstxt.org spec

Key distinctions from SEO:

  • Distinguishes training crawlers (GPTBot, ClaudeBot, Google-Extended, CCBot, Applebot-Extended, Bytespider, Amazonbot, FacebookBot, Omgilibot) from answer/citation crawlers (ChatGPT-User, OAI-SearchBot, PerplexityBot, Perplexity-User, Claude-Web) — never recommends blanket blocking
  • Emerging best practices marked with 🧪 so users apply judgment
  • Cross-references /seo-audit for overlap areas (structured data, semantic HTML, authoritativeness)

Framework-aware llms.txt placement for Next.js, Nuxt, TanStack Start, Astro, SvelteKit, Remix, and vanilla HTML.

Install

/plugin marketplace add charlesjones-dev/claude-code-plugins-dev
/plugin install ai-seo@claude-code-plugins-dev
/plugin install ai-geo@claude-code-plugins-dev

Full changelog

See CHANGELOG.md for the full v2.4.0 entry.

Full diff: v2.3.4...v2.4.0

v2.3.4 — Structured Dynamic Context Loading

06 Apr 17:59

Choose a tag to compare

AI-Knowledge Plugin v1.4.0

The Problem

The "When to Load" column in CLAUDE.md — the only mechanism Claude uses to decide which KB files to read — contained vague free-text like "When working in packages/api/" instead of structured, matchable criteria. Meanwhile, the actual scope patterns and tags were locked inside each KB file's frontmatter, invisible until loaded.

The Fix

Structured "When to Load" format — All KB commands now generate loading criteria with scope globs + topic keywords:

`src/api/**`, `*.controller.ts` — api, rest, middleware

Improved CLAUDE.md preamble — Explicit 4-point matching instructions telling Claude how to use scope patterns, keywords, and the pinned _index.md for routing.

Loading notifications — Claude now tells users when it loads a KB file: 📖 Loading KB: api-conventions.md

New Commands

  • /kb-upgrade — Comprehensive KB upgrade (replaces /kb-obsidian). Audits and fixes: Related body links, global learnings migration, "When to Load" format, preamble, _index.md schema, scope suggestions, frontmatter health, folder organization. Re-runnable and idempotent.

  • /kb-load — Manually load KB articles mid-conversation by filename, topic, or tag filter. Interactive picker when no argument given. Follows related cross-references one level deep.

Changes

  • scope frontmatter field now supports arrays: scope: ["src/api/**", "*.controller.ts"]
  • _index.md All Pages table includes a Scope column
  • /kb-organize now refreshes "When to Load" values during reorganization
  • All 10 table-writing skills updated with structured format instructions

Removed

  • /kb-obsidian — All functionality absorbed into /kb-upgrade

Upgrade Existing KBs

Run /kb-upgrade in any project with an existing knowledge base to bring it up to the latest practices.

v2.3.3 - AI-Knowledge v1.3.0 - Obsidian Compatibility, Query & Organize

05 Apr 18:08

Choose a tag to compare

AI-Knowledge Plugin (v1.3.0) — Obsidian Compatibility, Query & Organize

New Skills

  • /kb-query — Query the knowledge base and synthesize answers from multiple KB files. Optionally file answers back as new KB articles so explorations compound into the knowledge base. Inspired by Karpathy's LLM Wiki pattern.
  • /kb-obsidian — One-time migration to upgrade an existing KB for Obsidian compatibility. Adds ## Related body sections with [[wiki-links]] for graph view, migrates inline global learnings, generates _index.md and _log.md, and offers to reorganize flat files into category folders.
  • /kb-organize — Standalone folder reorganization for existing flat KB structures. Suggests category folders (architecture/, conventions/, testing/, etc.) based on tags and content with preview-first safety.

New Infrastructure Files

  • _index.md — Auto-generated, pinned catalog of all KB articles organized by category with one-line summaries. The LLM reads this first to find relevant pages before drilling into individual articles.
  • _log.md — Append-only chronological record of KB operations (ingests, queries, prunes, etc.) for tracking how the knowledge base evolves.

Changes to All Existing Skills

  • Obsidian-compatible Related Links — All /kb-* commands now maintain a ## Related section at the end of KB files with [[wiki-links]] for Obsidian graph view and link navigation.
  • Global Learnings as dedicated KB file — Stored in docs/kb/_global-learnings.md instead of inline in CLAUDE.md.
  • Subfolder organization — New KB files are preferentially placed in category subfolders.
  • Index & log maintenance — All KB-writing commands conditionally update _index.md and _log.md (backwards-compatible with older KBs).
  • Cross-reference cleanup includes body links/kb-remove and /kb-prune update both frontmatter and body ## Related sections.

Backwards Compatibility

All changes are fully backwards-compatible. Existing flat KB structures continue to work. _index.md and _log.md updates are conditional (only if the files exist). Run /kb-obsidian to upgrade an existing KB to the latest structure.

Full Changelog: v2.3.2...v2.3.3

v2.3.2 — /kb-harvest and /kb-discover skills

03 Apr 21:56

Choose a tag to compare

AI-Knowledge Plugin (v1.2.0)

New Skills

/kb-harvest — Harvest knowledge from external sources

Ingest documentation from sibling git repos, local directories, individual files, or web URLs into your centralized knowledge base.

  • Scan sibling repos: C:/Source/*/docs/**/*.md
  • Fetch and distill web pages (wikis, Confluence, internal docs)
  • Auto-tag with module:{name} based on source directory structure
  • Track provenance via source frontmatter field for future re-harvesting
  • Discovery report with batch selection (pre-checked/unchecked sources)
  • Per-article content preview and approval before writing
  • Detects topic overlap with existing KB files and proposes appending

/kb-discover — Extract implicit knowledge from source code

Analyze source code to discover architecture patterns, naming conventions, API contracts, and unwritten rules — then distill them into KB articles.

  • Targeted analysis (specific directories), focus areas (topics), or full codebase scan
  • Auto-detects tech stack and prioritizes analysis targets
  • Extracts 8 knowledge categories: architecture, naming, API contracts, data models, error handling, config, testing, cross-cutting conventions
  • Groups findings into coherent KB articles (not raw category dumps)
  • Per-article draft preview and approval before writing
  • Evidence-based only — requires observed repetition across files
  • Right-sizes articles to 50–150 lines for context-friendly loading
  • Tracks provenance via discovered-from frontmatter field

Full Changelog: v2.3.1...v2.3.2

v2.3.1

03 Apr 05:15

Choose a tag to compare

AI-Knowledge Plugin (v1.1.0)

Added

  • /kb-ingest - Ingest specific markdown files from anywhere in the project into the KB, as a targeted alternative to /kb-absorb
    • Accepts one or more file paths (e.g., /kb-ingest docs/api-guide.md)
    • Distills content into concise, actionable KB format with proper frontmatter
    • Detects overlap with existing KB files and proposes appending instead of creating duplicates
    • Registers new KB entries in the CLAUDE.md Knowledge Base table
    • Preserves source files (never modifies or deletes originals)

Fixed

  • Fixed pinned file loading instruction in kb-init - The CLAUDE.md template previously told Claude to check frontmatter of every KB file to find pinned entries, defeating the purpose of the dynamic loading table. Now correctly directs Claude to use the "When to Load" column ("Always (pinned)") as the source of truth

v2.3.0 - AI Knowledge Plugin

03 Apr 01:00

Choose a tag to compare

New Plugin: AI Knowledge (v1.0.0)

Knowledge base management for Claude Code — capture conversation learnings, maintain topic-specific KB files, and dynamically reference institutional knowledge in CLAUDE.md.

10 New Skills

Command Description
/kb-init Initialize the KB section in CLAUDE.md and create docs/kb/ directory (idempotent)
/kb-learn Analyze conversation to extract learnings into KB files
/kb-add Quickly add a learning or rule with interactive location picker
/kb-import Register existing KB files in CLAUDE.md (adds missing frontmatter)
/kb-absorb Migrate existing CLAUDE.md sections and docs/ content into the KB
/kb-remove Remove a KB file and its CLAUDE.md reference
/kb-list List all registered KB files with status, tags, dates, and cross-references
/kb-search Search across KB files by keyword, topic, or tag (tag:security)
/kb-prune Interactive cleanup: stale refs, duplicates, merges, frontmatter health
/kb-auto Toggle automatic knowledge capture at end of conversations

Key Features

  • YAML Frontmatter on all KB files with tags, related, created, last-updated, pinned, and scope fields
  • Cross-references between KB files via related: [[other-file]] for linked knowledge loading
  • Pinned KB files (pinned: true) are always loaded regardless of work context
  • Tag-based search for cross-cutting discovery across topics
  • Security-aware — never stores secrets, API keys, or credentials in KB files
  • Token-conscious — concise entries optimized for minimal context window usage

Install

/plugin marketplace add charlesjones-dev/claude-code-plugins-dev
/plugin install ai-knowledge@claude-code-plugins-dev

v2.2.2

31 Mar 19:24

Choose a tag to compare

Fixed

AI-ADO Plugin (v1.3.1)

  • Fixed skill name parsing - Changed ado-work-items skill name from Azure DevOps Work Items (with spaces) to ado-work-items so Claude Code can parse it correctly (fixes #8)

v2.2.1

31 Mar 19:20

Choose a tag to compare

Fixed

AI-Statusline Plugin (v1.2.3)

  • Fixed rate limit percentage display - Rate limit percentages now round to 2 decimal places instead of showing long floating-point numbers (e.g., 5h:12.35% instead of 5h:12.345678%)
    • Bash: uses jq (. * 100 | round) / 100 for rounding, extracts integer part for color threshold comparisons
    • PowerShell: uses [math]::Round($val, 2) instead of [int] cast which truncated to whole numbers

v2.2.0 - Supply Chain Security Hardening

31 Mar 14:51

Choose a tag to compare

What's New

AI-Security Plugin (v1.5.0)

New skill: /security-supply-chain - Harden your project against npm supply chain attacks.

  • Detects package manager (pnpm, npm, Yarn, Bun) and validates compatibility
  • Configures pnpm's minimum-release-age in .npmrc to quarantine newly published packages
  • Interactive timeframe selection with previews (24 hours, 3 days, 7 days, or custom)
  • Scans CI/CD configs for frozen lockfile usage and offers to add frozen-lockfile=true
  • Checks pnpm version and offers upgrade if below 10.16.0 minimum
  • Recommends pnpm migration for npm/Yarn/Bun users who lack quarantine protection
  • Creates two defense layers: time-based quarantine (local dev) + frozen lockfile (CI/CD)

Background

Motivated by the axios@1.14.1 / axios@0.30.4 supply chain compromise on March 31, 2026, where malicious versions injected a remote access trojan via the plain-crypto-js dependency.

Learn more: Stop Supply Chain Attacks: Why Your Build Pipeline Should Use Locked Dependencies

Full Changelog: v2.1.0...v2.2.0