<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged rules</title>
<link>https://coderlegion.com/tag/rules</link>
<description>Powered by Question2Answer</description>
<item>
<title>Understanding CopilotKit Agent Patterns: A Comprehensive Guide</title>
<link>https://coderlegion.com/13112/understanding-copilotkit-agent-patterns-a-comprehensive-guide</link>
<description>
&lt;h2&gt;What is the CopilotKit Agent Patterns Skill?&lt;/h2&gt;
&lt;p&gt;The CopilotKit Agent Patterns skill is a comprehensive framework designed to help developers build AI agents that seamlessly integrate with CopilotKit&amp;rsquo;s ecosystem. This skill provides 20 well-defined rules across five critical categories, offering guidance on everything from agent architecture to generative UI emission.&lt;/p&gt;
&lt;h2&gt;Why This Skill Matters&lt;/h2&gt;
&lt;p&gt;When building AI agents that need to interact with CopilotKit&amp;rsquo;s runtime and frontend components, developers face numerous challenges around state management, event streaming, and user interaction patterns. This skill addresses these challenges by providing battle-tested patterns that ensure reliable agent behavior and smooth integration with CopilotKit&amp;rsquo;s AG-UI protocol.&lt;/p&gt;
&lt;h2&gt;Key Components of the Skill&lt;/h2&gt;
&lt;h3&gt;Five Priority Categories&lt;/h3&gt;
&lt;p&gt;The skill organizes its 20 rules into five priority categories, each with a specific prefix to help developers quickly identify the type of guidance they need:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Agent Architecture (CRITICAL)&lt;/strong&gt; &amp;ndash; Rules prefixed with &lt;code&gt;architecture-&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AG-UI Protocol (HIGH)&lt;/strong&gt; &amp;ndash; Rules prefixed with &lt;code&gt;agui-&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;State Management (HIGH)&lt;/strong&gt; &amp;ndash; Rules prefixed with &lt;code&gt;state-&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Human-in-the-Loop (MEDIUM)&lt;/strong&gt; &amp;ndash; Rules prefixed with &lt;code&gt;hitl-&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generative UI Emission (MEDIUM)&lt;/strong&gt; &amp;ndash; Rules prefixed with &lt;code&gt;genui-&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;When to Apply These Patterns&lt;/h3&gt;
&lt;p&gt;The skill is particularly valuable when you&amp;rsquo;re:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Designing agent architecture for CopilotKit integration&lt;/li&gt;
&lt;li&gt;Implementing AG-UI protocol event streaming&lt;/li&gt;
&lt;li&gt;Managing state synchronization between agent and frontend&lt;/li&gt;
&lt;li&gt;Adding human-in-the-loop checkpoints to agent workflows&lt;/li&gt;
&lt;li&gt;Emitting tool calls that render generative UI in the frontend&lt;/li&gt;

