{
  "schemaVersion": 1,
  "updated": "2026-08-19",
  "guides": [
    {
      "slug": "prevent-ai-agent-duplicate-actions",
      "url": "/guides/prevent-ai-agent-duplicate-actions/",
      "type": "Practical guide",
      "family": "Agent action safety",
      "title": "How to Prevent an AI Agent From Performing the Same Action Twice",
      "description": "A practical idempotency pattern for preventing duplicate AI-agent refunds, orders, messages, and other consequential actions across retries and parallel runs.",
      "product": "LockMyAction",
      "productUrl": "/lock-my-action/"
    },
    {
      "slug": "redact-pii-before-sending-to-llm",
      "url": "/guides/redact-pii-before-sending-to-llm/",
      "type": "Practical guide",
      "family": "Content safety",
      "title": "How to Redact PII Before Sending Text to an LLM",
      "description": "A deterministic preprocessing workflow for removing common personal identifiers and credentials before text is sent to an LLM or external agent service.",
      "product": "RedactMyText",
      "productUrl": "/redact-sensitive-text/"
    },
    {
      "slug": "detect-api-keys-before-llm",
      "url": "/guides/detect-api-keys-before-llm/",
      "type": "Practical guide",
      "family": "Content safety",
      "title": "How to Detect API Keys Before Text Reaches an LLM",
      "description": "Detect likely API keys, JWTs, private keys, and cloud credentials before logs, code, tickets, or retrieved text are sent to an LLM.",
      "product": "DetectMySecrets",
      "productUrl": "/detect-secrets/"
    },
    {
      "slug": "sanitize-untrusted-context-for-ai-agent",
      "url": "/guides/sanitize-untrusted-context-for-ai-agent/",
      "type": "Practical guide",
      "family": "Content safety",
      "title": "How to Sanitize Untrusted Context Before an AI Agent Reads It",
      "description": "Normalize hidden Unicode, detect secrets, and surface structural risk signals before email, documents, webpages, or retrieval results enter an AI-agent context.",
      "product": "SanitizeMyContext",
      "productUrl": "/sanitize-agent-context/"
    },
    {
      "slug": "add-human-approval-to-ai-agent",
      "url": "/guides/add-human-approval-to-ai-agent/",
      "type": "Practical guide",
      "family": "Human authority",
      "title": "How to Add Human Approval Before an AI Agent Takes Action",
      "description": "A practical human-in-the-loop pattern for blocking refunds, emails, purchases, deployments, and other consequential AI-agent actions until an explicit decision.",
      "product": "ApproveMyAction",
      "productUrl": "/approve-my-action/"
    },
    {
      "slug": "compare-mcp-server-quality",
      "url": "/guides/compare-mcp-server-quality/",
      "type": "Practical guide",
      "family": "Trust and quality",
      "title": "How Can an AI Agent Compare MCP Server Quality?",
      "description": "Compare MCP servers using task-specific, version-specific evidence, independent-source counts, recency, latency, reliability, and visible uncertainty.",
      "product": "TrustMyChoice",
      "productUrl": "/trust-my-choice/"
    },
    {
      "slug": "lockmyaction-vs-database-idempotency",
      "url": "/guides/lockmyaction-vs-database-idempotency/",
      "type": "Decision comparison",
      "family": "Agent action safety",
      "title": "LockMyAction vs. Database Idempotency: Which Should an Agent Use?",
      "description": "Compare LockMyAction with database unique constraints, provider idempotency keys, and in-process locks for retry-safe AI-agent actions.",
      "product": "LockMyAction",
      "productUrl": "/lock-my-action/"
    },
    {
      "slug": "approvemyaction-vs-building-approval-workflow",
      "url": "/guides/approvemyaction-vs-building-approval-workflow/",
      "type": "Decision comparison",
      "family": "Human authority",
      "title": "ApproveMyAction vs. Building Your Own Agent Approval Workflow",
      "description": "Compare a hosted human-approval control with custom databases, chat approvals, and workflow-platform steps for consequential AI-agent actions.",
      "product": "ApproveMyAction",
      "productUrl": "/approve-my-action/"
    },
    {
      "slug": "webhook-polling-vs-temporary-inbox",
      "url": "/guides/webhook-polling-vs-temporary-inbox/",
      "type": "Decision comparison",
      "family": "Asynchronous agents",
      "title": "Webhook Polling vs. a Temporary Inbox for AI Agents",
      "description": "Compare direct webhooks, polling, queues, and temporary webhook inboxes for agents that pause while waiting for an outside event.",
      "product": "CatchMySignal",
      "productUrl": "/catch-my-signal/"
    },
    {
      "slug": "mcp-quality-evidence-vs-star-ratings",
      "url": "/guides/mcp-quality-evidence-vs-star-ratings/",
      "type": "Decision comparison",
      "family": "Trust and quality",
      "title": "MCP Quality Evidence vs. Star Ratings: What Should Agents Trust?",
      "description": "Why AI-agent service selection needs task-specific evidence, version identity, independent sources, recency, and uncertainty rather than a universal star score.",
      "product": "TrustMyChoice",
      "productUrl": "/trust-my-choice/"
    }
  ]
}
