> ## Documentation Index
> Fetch the complete documentation index at: https://docs.llmtag.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Rules Engine

> Create advanced custom rules for AI protection with the LLMTAG WordPress plugin

## Custom Rules Overview

The LLMTAG plugin's custom rules engine allows you to create sophisticated, conditional protection rules that go beyond basic global and path-based policies.

<Card title="Advanced Rule Engine" icon="cog" horizontal>
  **Conditional Logic** • **Complex Scenarios** • **Dynamic Policies** • **Flexible Configuration**
</Card>

## Rule Types

### Conditional Rules

Create rules that apply different policies based on specific conditions:

<Columns cols={2}>
  <Card title="Time-Based Rules" icon="clock">
    **Example:** Block AI training during business hours
    **Use Case:** Protect sensitive content during peak usage
  </Card>

  <Card title="User-Based Rules" icon="user">
    **Example:** Different policies for logged-in vs. anonymous users
    **Use Case:** Protect premium content for subscribers
  </Card>

  <Card title="Content-Type Rules" icon="file">
    **Example:** Different policies for images vs. text content
    **Use Case:** Allow AI training for text but block for images
  </Card>

  <Card title="Geographic Rules" icon="globe">
    **Example:** Different policies based on visitor location
    **Use Case:** Comply with regional AI regulations
  </Card>
</Columns>

### Dynamic Rules

Rules that change based on real-time conditions:

<Columns cols={2}>
  <Card title="Traffic-Based Rules" icon="chart-line">
    **Example:** Stricter policies during high traffic periods
    **Use Case:** Protect content during viral moments
  </Card>

  <Card title="Threat-Based Rules" icon="shield">
    **Example:** Block suspicious AI agents automatically
    **Use Case:** Adaptive protection against new threats
  </Card>

  <Card title="Content-Age Rules" icon="calendar">
    **Example:** Allow AI training for older content
    **Use Case:** Gradual content release strategy
  </Card>

  <Card title="Performance-Based Rules" icon="gauge">
    **Example:** Adjust protection based on server load
    **Use Case:** Balance protection with performance
  </Card>
</Columns>

## Rule Builder Interface

### Visual Rule Builder

<Steps>
  <Step title="Select Rule Type">
    Choose from predefined rule types or create a custom rule.
  </Step>

  <Step title="Define Conditions">
    Set the conditions that trigger the rule.
  </Step>

  <Step title="Configure Actions">
    Define what happens when conditions are met.
  </Step>

  <Step title="Set Priorities">
    Determine rule execution order and precedence.
  </Step>

  <Step title="Test and Deploy">
    Test the rule in a safe environment before deploying.
  </Step>
</Steps>

### Rule Configuration

```json theme={null}
{
  "rule_name": "Business Hours Protection",
  "conditions": {
    "time": {
      "start": "09:00",
      "end": "17:00",
      "timezone": "UTC",
      "days": ["monday", "tuesday", "wednesday", "thursday", "friday"]
    },
    "content_type": "premium"
  },
  "actions": {
    "ai_training_data": "disallow",
    "ai_use": ["search_indexing"],
    "block_agents": ["all_commercial"]
  },
  "priority": 100,
  "enabled": true
}
```

## Advanced Rule Examples

### E-commerce Protection

```json theme={null}
{
  "rule_name": "E-commerce Product Protection",
  "conditions": {
    "path": "/products/",
    "user_status": "anonymous",
    "content_value": "high"
  },
  "actions": {
    "ai_training_data": "disallow",
    "ai_use": ["search_indexing"],
    "verification_required": true,
    "custom_message": "Product information protected"
  }
}
```

### News Site Protection

```json theme={null}
{
  "rule_name": "Breaking News Protection",
  "conditions": {
    "content_age": "< 24 hours",
    "content_category": "breaking_news",
    "traffic_level": "high"
  },
  "actions": {
    "ai_training_data": "disallow",
    "ai_use": ["search_indexing"],
    "block_agents": ["all_ai_agents"],
    "temporary_duration": "24 hours"
  }
}
```

### Educational Content

```json theme={null}
{
  "rule_name": "Educational Content Policy",
  "conditions": {
    "path": "/education/",
    "content_license": "creative_commons",
    "user_type": "student"
  },
  "actions": {
    "ai_training_data": "allow",
    "ai_use": ["search_indexing", "generative_synthesis", "research"],
    "attribution_required": true
  }
}
```

## Rule Execution Engine

### Execution Order

Rules are executed in the following order:

<Steps>
  <Step title="Priority Sorting">
    Rules are sorted by priority (higher numbers first).
  </Step>

  <Step title="Condition Evaluation">
    Each rule's conditions are evaluated in order.
  </Step>

  <Step title="Action Application">
    Actions from matching rules are applied.
  </Step>

  <Step title="Conflict Resolution">
    Conflicting actions are resolved based on precedence.
  </Step>

  <Step title="Final Policy">
    The final policy is applied to the request.
  </Step>
</Steps>

### Conflict Resolution

<Columns cols={2}>
  <Card title="Last Rule Wins" icon="arrow-down">
    **Method:** Later rules override earlier ones
    **Use Case:** General rules with specific exceptions
  </Card>

  <Card title="Most Restrictive" icon="shield">
    **Method:** Apply the most restrictive policy
    **Use Case:** Security-focused configurations
  </Card>

  <Card title="Most Permissive" icon="unlock">
    **Method:** Apply the most permissive policy
    **Use Case:** User-friendly configurations
  </Card>

  <Card title="Custom Logic" icon="cog">
    **Method:** Define custom conflict resolution
    **Use Case:** Complex business requirements
  </Card>