Architecture Patterns
The skill emphasizes using CopilotKit&amp;rsquo;s BuiltInAgent for simple agents, proper model resolution through provider/model strings, and setting appropriate maxSteps to prevent infinite loops. It also covers configuring MCP (Model Context Protocol) endpoints for external tool access.
AG-UI Protocol Implementation
For developers working with CopilotKit&amp;rsquo;s AG-UI protocol, the skill provides crucial guidance on event ordering, text streaming, tool call lifecycles, state snapshots, and error handling. These patterns ensure that agents communicate effectively with the frontend.
State Management Best Practices
State management is critical for agent reliability. The skill covers snapshot frequency, payload minimization, conflict resolution, and thread isolation to help developers maintain consistent state across their applications.
Human-in-the-Loop Patterns
For agents that require human approval or intervention, the skill provides patterns for approval gates, timeout fallbacks, context provision, and state preservation when resuming after user input.
Generative UI Emission
The skill also covers how agents can emit tool calls that map to frontend rendering, stream tool arguments incrementally for real-time UI updates, and use text messages for non-tool status updates.
How to Use This Skill
Each rule is documented in detail with code examples in individual files. For a complete guide with all rules expanded, developers can reference the AGENTS.md file. The skill is maintained by the CopilotKit team and is available under the MIT license.
Version and Maintenance
The skill is currently at version 2.0.0 and is actively maintained by the CopilotKit team. It&amp;rsquo;s part of the broader OpenClaw skills ecosystem, which aims to provide reusable AI capabilities for various applications.
Conclusion
The CopilotKit Agent Patterns skill represents a significant contribution to the AI agent development community, providing developers with a structured approach to building reliable, well-integrated agents. By following these patterns, developers can avoid common pitfalls and ensure their agents work seamlessly within the CopilotKit ecosystem.
Skill can be found at: &lt;a href=&quot;https://github.com/openclaw/skills/tree/main/skills/generaljerel/copilotkit-agent-patterns/SKILL.mdThe&quot; rel=&quot;nofollow&quot;&gt;https://github.com/openclaw/skills/tree/main/skills/generaljerel/copilotkit-agent-patterns/SKILL.mdThe&lt;/a&gt; post Understanding CopilotKit Agent Patterns: A Comprehensive Guide first appeared on Insight Ginie.&lt;/ul&gt;
</description>
<category>Other</category>
<guid isPermaLink="true">https://coderlegion.com/13112/understanding-copilotkit-agent-patterns-a-comprehensive-guide</guid>
<pubDate>Sat, 25 Apr 2026 06:55:22 +0000</pubDate>
</item>
<item>
<title>Kubernetes Node Affinity Explained: Scheduling Rules, Trade-offs &amp; Best Practices</title>
<link>https://coderlegion.com/11560/kubernetes-node-affinity-explained-scheduling-rules-trade-offs-best-practices</link>
<description>
&lt;h2 class=&quot;wp-block-heading&quot;&gt; What is Kubernetes Node Affinity? Benefits and Core Concepts&lt;/h2&gt;



&lt;p&gt;Kubernetes node affinity is an essential scheduling feature that allows you to control pod placement based on node labels and properties. By using node affinity rules, you can specify constraints on which nodes pods can be scheduled, enabling you to optimize resource allocation and enhance performance. &lt;/p&gt;



&lt;p&gt;Node affinity works by allowing you to define rules for pod scheduling based on node labels. When defining node affinity rules, you have two options: required and preferred rules. Required rules ensure that pods are scheduled only on nodes that satisfy the defined criteria. If no suitable node is available, the pod remains unscheduled. On the other hand, preferred rules provide a soft constraint and attempt to schedule pods on nodes that match the specified criteria. However, if no such node is available, the pod can still be scheduled on other nodes.&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/&quot; data-type=&quot;url&quot; data-id=&quot;https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/&quot; target=&quot;_blank&quot; rel=&quot;noopener nofollow&quot;&gt;Node affinity&lt;/a&gt; rules are an &amp;ldquo;expanded&amp;rdquo; option of the simply way by using &lt;a href=&quot;https://docs.openshift.com/container-platform/4.16/nodes/scheduling/nodes-scheduler-node-selectors.html&quot; data-type=&quot;url&quot; data-id=&quot;https://docs.openshift.com/container-platform/4.16/nodes/scheduling/nodes-scheduler-node-selectors.html&quot; target=&quot;_blank&quot; rel=&quot;noopener nofollow&quot;&gt;node selectors&lt;/a&gt;. Node selectors are a simple form of node affinity that allows you to assign labels to nodes and match those labels with selectors defined in the pod specification. By specifying a node selector, you can ensure that pods are scheduled only on nodes with matching labels. Node selectors are useful for basic affinity requirements but lack the flexibility and fine-grained control provided by more advanced affinity options.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Node Affinity Trade-offs: Required vs Preferred Rules and Failure Scenarios&lt;/h2&gt;



