# AirCoding Scope Escalation Model V1

Date: 2026-05-27
Status: Canonical scope escalation model for V1.0.0 Alpha skeleton

This document defines when agents may continue silently, when Scheduler must route to Architecture Designer, and when Main Agent/user confirmation is required.

## 1. Core Principle

Implementation-level changes that do not conflict with existing requirements, interfaces, architecture, or permissions may continue silently.

Architecture-level, product-level, safety-sensitive, or user-visible requirement changes require assessment and may require user confirmation depending on permission mode and impact.

## 2. Escalation Levels

```ts
type ScopeImpactLevel =
  | "implementation"
  | "interface"
  | "architecture"
  | "product"
  | "permission"
  | "environment"
  | "policy"
```

| Level | Meaning | Default action |
|---|---|---|
| `implementation` | internal code details within accepted scope | silent continue |
| `interface` | public API/schema/module boundary changes | Architecture Designer assessment |
| `architecture` | component responsibility/data flow/runtime model changes | Architecture Designer + likely user-visible summary |
| `product` | changes user-facing goal, behavior, UX, or acceptance criteria | Main Agent/user confirmation |
| `permission` | action exceeds current permission grant | PermissionEngine/Main Agent |
| `environment` | dependency/toolchain/platform blocker | Doctor/Debugger, then Main Agent if unresolved |
| `policy` | safety/security/legal/project policy issue | block until explicit decision or refuse |

## 3. Silent Continue Criteria

An agent may continue without escalation when all are true:

1. Change is inside TaskSpec scope/write area.
2. Acceptance criteria remain unchanged.
3. Public interfaces and architecture decisions remain unchanged.
4. No denied path, credential, system-sensitive, or unapproved network access is needed.
5. Verification plan remains valid.
6. Change does not contradict project rules or latest user instructions.
7. Risk is low or normal for the task type.

Examples:

```text
rename local variable
adjust private helper implementation
fix compile error without API change
add missing test for accepted behavior
change internal algorithm with same contract
```

## 4. Architecture Designer Assessment Criteria

Route to Architecture Designer when any are true:

1. Public function/class/module interface must change.
2. DB schema or persisted data shape must change.
3. IPC/event/tool contract must change.
4. Dependency graph or component responsibility changes.
5. Task requires new subsystem/capability not in plan.
6. Multiple tasks conflict semantically, not just textually.
7. A user requirement change may affect architecture.
8. Repeated failures indicate the plan itself is wrong.

Architecture Designer outputs `architecture.impact.completed`:

```ts
interface ArchitectureImpactCompletedPayload {
  assessment_id: string
  requirement_change_id?: string
  impact_level: "implementation" | "interface" | "architecture" | "product"
  decision: "silent_continue" | "requires_user_confirmation" | "requires_replan" | "reject_or_escalate"
  summary: string
  affected_task_ids?: string[]
  evidence_refs?: EvidenceLink[]
}
```

## 5. User Confirmation Criteria

Main Agent asks the user when any are true:

1. Product behavior or acceptance criteria changes.
2. Architecture Designer marks `requires_user_confirmation`.
3. Low-permission mode requires approval for the planned action.
4. Credentials or system-sensitive operations are involved.
5. Migration or destructive/shared-state operation is involved.
6. Safety/policy boundary requires explicit authorization.
7. Failure cannot be resolved without user preference or external input.

High-permission mode may auto-execute many actions after visible `announce_then_run`, but cannot bypass:

```text
credentials
system_sensitive
migration confirmation
policy refusal boundary
destructive/shared-state actions requiring explicit confirmation
```

## 6. Environment Escalation

Environment/toolchain issues follow:

```text
worker detects issue
  → Doctor/Debugger evidence
  → if fix is allowlisted and permission mode allows: announce_then_run or ask
  → if fix fails or unsupported platform: Main Agent blocker report
  → if architecture assumptions invalid: Architecture Designer assessment
```

Examples requiring environment escalation:

