# Pattern: skill-boundary-assist

When in-skill Methods already locate **where** the anomaly is, but **why** /
deeper cause needs more:

| Path | When | Action |
|------|------|--------|
| handoff `diag-*` | Still Dedicated infra diagnosis, different domain | Pass context; do not copy other domain playbooks |
| `agent-read-code` | Deeper logic in ClusterController / RegionalServer and **workspace has the code** | Open path/symbol; step card `method=agent-read-code` |
| `user-assist` | Needs cloud CLI, missing credentials, or no code access | Assist card → wait for paste → resume |

**Not** about `dedicated-cloud-ops`. Mutation handoff is separate.

## Efficiency

1. Exhaust in-skill Method evidence first.
2. If code is reachable for the next question → agent reads code; do not block
   the user.
3. Pause for user-assist only when the node is **hard** and requires user
   action (e.g. AWS CLI). Otherwise put assist in Next actions and continue
   parallel soft paths.

## User-assist card fields

| Field | Content |
|-------|---------|
| `blocked_on` | What is missing / why out of environment |
| `known_so_far` | Located anomaly + known parameters filled |
| `assist_type` | `cloud_cli` \| `read_code` \| `other_tool` |
| `action` | Copy-paste command or (only if no code) reading guide; fill known args; leave placeholders (e.g. `--profile <AWS_PROFILE>`) |
| `expect_back` | What output fragments to paste |
| `resume_hint` | Next intent after paste |

Use `assist_type=read_code` **only** when code is not reachable. If reachable,
agent reads; do not emit that assist type.

## After user paste

- New step: `method=user-paste`, `result`=excerpt.
- Continue per `resume_hint`.
- If hard node and no paste → final `uncertain`; keep assist card for later.

## Judgment

Emit `judgment=user-assist` when pausing on a hard external dependency.