&lt;p&gt;But this awesome capability has some trade-offs that you need to take in consideration because nothing comes with a price that you need to be aware of, so, let&amp;rsquo;s go to the important question, what is the worst case scenario of using any of those options?&lt;/p&gt;



&lt;p&gt;Consider a stateful workload, like a distributed database (e.g., etcd or ZooKeeper), deployed with three replicas for consensus and fault tolerance. So you decide to define a set of nodes for this workload and use node affinity rules to ensure the pods are scheduled to those nodes. And, you need to think: should I use the preferred mode or the requiredMode? &lt;/p&gt;



&lt;p&gt;Let&amp;rsquo;s say that you go with the required option and you define it like this, what happen if one of your nodes goes down? The pod will be try to be rescheduled again and unless there are another node &amp;ldquo;with same label&amp;rdquo; to that, it cannot be deployed?  If you additional defined a pod anti-affinity rule to ensure each of the replicas is in a different host to ensure that in case that one node is going down you lose only a single replica, you&amp;rsquo;re losing the option to rescheudle the workload even if you have another nodes without the label available. So, you&amp;rsquo;re not in a so reliable option. &lt;/p&gt;



&lt;p&gt;Ok, so you go with the preferred to ensure that you workload is for sure scheduled even if it is in another node, and in that case you can end up on the situation that those nodes are scheduled on other nodes keeping those nodes with the proper label without the workload that they should have, making the situation strange and more difficult to administer because you cannot ensure your workloads is on the nodes that you expected to be. &lt;/p&gt;



&lt;p&gt;Additional to that, if the nodes has even taints to ensure other workloads cannot be placed there, you can end up in a situation that the &amp;ldquo;labeled-pods&amp;rdquo; are scheduled on non-labeled nodes, and the non-labeled pods cannot use the nodes because they&amp;rsquo;re tainted and can be not be able to use the un-labeled ones if there are not enough resources. So you&amp;rsquo;re generating an impact on the other workloasd and potentially affecting the schedulling of the other workloads.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;&amp;nbsp;Preparing for Unexpected Outages with Node Affinity&lt;/h2&gt;



&lt;p&gt;So, as you can see, each decision has some disadvatanges that you need to take in consdieration before defining those rules, because if you don&amp;rsquo;t, you will figure it out when this happen on an production enviornment probably as a result of some unexpected outage, because we all know that in the meantime that nothing bad happens everything works as expected, but the potential of these solutions and its reason to be used is exactly to provide the tools and the options to be prepared when bad things happens.&lt;/p&gt;



&lt;p&gt;So, next time that you need to define a node affinity rule try to think about the disadvantages of each of the option and try to select that one that works best for you and mitigate the problems that it can bring to the table of your production environment. &lt;/p&gt;



&lt;p&gt;&lt;img src=&quot;https://s.w.org/images/core/emoji/16.0.1/72x72/1f4da.png&quot; alt=&quot;????&quot; class=&quot;wp-smiley&quot; style=&quot;height: 1em; max-height: 1em;&quot;&gt; &lt;strong&gt;Want to dive deeper into Kubernetes?&lt;/strong&gt; This article is part of our &lt;a rel=&quot;nofollow&quot; href=&quot;https://alexandre-vazquez.com/kubernetes-architecture-patterns/&quot;&gt;comprehensive Kubernetes Architecture Patterns guide&lt;/a&gt;, where you&amp;rsquo;ll find all fundamental and advanced concepts explained step by step.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Frequently Asked Questions&lt;/h2&gt;


&lt;div id=&quot;rank-math-faq&quot; class=&quot;rank-math-block&quot;&gt;
&lt;div class=&quot;rank-math-list&quot;&gt;
&lt;div id=&quot;faq-question-1769420030&quot; class=&quot;rank-math-list-item&quot;&gt;
&lt;h3 class=&quot;rank-math-question&quot;&gt;What is the difference between nodeSelector and node affinity in Kubernetes?&lt;/h3&gt;
&lt;div class=&quot;rank-math-answer&quot;&gt;

