Rules of Engagement (RoE)
RedAmon supports Rules of Engagement — the formal constraints that govern every penetration testing engagement. Upload a RoE document (PDF, TXT, MD, or DOCX) when creating a project, and an LLM automatically parses it into structured settings that are enforced across the entire platform: the recon pipeline, the AI agent, and all tool executions.

One-way at creation only. RoE settings are configured when the project is created and become read-only afterward. This prevents accidental modification of engagement constraints mid-assessment.
Table of Contents
- How It Works
- Document Upload & Parsing
- RoE Settings Reference
- Enforcement Layers
- RoE Viewer (Graph Page)
- RoE Toolbar Badge
How It Works
- Upload a RoE document in the project creation form (RoE tab)
- The document is sent to the AI agent, which parses it into structured fields covering scope, exclusions, time windows, permissions, rate limits, data handling, and more
- All parsed fields auto-populate the project settings across multiple tabs (Target, Rates, Modules, RoE)
- The original document binary is stored in PostgreSQL and can be downloaded later
- At runtime, RoE constraints are enforced at three layers: agent prompt injection, deterministic tool gates, and recon pipeline filtering
Document Upload & Parsing
In the Rules of Engagement tab of the project creation form:
- Click the upload area or drag-and-drop a file (
.pdf,.txt,.md,.docx) - Click Parse & Auto-fill Settings — the LLM extracts all relevant information
- A success modal shows which tabs were affected
- Review and adjust the auto-filled settings across all tabs before saving
The parser extracts:
- Target domain, IPs, and subdomain scope
- Excluded hosts with reasons
- Time windows and timezone
- Testing permissions (DoS, social engineering, physical access, etc.)
- Rate limits and severity caps
- Data handling policies
- Client contacts and engagement dates
- Compliance frameworks and third-party providers
- Tool-specific restrictions
Smart merging. The parser only disables tools that are explicitly banned by name in the RoE document. Phrases like "use with caution" or "discouraged" are noted in the agent prompt but do not disable tools. Phase restrictions (e.g., "reconnaissance only") are handled via
roeMaxSeverityPhase, not by stripping phases from individual tools.
RoE Settings Reference
Client & Engagement
| Parameter | Default | Description |
|---|---|---|
| Client Name | — | Client organization name |
| Contact Name | — | Primary client point of contact |
| Contact Email | — | Client POC email address |
| Contact Phone | — | Client POC phone number |
| Emergency Contact | — | Who to contact if testing causes an incident |
| Engagement Start Date | — | Start date (YYYY-MM-DD) |
| Engagement End Date | — | End date (YYYY-MM-DD) |
| Engagement Type | external | Type: external, internal, web_app, api, mobile, physical, social_engineering, red_team |
Scope & Exclusions
| Parameter | Default | Description |
|---|---|---|
| Excluded Hosts | [] | IPs or domains that must NEVER be touched during testing |
| Excluded Host Reasons | [] | Reason for each exclusion (parallel array) |
Excluded hosts are filtered out at every level — the recon pipeline skips them during target expansion, and the agent prompt explicitly lists them as off-limits.
Time Windows
| Parameter | Default | Description |
|---|---|---|
| Time Window Enabled | false | Restrict testing to specific days/hours |
| Timezone | UTC | Timezone for the time window |
| Days | Mon-Fri | Allowed days of the week |
| Start Time | 09:00 | Window start (HH:MM) |
| End Time | 18:00 | Window end (HH:MM) |
When enabled, the recon orchestrator blocks scan starts outside the allowed window, and the RoE viewer shows a live ACTIVE/OUTSIDE WINDOW status indicator.
Testing Permissions
Six boolean toggles control what categories of testing are permitted:
| Permission | Default | Description |
|---|---|---|
| Allow DoS | false | Denial of service testing |
| Allow Social Engineering | false | Social engineering / phishing |
| Allow Physical Access | false | Physical security testing |
| Allow Data Exfiltration | false | Exfiltrate data as proof of access |
| Allow Account Lockout | false | Trigger account lockouts (e.g., brute force) |
| Allow Production Testing | true | Test in production environments |
When a permission is set to false, the corresponding tool category is automatically blocked by the hard gate in the agent's tool execution layer.
Constraints & Rate Limits
| Parameter | Default | Description |
|---|---|---|
| Max Severity Phase | post_exploitation | Highest phase allowed: informational, exploitation, or post_exploitation |
| Global Max RPS | 0 | Global rate limit across all tools (0 = no cap). Applied as min(tool_rate, global_max) |
| Forbidden Categories | [] | Blocked technique categories: brute_force, dos, social_engineering, physical |
Data Handling
| Parameter | Default | Description |
|---|---|---|
| Sensitive Data Handling | no_access | Policy: no_access, prove_access_only, limited_collection, full_access |
| Data Retention Days | 90 | How long to retain test data |
| Require Data Encryption | true | Encrypt all test artifacts at rest and in transit |
Communication & Incident Response
| Parameter | Default | Description |
|---|---|---|
| Status Update Frequency | daily | How often to report: daily, weekly, on_finding, none |
| Critical Finding Notify | true | Immediately notify client on critical findings |
| Incident Procedure | — | Free-text procedure if testing causes an incident |
Compliance & Authorization
| Parameter | Default | Description |
|---|---|---|
| Compliance Frameworks | [] | Applicable frameworks: PCI-DSS, HIPAA, SOC2, GDPR, ISO27001 |
| Third-Party Providers | [] | Cloud/hosting providers requiring separate authorization |
Notes
| Parameter | Default | Description |
|---|---|---|
| Notes | — | Free-text field for any rules not captured by structured fields |
Enforcement Layers
RoE constraints are enforced at three independent layers, providing defense-in-depth:
Agent Prompt Injection
When RoE is enabled, a structured ## RULES OF ENGAGEMENT (MANDATORY) section is injected into the agent's system prompt at the think node — the reasoning step before every action. This section includes:
- Client name, contacts, and emergency procedures
- Excluded hosts listed explicitly with "NEVER TOUCH" language
- Time window status
- All testing permissions and restrictions
- Forbidden tools and categories
- Data handling policy
- Compliance frameworks
- Truncated original RoE document text (up to 3,000 chars) for context
The agent sees this on every reasoning step, so it plans around restrictions proactively rather than hitting the hard gate.
Hard Gate (Tool Execution)
A deterministic code gate in execute_tool_node blocks tool calls regardless of what the LLM decides:
- Forbidden tools: Any tool in
roeForbiddenToolsis blocked immediately - Forbidden categories: Categories like
brute_forceauto-block associated tools (e.g.,execute_hydra) - Permission flags:
roeAllowDos=falseblocks DoS-related tools,roeAllowAccountLockout=falseblocks Hydra, etc. - Phase cap: If
roeMaxSeverityPhase=exploitation, any tool call duringpost_exploitationphase is blocked
When a tool is blocked, the agent receives a clear message explaining which RoE rule was violated.
Recon Pipeline
The recon orchestrator enforces RoE at the infrastructure level:
- Excluded hosts are filtered from all scan target lists during IP expansion
- Rate limit cap applies
min(configured_rate, roeGlobalMaxRps)to every tool's rate setting - Time window blocks scan starts outside the allowed window (returns 403)
- Scope check on named targets applies to the Secret Multiscanner: every source's target (a repository, a Docker image reference, a GitHub org, a Hugging Face model, a Jenkins URL) is checked against the project's declared scope before the container is spawned, and a target outside it is refused. For a name-only target this is the only applicable check, so it composes with, rather than replaces, the internal-address egress guard
RoE Viewer (Graph Page)
The graph dashboard includes a dedicated RoE tab (alongside Graph, Table, and Sessions) that displays all parsed rules in a formatted, read-only view.