```text
missing compiler/toolchain
kernel feature unavailable
package manager unavailable
insufficient disk space
X/display backend missing for GUI evidence
```

## 7. Permission Escalation

PermissionEngine returns an action plus a grant scope:

```text
action: allow | deny | ask_user | block | refuse | announce_then_run
grant_scope: none | once | session | project | global
```

Routes:

| Action | Route |
|---|---|
| `allow` | execute according to `grant_scope`; create backup first when `backup_required` is true |
| `announce_then_run` | visible notice, auto-execute if not interrupted; grant is bounded by `grant_scope` |
| `ask_user` | Main Agent/UI prompt |
| `deny` | do not execute this request; caller may choose another safe path |
| `block` | task.blocked |
| `refuse` | policy_error and cancellation/blocker |

## 8. Requirement Change Handling

When the user changes requirements during execution:

```text
Main Agent records requirement.changed
Scheduler pauses affected dispatch/merge decisions
Architecture Designer assesses if needed
Scheduler cancels, interrupts, replans, or continues affected tasks
Main Agent reports visible impact summary
```

Classification:

| Change | Handling |
|---|---|
| clarification only | update context; continue |
| implementation detail | Scheduler updates pending tasks; running tasks may continue if unaffected |
| scope change | interrupt affected tasks and replan |
| architecture change | Architecture Designer assessment |
| cancellation | cancel affected tasks and preserve workspaces/artifacts |

## 9. Worker Self-Escalation Contract

Workers return `blocked` instead of improvising when they detect:

```text
architecture/interface mismatch
permission denial
missing product decision
unsupported environment condition
unsafe requested behavior
verification cannot be run and acceptance depends on it
TaskSpec scope insufficient for necessary change
```

WorkerResult blocker fields:

```ts
interface BlockerReport {
  impact_level: ScopeImpactLevel
  reason: string
  required_decision: string
  options?: Array<{ label: string; tradeoff: string }>
  evidence_refs?: EvidenceLink[]
  suggested_default?: string
}
```

## 10. Scheduler Escalation Decision

Scheduler maps task/agent/tool events to one of:

```text
continue
retry
retry_serial
debug
ask_permission
architecture_assessment
ask_user
cancel
refuse
```

Decision inputs:

```text
error kind
failure signature repetition
TaskSpec scope
permission result
architecture impact
verification evidence
resource/environment state
user permission mode
```

## 11. User-Facing Reports

Escalation reports should be short and actionable:

```text
What changed or failed
Why AirCoding cannot safely continue silently
Evidence summary
Recommended default action
Alternatives if meaningful
```

Do not show implementation noise when the decision is product-level. Do show precise evidence when the decision affects architecture, data loss, security, or environment setup.

## 12. Examples

### Silent implementation fix

A C++ build fails because a private helper has a mismatched parameter type. Executor edits the helper and reruns build/tests. No escalation.

### Interface-level escalation

A task discovers the accepted API cannot support required streaming. Executor returns blocked. Architecture Designer assesses interface change and updates plan/ADR before Scheduler continues.

### Product-level escalation

User asked for local-only storage, but implementation requires cloud sync to meet a new requirement. Main Agent asks user; no silent change.

### Environment escalation

Build requires a missing compiler. Doctor can install it. In high-permission mode this may be announced and run if allowlisted; credentials/system-sensitive steps still ask.

### Policy escalation

Requested behavior would steal credentials or hide persistence. AirCoding refuses; no architecture workaround.

## 13. V1.0.0 Alpha Cut Line

V1.0.0 Alpha skeleton must implement:

1. ScopeImpactLevel contract.
2. Silent continue checks for workers.
3. Worker blocked report schema.
4. Architecture impact event route.
5. PermissionEngine route integration.
6. Scheduler escalation decision table.
7. Main Agent blocker/confirmation presentation.

Post-MVP:

```text
learned escalation classifier
risk scoring by code ownership/history
interactive impact visualization
automated ADR draft generation from repeated escalations
```