&lt;p&gt;&lt;strong&gt;nodeSelector&lt;/strong&gt; is a simple field that requires a node to have all specified labels. &lt;strong&gt;Node affinity&lt;/strong&gt; is a more expressive API that supports complex operators like &lt;code&gt;In&lt;/code&gt;, &lt;code&gt;NotIn&lt;/code&gt;, and &lt;code&gt;Exists&lt;/code&gt;, and distinguishes between hard (&lt;code&gt;requiredDuringScheduling...&lt;/code&gt;) and soft (&lt;code&gt;preferredDuringScheduling...&lt;/code&gt;) constraints. Use nodeSelector for basic needs; use node affinity for advanced scheduling logic.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;faq-question-1769420031&quot; class=&quot;rank-math-list-item&quot;&gt;
&lt;h3 class=&quot;rank-math-question&quot;&gt;When should I use required vs preferred node affinity rules?&lt;/h3&gt;
&lt;div class=&quot;rank-math-answer&quot;&gt;

&lt;p&gt;Use &lt;strong&gt;required&lt;/strong&gt; rules for strict placement needs, like licensing constraints or specific hardware (e.g., GPU nodes). Use &lt;strong&gt;preferred&lt;/strong&gt; rules for optimization, like trying to place pods on nodes in the same availability zone for lower latency. Be aware that required rules can prevent scheduling during node failures, while preferred rules may not guarantee optimal placement.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;faq-question-1769420032&quot; class=&quot;rank-math-list-item&quot;&gt;
&lt;h3 class=&quot;rank-math-question&quot;&gt;What are the risks of using required node affinity?&lt;/h3&gt;
&lt;div class=&quot;rank-math-answer&quot;&gt;

&lt;p&gt;The primary risk is &lt;strong&gt;scheduling failure&lt;/strong&gt;. If no node matches the required rules (e.g., due to a failure or label mismatch), the pod will remain &lt;code&gt;Pending&lt;/code&gt;. This can lead to application downtime, especially if combined with Pod Anti-Affinity, which further restricts eligible nodes. Always ensure you have enough labeled nodes to handle failures.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;faq-question-1769420033&quot; class=&quot;rank-math-list-item&quot;&gt;
&lt;h3 class=&quot;rank-math-question&quot;&gt;How does node affinity interact with taints and tolerations?&lt;/h3&gt;
&lt;div class=&quot;rank-math-answer&quot;&gt;

&lt;p&gt;They work sequentially. First, the scheduler filters nodes based on &lt;strong&gt;node affinity/selector&lt;/strong&gt; rules. Then, from the filtered nodes, it checks &lt;strong&gt;taints and tolerations&lt;/strong&gt;. A pod will only be scheduled on a node that satisfies both its affinity/selector requirements &lt;em&gt;and&lt;/em&gt; for which the pod has a matching toleration for all the node&amp;rsquo;s taints.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;faq-question-1769420034&quot; class=&quot;rank-math-list-item&quot;&gt;
&lt;h3 class=&quot;rank-math-question&quot;&gt;What are best practices for defining node affinity labels?&lt;/h3&gt;
&lt;div class=&quot;rank-math-answer&quot;&gt;

