smithery.ai

llms-txt-manager

Comprehensive system for managing llms.txt and my-blog.json files across the project. Handles creation, updating, and synchronization of AI-readable content catalogs. Automatically detects when working with llms.txt files, my-blog.json files, or updating blog content. Includes utilities for fetching latest content from query-index.json and organizing by last modified dates. Keywords include llms.txt, my-blog.json, blog catalog, content index, query-index.json, AI content discovery, update llms,…

First seen Apr 29, 2026

Installation

$ npx skills add https://smithery.ai

Summary

  • Comprehensive system for managing llms.txt and my-blog.json files across the project.
  • Handles creation, updating, and synchronization of AI-readable content catalogs.
  • Automatically detects when working with llms.txt files, my-blog.json files, or updating blog content.
  • Includes utilities for fetching latest content from query-index.json and organizing by last modified dates.
  • Keywords include llms.txt, my-blog.json, blog catalog, content index, query-index.json, AI content discovery, update llms, update blog, content synchronization.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 10,951 B
  • docs SUMMARY.md 561 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

llms.txt Manager Skill

Purpose

Manage llms.txt and my-blog.json files across the project, ensuring AI systems have comprehensive, up-to-date content catalogs. Automates synchronization between blog content (query-index.json) and llms.txt files.

When to Use

This skill activates when:

  • Creating or editing llms.txt files
  • Creating or editing my-blog.json files
  • User mentions updating blog catalogs
  • User wants to synchronize content indexes
  • Working with query-index.json data
  • Creating folder-specific content indexes

Core Concepts

File Structure

llms.txt - AI-readable content catalog

  • Location: Root or folder-specific (e.g., blogs/ddt/integrations/llms.txt)
  • Purpose: Comprehensive list of content for AI systems
  • Format: Markdown with metadata and categorized links
  • Source: URLs from my-blog.json, text/descriptions from existing llms.txt

my-blog.json - Structured blog data

  • Location: Same directory as llms.txt
  • Purpose: Machine-readable catalog of blog posts
  • Format: JSON with categories, posts, metadata
  • Source: query-index.json filtered by folder context

query-index.json - Master content index

  • Location: https://allabout.network/query-index.json
  • Purpose: Single source of truth for all site content
  • Contains: All pages with URLs, titles, descriptions, lastModified dates
  • Updated: Automatically by the site

Folder Context

When llms.txt is in a subfolder (e.g., blogs/ddt/integrations/):

  • The final folder name indicates intent/scope
  • my-blog.json should exist in same folder
  • Content should be filtered to relevant posts only
  • Example: /integrations/ folder focuses on EDS integration tutorials

Update Logic

lastModified Date Comparison:

  1. Check lastModified date in llms.txt metadata
  2. Fetch query-index.json
  3. Filter entries with lastModified > llms.txt date
  4. Add only new/updated content

File Templates

llms.txt Template

# [Project/Section Title]

[Brief description of what this content covers]

**Last updated:** [Month Year]
**Authors:** [Author Names]

## [Category Name]

### [Subcategory Name]

- [Title](URL): Description
- [Title](URL): Description

## Version Information

**Version:** [version] (Updated: [date])
**Comprehensive catalog:** [count] posts across [n] categories
**Categories:** [List with counts]

my-blog.json Template

{
  "metadata": {
    "last-updated": "YYYY-MM-DD",
    "scope": "folder-name-or-site-wide"
  },
  "mostVisited": [
    {
      "title": "Popular Post Title",
      "url": "/path/to/post",
      "description": "Post description"
    }
  ],
  "categoryMap": [
    {
      "id": "category-id",
      "name": "Display Name",
      "count": 0,
      "description": "Category description"
    }
  ],
  "categories": [
    {
      "id": "category-id",
      "name": "Display Name",
      "posts": [
        {
          "title": "Post Title",
          "url": "/path/to/post",
          "description": "Post description",
          "lastModified": "YYYY-MM-DD"
        }
      ]
    }
  ]
}

IMPORTANT: Do NOT include a latestPosts array in my-blog.json files. The view-myblog block automatically generates it from the 3 most recent posts. Including it manually requires maintenance and defeats the purpose of auto-generation.

Key Concepts

Workflows

Creating New llms.txt

Automatic Creation: The sync script now automatically creates llms.txt files if they don't exist:

  1. Detects Missing Files

- Finds all my-blog.json files - Checks for paired llms.txt in same directory - Creates missing files automatically

  1. Builds Complete Structure

- Creates header with title, description, authors - Builds organized sections from my-blog.json categories - Uses folder name for context (e.g., "ai" → "Ai Resources")

  1. Populates Content

- Fetches from query-index.json - Filters by folder context if applicable - Formats posts with titles, URLs, descriptions - Updates metadata to current date

Manual Creation: If you need to manually create one:

  1. Determine Scope

- Root llms.txt: Site-wide catalog - Folder llms.txt: Section-specific (use folder name for context)

  1. Check for my-blog.json

- Look in same directory as llms.txt - If missing, create one first - Filter query-index.json by folder path if folder-specific

  1. Structure Content

