ARIA's policy system provides a flexible and robust framework for managing AI participation in software projects. This document details the technical implementation of the policy system, which supports two distinct policy formats: capability-based (for testing) and model-based (for production).
Designed primarily for testing and human readability:
- Focus on specific AI capabilities
- Clear conditions and restrictions
- Simplified structure for non-technical users
- Easier to understand and validate
Designed for production environments:
- Integration with code repositories
- Path-specific rules
- Predefined models with default settings
- More granular control over permissions
Defines possible AI interactions with the codebase:
GENERATE: Create new codeMODIFY: Change existing codeSUGGEST: Propose changesREVIEW: Analyze codeEXECUTE: Run code or commands
Represents permission settings for specific actions:
- Action type
- Requirements (e.g., human review)
- Constraints (e.g., path patterns)
Predefined participation models:
GUARDIAN: Complete restrictionOBSERVER: Analysis and review onlyASSISTANT: Suggestions with human reviewCOLLABORATOR: Area-specific permissionsPARTNER: Maximum participation with guardrails
Manages path-specific rules:
- Path patterns
- Allowed actions
- Required validations
- Inheritance rules
Overall policy management:
- Policy loading/saving
- Permission validation
- Model enforcement
- Path matching
- Support for multiple policy formats
Central policy coordination:
- Policy configuration
- Permission checking
- Rule inheritance
- Validation pipeline
version: 1.0.0
name: test_policy
description: A comprehensive test policy
capabilities:
- name: code_generation
description: Generate code based on user requirements
allowed: true
conditions:
- Must include appropriate comments.
- Must follow project coding standards.
restrictions:
- Must not retain user data beyond the session.
- Must inform users about limitations.version: 1.0.0
name: production_policy
model: ASSISTANT
defaults:
allow:
- review
- suggest
require:
- human_review
paths:
'src/**/*.py':
allow:
- generate
- modify
require:
- unit_tests
'docs/**':
allow:
- generate
- format- Detect policy format (capability or model-based)
- For model-based:
- Path matching using glob patterns
- Model-based permission inheritance
- Explicit permission validation
- Requirement verification
- For capability-based:
- Capability validation
- Condition checking
- Restriction enforcement
- Common validation:
- Required fields check
- Type validation
- Format-specific validation:
- Capability-based validation
- Model-based validation
- Strict validation (optional):
- Enhanced quality checks
- Detailed warnings
- Result compilation
- CI/CD hooks
- IDE plugins
- Git pre-commit hooks
- Policy documentation generation
- Use capability-based format for:
- Testing and development
- Non-technical stakeholders
- Simple use cases
- Use model-based format for:
- Production environments
- Complex codebases
- Integration with CI/CD
- Start with a restrictive model
- Use explicit permissions
- Define clear path patterns
- Document requirements
- Regular policy reviews
- Version control integration
- Automated validation
- Clear documentation
- Enhanced policy analytics
- Machine learning-based policy recommendations
- Automated policy testing
- Integration with more development tools
- Policy visualization tools