The viewer is organized into cards:
| Card | Contents |
|---|---|
| Engagement | Client name, engagement type, date range, contact details |
| Scope | Target domain, IP ranges, exclusion count |
| Excluded Hosts | Each excluded host with reason, highlighted in red (full-width card) |
| Time Window | Allowed days/hours, timezone, live ACTIVE/OUTSIDE WINDOW status |
| Testing Permissions | 6 permission badges in a grid (green = allowed, red = denied) |
| Constraints | Max phase indicator, rate limit, forbidden categories as tags |
| Data Handling | Sensitive data policy, retention period, encryption requirement |
| Communication | Status update frequency, critical finding notification, incident procedure |
| Compliance & Authorization | Compliance framework tags, third-party provider tags |
| Additional Notes | Free-text notes (full-width card) |
A Download button in the header lets you retrieve the original uploaded RoE document (PDF, TXT, etc.).
If no RoE has been configured, the tab shows an empty state with instructions.
RoE Toolbar Badge
When RoE is enabled for a project, a blue RoE badge appears in the graph toolbar (between the domain name and the PAUSE ALL button). This provides at-a-glance confirmation that engagement guardrails are active.
Field Source Standards
The RoE fields are based on industry-standard penetration testing frameworks:
| Category | Source Standards |
|---|---|
| Scope exclusions | PTES, SANS, all major templates |
| Time windows | PTES ("Time of Day to Test"), SANS worksheet |
| Forbidden tools/techniques | PTES, Microsoft RoE, HackerOne |
| Severity/phase cap | NIST SP 800-115, PTES phases |
| Rate limits | Common in all web/API pentests |
| Client & contacts | SANS worksheet, PTES, Red Team Guide |
| Engagement dates | PTES ("Timeline"), all templates |
| DoS/Social Eng permissions | Microsoft RoE, PTES, HackerOne |
| Data handling | PTES ("Disclosure of Sensitive Information"), HackerOne |
| Incident procedure | PTES, SANS, NIST SP 800-115 |
| Compliance frameworks | PCI-DSS, HIPAA, SOC2, GDPR scope |