{
  "version": "2026-08-06",
  "description": "Cross-project technical pattern registry for retrieval-augmented generalization",
  "patterns": [
    {
      "id": "ollama-structured-output-fallback",
      "name": "Ollama Structured Output Fallback",
      "file": "patterns/ollama-structured-output-fallback.md",
      "tags": ["ollama", "json", "structured-output", "local-llm", "n8n", "safety-net", "regex"],
      "affected_projects": [
        "cyber-tips-newsletter",
        "proxmox-snapshot-summarizer",
        "ai-video-generation",
        "forex-trading-analysis"
      ],
      "related_patterns": [
        "json-escaping-downstream-api",
        "llm-as-parser-fallback"
      ]
    },
    {
      "id": "json-escaping-downstream-api",
      "name": "JSON Escaping for Downstream APIs",
      "file": "patterns/json-escaping-downstream-api.md",
      "tags": ["json", "escaping", "llm-output", "api-payload", "n8n", "linkedin", "video-generation"],
      "affected_projects": [
        "linkedin-automation",
        "ai-video-generation",
        "n8n-general"
      ],
      "related_patterns": [
        "ollama-structured-output-fallback",
        "llm-as-parser-fallback"
      ]
    },
    {
      "id": "api-version-deprecation",
      "name": "API Version Deprecation",
      "file": "patterns/api-version-deprecation.md",
      "tags": ["api", "versioning", "deprecation", "integration", "breaking-change", "linkedin"],
      "affected_projects": [
        "linkedin-automation"
      ],
      "related_patterns": [
        "credential-rotation-recovery"
      ]
    },
    {
      "id": "pty-device-code-auth",
      "name": "PTY-Required Device Code Authentication",
      "file": "patterns/pty-device-code-auth.md",
      "tags": ["powershell", "pty", "device-code", "authentication", "microsoft-graph", "intune-inspector", "pexpect"],
      "affected_projects": [
        "intune-inspector",
        "m365-admin-toolkit"
      ],
      "related_patterns": []
    },
    {
      "id": "queue-poll-async-job",
      "name": "Queue-Poll Async Job Pattern",
      "file": "patterns/queue-poll-async-job.md",
      "tags": ["async", "queue", "poll", "long-running", "comfyui", "ollama", "n8n"],
      "affected_projects": [
        "ai-video-generation",
        "n8n-general"
      ],
      "related_patterns": [
        "transient-failure-retry"
      ]
    },
    {
      "id": "llm-as-parser-fallback",
      "name": "LLM-as-Parser with Structured Fallback",
      "file": "patterns/llm-as-parser-fallback.md",
      "tags": ["llm", "parsing", "structured-output", "fallback", "validation", "regex"],
      "affected_projects": [
        "cyber-tips-newsletter",
        "proxmox-snapshot-summarizer",
        "email-inbox-triage",
        "monthly-it-newsletter"
      ],
      "related_patterns": [
        "ollama-structured-output-fallback",
        "json-escaping-downstream-api"
      ]
    },
    {
      "id": "credential-rotation-recovery",
      "name": "Credential Rotation and External Service Breakage",
      "file": "patterns/credential-rotation-recovery.md",
      "tags": ["credentials", "vault", "rotation", "token", "api-key", "secrets", "approle"],
      "affected_projects": [
        "n8n-general",
        "nocodb",
        "vault"
      ],
      "related_patterns": [
        "api-version-deprecation"
      ]
    },
    {
      "id": "reverse-proxy-container-binding",
      "name": "Reverse Proxy + Container Port Binding",
      "file": "patterns/reverse-proxy-container-binding.md",
      "tags": ["reverse-proxy", "nginx-proxy-manager", "docker", "container", "port-binding", "nextcloud"],
      "affected_projects": [
        "nextcloud-aio"
      ],
      "related_patterns": []
    },
    {
      "id": "human-approval-risky-publish",
      "name": "Human Approval Gate for Risky Publish Operations",
      "file": "patterns/human-approval-risky-publish.md",
      "tags": ["approval", "human-in-the-loop", "publish", "email", "linkedin", "client-facing", "risk"],
      "affected_projects": [
        "linkedin-automation",
        "email-inbox-triage",
        "cyber-tips-newsletter"
      ],
      "related_patterns": []
    },
    {
      "id": "transient-failure-retry",
      "name": "Transient Failure Retry and Degradation",
      "file": "patterns/transient-failure-retry.md",
      "tags": ["retry", "backoff", "transient", "ollama", "network", "rate-limit", "queue"],
      "affected_projects": [
        "n8n-general",
        "ollama-general"
      ],
      "related_patterns": [
        "queue-poll-async-job"
      ]
    }
  ]
}