- Use folder name to determine focus (e.g., /integrations/ = EDS integrations) - Organize with subsections for better scannability - Include all relevant posts from my-blog.json - Add descriptive text for context

  1. Add Metadata

- Version number - Last updated date - Category counts - Access guidelines (optional)

Updating Existing llms.txt

  1. Read Current File

- Extract last-updated date from metadata - Note current structure and organization

  1. Fetch New Content

- Load query-index.json - Filter by lastModified > current date - Filter by folder context if applicable

  1. Merge New Posts

- Add new posts to organized sections - Update version number and date - Maintain text patterns and formatting

  1. Update my-blog.json

- Add new posts to appropriate categories - Update metadata.last-updated - Increment category counts

Creating my-blog.json from query-index.json

Automatic Creation: The sync script now automatically creates my-blog.json files if they don't exist:

  1. Detects Missing Files

- Finds all llms.txt files - Checks for paired my-blog.json in same directory - Creates missing files automatically

  1. Initializes Structure

- Creates empty categoryMap with all 6 standard categories - Sets metadata with scope (folder name or 'site-wide') - Sets last-updated to 2020-01-01 (extreme past, will populate on next update)

  1. Populates Content

- Fetches from query-index.json - Filters by folder context if applicable - Categorizes posts automatically - Updates metadata to current date

Manual Creation: If you need to manually create one:

  1. Fetch Data

``bash curl https://allabout.network/query-index.json ``

  1. Filter by Context

- Root my-blog.json: All content - Folder my-blog.json: Filter by path prefix

  1. Categorize Posts

- Group by topic/category - Count posts per category - Create categoryMap

  1. Structure Output

- metadata section with date and scope - categoryMap with counts - categories with full post arrays

Command Usage

/update-llms

Finds all llms.txt files in the project and updates them with new content:

/update-llms

Or use the script directly:

node scripts/sync-blog-content.js --target=llms

Process:

  1. Find all existing llms.txt files: **/*llms.txt
  2. Find all my-blog.json files without paired llms.txt
  3. For each file (existing or new):

- If new: Create complete structure from my-blog.json - If existing: Read last-updated date from metadata - Determine folder context (site-wide or folder-specific) - Fetch query-index.json from production - Filter by context (folder path matching) - Filter new posts (lastModified > last-updated) - Add new posts to organized sections (if any) - Update version date and metadata

/update-my-blog

Finds all my-blog.json files and updates them with latest content:

/update-my-blog

Process:

  1. Find all my-blog.json files: **/*my-blog.json
  2. For each file:

- Read current content and last-updated - Determine folder context - Fetch query-index.json - Filter by context and date - Update categories and counts - Update metadata

Best Practices

Content Organization

✅ Use subsections - Break large categories into logical groups ✅ Consistent formatting - Use same pattern throughout ✅ Rich descriptions - Include full descriptions from source ✅ Clear hierarchy - Main section → Subsection → Posts ✅ Cross-references - Link between related llms.txt files

URL Management

✅ Source of truth: my-blog.json for URLs ✅ Text source: Existing llms.txt for descriptions/formatting ✅ New content: query-index.json for latest posts ✅ Relative URLs: Use relative paths in my-blog.json ✅ Absolute URLs: Use full URLs in llms.txt

Date Handling

✅ ISO format: YYYY-MM-DD for dates ✅ Comparison: Filter by lastModified > last-updated ✅ Display format: "Month Year" in llms.txt header ✅ Update always: Change date when content changes

Folder Context

✅ Use folder name: Final path segment indicates scope ✅ Filter appropriately: Only relevant content for folder llms.txt ✅ Paired files: Keep my-blog.json with llms.txt ✅ Independent updates: Each folder maintains own files

Examples

Example 1: Root llms.txt

Location: /llms.txt Scope: Entire site my-blog.json: /my-blog.json (all content) Categories: All site categories

Example 2: Integrations llms.txt

Location: /blogs/ddt/integrations/llms.txt Scope: EDS integration tutorials only my-blog.json: /blogs/ddt/integrations/my-blog.json Categories: Filtered to integration-related posts

Example 3: AI Topics llms.txt

Location: /blogs/ddt/ai/llms.txt Scope: AI/LLM content only my-blog.json: /blogs/ddt/ai/my-blog.json Categories: Filtered to AI-related posts

Troubleshooting

my-blog.json Missing

Solution: Create it from query-index.json filtered by folder context

Dates Not Comparing

Solution: Ensure ISO format (YYYY-MM-DD) and proper parsing

Wrong Content Scope

Solution: Check folder context and filter query-index.json properly

Duplicate Entries Within Categories

Solution: Deduplicate by URL before adding to categories

Related Files

  • .claude/commands/update-llms.md - Slash command for updating llms.txt
  • .claude/commands/update-my-blog.md - Slash command for updating my-blog.json
  • scripts/sync-blog-content.js - Utility script for bulk updates (no dependencies)

Version

Skill Version: 1.0 Last Updated: November 2025 Line Count: < 500 ✅