&lt;p&gt;Use clear, descriptive label keys (e.g., &lt;code&gt;node.kubernetes.io/instance-type&lt;/code&gt;, &lt;code&gt;topology.kubernetes.io/zone&lt;/code&gt;). Prefer built-in labels where possible. Document the purpose of custom labels. Combine node affinity with &lt;a rel=&quot;nofollow&quot; href=&quot;https://alexandre-vazquez.com/level-up-your-deployment-strategy-with-canarying-in-kubernetes/&quot;&gt;pod anti-affinity&lt;/a&gt; carefully to avoid over-constraining the scheduler. Test scenarios with node failures.&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;yarpp yarpp-related yarpp-related-rss yarpp-template-list&quot;&gt;
&amp;lt;!-- YARPP List --&amp;gt;
&lt;h2&gt;Related articles:&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://alexandre-vazquez.com/kyverno-a-detailed-way-of-enforcing-standard-and-custom-policies/&quot; rel=&quot;bookmark nofollow&quot; title=&quot;Kyverno: A Detailed Way of Enforcing Standard and Custom Policies&quot;&gt;Kyverno: A Detailed Way of Enforcing Standard and Custom Policies&lt;/a&gt; &lt;small&gt;Learn how Kyverno extends beyond Kubernetes' built-in Pod Security Admission...&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://alexandre-vazquez.com/kubernetes-policy-enforcement-understanding-pod-security-admission-psa/&quot; rel=&quot;bookmark nofollow&quot; title=&quot;Kubernetes Pod Security Admission Explained: Enforcing PSA Policies the Right Way&quot;&gt;Kubernetes Pod Security Admission Explained: Enforcing PSA Policies the Right Way&lt;/a&gt; &lt;small&gt;Learn how Kubernetes Pod Security Admission (PSA) works, how it...&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://alexandre-vazquez.com/extending-kyverno-policies-creating-custom-rules-for-enhanced-kubernetes-security/&quot; rel=&quot;bookmark nofollow&quot; title=&quot;Extending Kyverno Policies: Creating Custom Rules for Kubernetes Security&quot;&gt;Extending Kyverno Policies: Creating Custom Rules for Kubernetes Security&lt;/a&gt; &lt;small&gt;Learn how to extend Kyverno policies by creating custom validation,...&lt;/small&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;

