{
  "manifest_version": "1.1.0",
  "service_name": "designpattern.fyi",
  "service_type": "software_design_pattern_catalog",
  "description": "A curated catalog of 758+ software design patterns, architectural strategies, and best practices for building scalable, resilient, and maintainable systems. Optimized for AI agent integration with machine-readable data feeds, OpenAPI specifications, and MCP server with enhanced tool descriptions and capability annotations.",
  "homepage": "https://www.designpattern.fyi/",
  "developer_portal": "https://www.designpattern.fyi/developers/",
  "last_updated": "2025-08-22",
  "agent_compatibility": {
    "claude": true,
    "cursor": true,
    "github_copilot": true,
    "gemini": true,
    "custom_agents": true
  },
  "capabilities": {
    "pattern_search": true,
    "category_browsing": true,
    "code_examples": true,
    "architectural_guidance": true,
    "ai_agent_patterns": true,
    "security_guidance": true,
    "api_integration": true
  },
  "endpoints": {
    "api": {
      "base_url": "https://www.designpattern.fyi/api",
      "version": "v1",
      "openapi_spec": "https://www.designpattern.fyi/api/openapi.json",
      "endpoints": [
        {
          "name": "Pattern Catalog",
          "path": "/api/v1/patterns.json",
          "method": "GET",
          "description": "Complete catalog of 758+ software design patterns",
          "content_type": "application/json",
          "rate_limit": "1000/hour",
          "example_usage": "curl https://www.designpattern.fyi/api/v1/patterns.json"
        },
        {
          "name": "Categories",
          "path": "/api/v1/categories.json",
          "method": "GET",
          "description": "Category taxonomies and subcategory metadata",
          "content_type": "application/json",
          "rate_limit": "1000/hour",
          "example_usage": "curl https://www.designpattern.fyi/api/v1/categories.json"
        },
        {
          "name": "Agent Skills",
          "path": "/api/v1/skills.json",
          "method": "GET",
          "description": "AI agent skill specifications for OKF and ARD standards",
          "content_type": "application/json",
          "rate_limit": "1000/hour",
          "example_usage": "curl https://www.designpattern.fyi/api/v1/skills.json"
        },
        {
          "name": "MCP Schema",
          "path": "/api/v1/mcp-schema.json",
          "method": "GET",
          "description": "Model Context Protocol tool schema for Claude and Cursor",
          "content_type": "application/json",
          "rate_limit": "1000/hour",
          "example_usage": "curl https://www.designpattern.fyi/api/v1/mcp-schema.json"
        },
        {
          "name": "Error Schema",
          "path": "/api/v1/error.json",
          "method": "GET",
          "description": "Canonical JSON error response schema",
          "content_type": "application/json",
          "rate_limit": "1000/hour",
          "example_usage": "curl https://www.designpattern.fyi/api/v1/error.json"
        }
      ]
    },
    "machine_readable": [
      {
        "name": "LLM Guidance Index",
        "url": "https://www.designpattern.fyi/llms.txt",
        "type": "text/plain",
        "description": "Machine-readable index for LLM context injection and agent guidance",
        "standard": "llms.txt"
      },
      {
        "name": "Agent Instructions",
        "url": "https://www.designpattern.fyi/agent-instructions.txt",
        "type": "text/plain",
        "description": "When-to-use guidance and invocation instructions for AI agents",
        "standard": "RFC 7763 / acceptmarkdown.com"
      },
      {
        "name": "Well-Known Agent Instructions",
        "url": "https://www.designpattern.fyi/.well-known/agent-instructions.txt",
        "type": "text/plain",
        "description": "Standardized agent instructions following RFC 7763 and acceptmarkdown.com",
        "standard": "RFC 7763 / well-known"
      },
      {
        "name": "Agent Guidelines",
        "url": "https://www.designpattern.fyi/AGENTS.md",
        "type": "text/markdown",
        "description": "Markdown agent guidelines for AI coding assistants",
        "standard": "markdown"
      },
      {
        "name": "Full LLM Context",
        "url": "https://www.designpattern.fyi/llms-full.txt",
        "type": "text/plain",
        "description": "Extended catalog context for deep reasoning and RAG pipelines",
        "standard": "llms.txt"
      }
    ],
    "discovery": [
      {
        "name": "XML Sitemap",
        "url": "https://www.designpattern.fyi/sitemap.xml",
        "type": "application/xml",
        "description": "XML sitemap indexing all pattern and architecture URLs"
      },
      {
        "name": "API Sitemap",
        "url": "https://www.designpattern.fyi/api-sitemap.xml",
        "type": "application/xml",
        "description": "XML sitemap for API endpoints and machine-readable resources"
      },
      {
        "name": "Robots.txt",
        "url": "https://www.designpattern.fyi/robots.txt",
        "type": "text/plain",
        "description": "Crawler directives and sitemap locations"
      }
    ]
  },
  "protocols": {
    "http": {
      "markdown_content_negotiation": true,
      "cors_enabled": true,
      "rate_limit_headers": true,
      "structured_error_responses": true
    },
    "mcp": {
      "supported": true,
      "schema_url": "https://www.designpattern.fyi/api/v1/mcp-schema.json",
      "tools": [
        "search_patterns",
        "get_pattern",
        "list_categories",
        "get_agent_instructions"
      ],
      "capability_annotations": true,
      "enhanced_descriptions": true,
      "plan_ready_schemas": true
    },
    "openapi": {
      "version": "3.1.0",
      "spec_url": "https://www.designpattern.fyi/api/openapi.json",
      "client_generation": true
    }
  },
  "content_categories": [
    {
      "id": "agentic_ai",
      "name": "Agentic AI",
      "count": 329,
      "description": "Patterns for autonomous AI agents, cognitive loops, memory architectures, and multi-agent systems"
    },
    {
      "id": "cloud",
      "name": "Cloud Architecture",
      "count": 79,
      "description": "Cloud-native patterns for AWS, Azure, GCP, and Kubernetes"
    },
    {
      "id": "microservices",
      "name": "Microservices",
      "count": 35,
      "description": "Distributed systems patterns including Circuit Breaker, Saga, and API Gateway"
    },
    {
      "id": "solid",
      "name": "SOLID Principles",
      "count": 5,
      "description": "Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion"
    },
    {
      "id": "owasp_agentic_ai",
      "name": "OWASP Agentic AI",
      "count": 10,
      "description": "Security patterns for defending against AI agent-specific threats"
    },
    {
      "id": "owasp_llm",
      "name": "OWASP LLM",
      "count": 10,
      "description": "Security patterns for LLM vulnerabilities and defenses"
    },
    {
      "id": "algorithms",
      "name": "Algorithms",
      "count": 45,
      "description": "Algorithmic patterns with complexity analysis and use cases"
    },
    {
      "id": "data_structures",
      "name": "Data Structures",
      "count": 28,
      "description": "Data structure patterns and their trade-offs"
    }
  ],
  "integration_examples": {
    "python": {
      "description": "Python integration example using requests library",
      "code": "import requests\n\n# Fetch pattern catalog\nresponse = requests.get('https://www.designpattern.fyi/api/v1/patterns.json')\npatterns = response.json()\n\n# Search for circuit breaker pattern\ncircuit_breaker = patterns['patterns'].get('circuit_breaker')\nprint(circuit_breaker['name'], circuit_breaker['description'])"
    },
    "javascript": {
      "description": "JavaScript integration example using fetch API",
      "code": "async function getPattern(patternId) {\n  const response = await fetch('https://www.designpattern.fyi/api/v1/patterns.json');\n  const data = await response.json();\n  return data.patterns[patternId];\n}\n\nconst circuitBreaker = await getPattern('circuit_breaker');\nconsole.log(circuitBreaker.name, circuitBreaker.description);"
    },
    "curl": {
      "description": "cURL example for API testing",
      "code": "# Get pattern catalog\ncurl https://www.designpattern.fyi/api/v1/patterns.json\n\n# Get categories\ncurl https://www.designpattern.fyi/api/v1/categories.json\n\n# Get OpenAPI spec\ncurl https://www.designpattern.fyi/api/openapi.json"
    }
  },
  "rate_limiting": {
    "enabled": true,
    "default_limit": 1000,
    "window": "hour",
    "headers": {
      "limit": "RateLimit-Limit",
      "remaining": "RateLimit-Remaining",
      "reset": "RateLimit-Reset",
      "window": "RateLimit-Window"
    }
  },
  "support": {
    "documentation": "https://www.designpattern.fyi/developers/",
    "github": "https://github.com/amitpuri",
    "contact": "https://www.designpattern.fyi/developers/"
  },
  "metadata": {
    "total_patterns": 758,
    "total_categories": 13,
    "api_version": "1.0.0",
    "manifest_version": "1.1.0",
    "content_updated": "2025-08-22",
    "agent_instructions_version": "1.1.0",
    "mcp_schema_version": "1.1.0",
    "enhancements": [
      "MCP tool descriptions enhanced with semantic guidance",
      "MCP capability annotations added (read-only, idempotent)",
      "Parameter schemas improved with validation constraints",
      "Agent instructions expanded with calling patterns",
      "llms.txt and llms-full.txt updated with current statistics",
      "Query best practices documented for agents"
    ]
  }
}