</Columns>

## Performance Optimization

### Rule Caching

<Steps>
  <Step title="Rule Compilation">
    Compile rules into efficient execution trees.
  </Step>

  <Step title="Condition Caching">
    Cache condition evaluation results.
  </Step>

  <Step title="Action Caching">
    Cache action results for repeated conditions.
  </Step>

  <Step title="Invalidation">
    Invalidate cache when rules change.
  </Step>
</Steps>

### Performance Monitoring

<Columns cols={2}>
  <Card title="Rule Execution Time" icon="clock">
    **Metric:** Time taken to evaluate rules
    **Target:** \< 10ms per request
    **Optimization:** Cache frequently used rules
  </Card>

  <Card title="Memory Usage" icon="memory">
    **Metric:** Memory consumed by rule engine
    **Target:** \< 5MB additional usage
    **Optimization:** Efficient data structures
  </Card>

  <Card title="Cache Hit Rate" icon="target">
    **Metric:** Percentage of cache hits
    **Target:** > 80% hit rate
    **Optimization:** Improve cache strategies
  </Card>
</Columns>

## Testing and Debugging

### Rule Testing

<Steps>
  <Step title="Unit Testing">
    Test individual rules in isolation.
  </Step>

  <Step title="Integration Testing">
    Test rule interactions and conflicts.
  </Step>

  <Step title="Performance Testing">
    Test rule execution performance.
  </Step>

  <Step title="User Acceptance Testing">
    Test rules with real user scenarios.
  </Step>
</Steps>

### Debugging Tools

<Columns cols={2}>
  <Card title="Rule Execution Log" icon="list">
    **Feature:** Detailed log of rule execution
    **Use:** Debug rule logic and performance
  </Card>

  <Card title="Condition Evaluator" icon="flask">
    **Feature:** Test conditions with sample data
    **Use:** Verify condition logic
  </Card>

  <Card title="Performance Profiler" icon="chart-line">
    **Feature:** Profile rule execution performance
    **Use:** Identify performance bottlenecks
  </Card>

  <Card title="Rule Simulator" icon="play">
    **Feature:** Simulate rule execution
    **Use:** Test rules before deployment
  </Card>
</Columns>

## Best Practices

### Rule Design

<Columns cols={2}>
  <Card title="Keep Rules Simple" icon="heart">
    Design rules that are easy to understand and maintain.
  </Card>

  <Card title="Use Descriptive Names" icon="tag">
    Use clear, descriptive names for rules and conditions.
  </Card>

  <Card title="Document Rules" icon="file-text">
    Document the purpose and logic of complex rules.
  </Card>

  <Card title="Test Thoroughly" icon="flask">
    Test rules extensively before deploying to production.
  </Card>
</Columns>

### Performance Best Practices

<Note>
  Follow these tips to optimize rule performance:
</Note>

* **Minimize condition complexity** to reduce evaluation time
* **Use efficient data structures** for condition matching
* **Cache frequently used rules** to avoid repeated compilation
* **Monitor performance metrics** and optimize as needed

### Security Considerations

<Warning>
  Always consider security implications when creating custom rules:
</Warning>

* **Validate all inputs** to prevent injection attacks
* **Use secure condition evaluation** to prevent code execution
* **Implement proper access controls** for rule management
* **Audit rule changes** to maintain security posture

## Advanced Features

### Rule Templates

<Card title="Pre-built Rule Templates" icon="template" horizontal>
  **E-commerce Protection** • **News Site Rules** • **Educational Content** • **Corporate Policies**
</Card>

### Rule Import/Export

<Steps>
  <Step title="Export Rules">
    Export rules to JSON format for backup or sharing.
  </Step>

  <Step title="Import Rules">
    Import rules from JSON files or other sources.
  </Step>

  <Step title="Rule Sharing">
    Share rule configurations with other sites.
  </Step>

  <Step title="Version Control">
    Track rule changes over time.
  </Step>
</Steps>

### API Integration

```javascript theme={null}
// Example: Create rule via API
const rule = {
  name: "Custom Protection Rule",
  conditions: {
    path: "/premium/",
    user_agent: "CommercialAI"
  },
  actions: {
    ai_training_data: "disallow",
    ai_use: ["search_indexing"]
  }
};

fetch('/wp-json/llmtag/v1/rules', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify(rule)
});
```

## Troubleshooting

### Common Issues

<AccordionGroup>
  <Accordion title="Rules not executing">
    **Possible causes:**

    * Rules disabled or misconfigured
    * Condition logic errors
    * Priority conflicts

    **Solutions:**

    * Check rule status and configuration
    * Verify condition logic
    * Review rule priorities
  </Accordion>

  <Accordion title="Performance issues">
    **Possible causes:**

    * Too many complex rules
    * Inefficient condition evaluation
    * Cache configuration problems

    **Solutions:**

    * Optimize rule complexity
    * Improve condition evaluation
    * Adjust cache settings
  </Accordion>

  <Accordion title="Unexpected behavior">
    **Possible causes:**

    * Rule conflicts
    * Condition evaluation errors
    * Action application issues

    **Solutions:**

    * Review rule conflicts
    * Debug condition logic
    * Check action configuration
  </Accordion>
</AccordionGroup>