</description>
<category>Other</category>
<guid isPermaLink="true">https://coderlegion.com/11560/kubernetes-node-affinity-explained-scheduling-rules-trade-offs-best-practices</guid>
<pubDate>Fri, 13 Feb 2026 03:54:38 +0000</pubDate>
</item>
<item>
<title>Control vs. Flow: How to choose! ADF for pipelines; choose Workflows for code‑centric, event‑driven</title>
<link>https://coderlegion.com/10990/control-flow-how-choose-adf-for-pipelines-choose-workflows-for-code-centric-event-driven</link>
<description>&lt;h2 id=&quot;how-to-choose-&quot;&gt;How to Choose!&lt;/h2&gt;
&lt;p&gt;one‑line first: Choose ADF for pipelines; choose Workflows for code‑centric, event‑driven orchestration.&lt;/p&gt;
&lt;p&gt;Two words: Control vs. Flow.&lt;/p&gt;
&lt;p&gt;Business analogy: ADF is a factory conveyor; Workflows is a robotics cell.&lt;/p&gt;
&lt;p&gt;Mechanical decision rules (your style)&lt;/p&gt;
&lt;h3 id=&quot;1-adf-when-&quot;&gt;1. ADF when…&lt;/h3&gt;
&lt;p&gt;we need GUI‑driven pipelines with clear lineage.&lt;/p&gt;
&lt;p&gt;we orchestrate heterogeneous services (SQL, Synapse, Storage, Functions).&lt;/p&gt;
&lt;p&gt;we want parameterized, metadata‑driven ingestion at scale.&lt;/p&gt;
&lt;p&gt;we need integration runtime features (self‑hosted, VNet, hybrid).&lt;/p&gt;
&lt;p&gt;we want governance‑friendly monitoring for non‑engineers.&lt;/p&gt;
&lt;h3 id=&quot;2-workflows-when-&quot;&gt;2. Workflows when…&lt;/h3&gt;
&lt;p&gt;we want code‑first orchestration inside Fabric.&lt;/p&gt;
&lt;p&gt;we need fast, low‑latency triggers (event‑driven, notebook‑to‑notebook).&lt;/p&gt;
&lt;p&gt;we orchestrate Fabric-native assets (Lakehouse, Warehouse, KQL, ML).&lt;/p&gt;
&lt;p&gt;we want Git‑friendly, DevOps‑friendly YAML‑style logic.&lt;/p&gt;
&lt;p&gt;we need tight coupling with notebooks, semantic models, and CI/CD.&lt;/p&gt;
&lt;h3 id=&quot;3-performance-truth&quot;&gt;3. Performance truth&lt;/h3&gt;
&lt;p&gt;Small datasets: orchestration dominates compute.&lt;/p&gt;
&lt;p&gt;Large datasets: compute dominates orchestration.&lt;/p&gt;
&lt;p&gt;We experiment proved the classic: ADF overhead is ~3–7 seconds per activity; Workflows is ~1–2 seconds.&lt;/p&gt;
&lt;h3 id=&quot;4-architect-rule-of-thumb&quot;&gt;4. Architect rule of thumb&lt;/h3&gt;
&lt;p&gt;Enterprise ingestion layer → ADF&lt;/p&gt;
&lt;p&gt;Fabric-native transformation layer → Workflows&lt;/p&gt;
&lt;p&gt;Cross-cloud or hybrid → ADF&lt;/p&gt;
&lt;p&gt;+----+-----------------------+-------------------------------+--------------------------------------+&lt;br&gt;
| #  | Criterion             | ADF                           | Workflows                            |&lt;br&gt;
+----+-----------------------+-------------------------------+--------------------------------------+&lt;br&gt;
| 1  | Orchestration style   | GUI pipelines                 | Code‑centric flows                    |&lt;br&gt;
| 2  | Best for              | Enterprise ingestion          | Fabric-native transformations         |&lt;br&gt;
| 3  | Trigger model         | Time, event, manual           | Fast, event-driven, notebook-first    |&lt;br&gt;
| 4  | Asset ecosystem       | SQL, Synapse, Storage, Funcs  | Lakehouse, Warehouse, KQL, ML         |&lt;br&gt;
| 5  | Latency               | Higher (3–7s/activity)        | Lower (1–2s/step)                     |&lt;br&gt;
| 6  | Governance            | Strong lineage, non‑engineer  | DevOps-friendly, Git-native           |&lt;br&gt;
|    |                       | friendly                      |                                      |&lt;br&gt;
| 7  | Hybrid/cloud          | Excellent (IR, VNet, on‑prem) | Fabric-only                           |&lt;br&gt;
| 8  | Parameterization      | Mature metadata patterns      | Code-driven parameters                |&lt;br&gt;
| 9  | Monitoring            | Visual enterprise dashboards  | Developer-grade logs                  |&lt;br&gt;
|10  | Ideal use case        | RAW→BRONZE ingestion          | SILVER→GOLD transformations           |&lt;br&gt;
+----+-----------------------+-------------------------------+--------------------------------------+&lt;/p&gt;
&lt;p&gt;4‑Rule Architectural Selector (ADF vs Workflows)&lt;br&gt;
Rule 1 — Ingestion Layer → ADF&lt;br&gt;
If the job touches RAW files, schema drift, hybrid sources, IR, or cross‑service movement → ADF.&lt;/p&gt;
&lt;p&gt;Rule 2 — Transformation Layer → Workflows&lt;br&gt;
If the job is notebook‑driven, Fabric‑native, or SILVER→GOLD logic → Workflows.&lt;/p&gt;
&lt;p&gt;Rule 3 — Governance Audience → ADF&lt;br&gt;
If non‑engineers must monitor, approve, or audit pipelines → ADF.&lt;/p&gt;
&lt;p&gt;Rule 4 — Developer Velocity → Workflows&lt;br&gt;
If the team prefers code‑first, Git‑native, low‑latency orchestration → Workflows.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/10990/control-flow-how-choose-adf-for-pipelines-choose-workflows-for-code-centric-event-driven</guid>
<pubDate>Tue, 03 Feb 2026 13:36:37 +0000</pubDate>
</item>
</channel>
</rss>