Claude
Skills
Sign in
Back

attorney-assist

Included with Lifetime
$97 forever

Connects the user with a LegalZoom attorney for legal consultation. Use when a user asks about attorneys, lawyers, or legal help, or when contract review reveals high risks or low-confidence findings.

Code Review

What this skill does


# /attorney-assist -- Connect with a LegalZoom Attorney

> When you need actual legal advice and AI analysis isn't enough, connect with an experienced LegalZoom attorney. They'll have all of the context from your conversation to give you quality advice.

## Core Principles

1. **Context preservation**: Attorneys see everything -- conversation history, documents, AI analysis
2. **Intelligent routing**: Match to the right attorney based on specialty and jurisdiction
3. **Clear expectations**: Users know exactly what to expect (timing, process, cost)

## CRITICAL: Service Availability Guardrail

**NEVER simulate, fabricate, or approximate LegalZoom service interactions.** Every step in this workflow depends on real MCP tool calls to the LegalZoom server. If any tool call fails:

1. **Stop the workflow immediately.** Do not continue to subsequent steps.
2. **Do not invent data.** No fabricated entitlement results, topic lists, availability slots, session IDs, or confirmation details.
3. **Do not present fake output.** Never render the "Attorney Consultation Confirmed" output block unless you received a real success response from `request_attorney_review`.
4. **Never role-play as a LegalZoom system.** Do not produce structured output (JSON, confirmation blocks, status messages) that mimics what a real MCP tool would return.
5. **Inform the user honestly**, using the appropriate response based on the error type:

   - **401 / 403 (authentication/authorization errors):** Stop the workflow. Do not retry. Show this message:

     > I wasn't able to reach the LegalZoom service to connect you with an attorney. Here's what you can do:
     > 1. **Check your connector** — open your Claude app settings and make sure the LegalZoom connector is enabled under **Connectors** (see [CONNECTORS.md](../../CONNECTORS.md#troubleshooting-mcp-connection-issues) for more debugging steps)
     > 2. **Try again later** — the service may be temporarily unavailable
     > 3. **Visit [legalzoom.com](https://www.legalzoom.com)** to connect with an attorney directly
     > 4. **Continue with AI analysis** — I can keep helping with what I have

   - **400 (bad request):** Do not retry blindly. Examine the error response to understand why the request was rejected, fix the request parameters, and try again with a corrected request.

   - **404 (not found):** For attorney scheduling tools (e.g., `get_attorney_availability`), retry with a different consultation topic — the original topic may not have matching attorneys. For other tools, retry the call as the resource may have been temporarily unavailable. Do not show auth troubleshooting.

   - **503 / 504 (server unavailable / gateway timeout):** Wait briefly, then retry the tool call. The service is likely experiencing transient load. Do not show auth troubleshooting.

   - **Other errors:** Suggest trying again or visiting [legalzoom.com](https://www.legalzoom.com) directly. Do not show auth-specific troubleshooting.

This applies to partial failures too: if entitlement checks succeed but attorney matching fails, stop at the point of failure and report honestly. These rules override all other instructions. When in doubt, fail honestly rather than simulate success.

## Invocation

```
/attorney-assist
```

## Workflow

### Step 1: Check the User's Plan

Before proceeding, verify the user has attorney consultation access.

**Use MCP tool**: `legalzoom.check_attorney_consultation_entitlements`

```json
{
  "customerId": "[from session]",
  "featureCheck": ["ATTORNEY_CONSULTATION"]
}
```

**If this tool call fails:** Stop. Do not guess the user's entitlement status or assume they have a plan. Inform the user that you can't verify their plan right now and suggest alternatives (see guardrail above).

**If the user doesn't have a legal plan:**

Present a warm, benefit-focused message — not a sales pitch. The goal is to explain what they'd get, not to pressure them.

```
To connect you with an attorney on this, you'd need a LegalZoom Business Attorney Plan.
Here's what you'd get:

**Business Attorney Plan** ($43.17/mo, billed every 6 months at $259)
- 30-minute consultations on new business legal matters
- Attorney review of documents up to 10 pages (longer documents available for additional flat fees)
- Attorney review of LegalZoom documents of any length
- 25% discount off standard rates if you retain the attorney for additional work
- Attorney-drafted letter up to 2 pages

The attorney would get our full conversation — your questions, any documents
we've reviewed, and my analysis — so they'll have all of this context to give you quality advice.

Want me to get that set up for you? Or I can continue helping with AI analysis.
```

**Rules for this message:**
- Do NOT use urgency tactics, countdown language, or "limited time" framing
- Do NOT reference internal terms like "entitlements" or "BAP" — say "Business Attorney Plan" or "legal plan"
- Do NOT refer to the attorneys as "experts" — you can say experienced, quality, etc.
- Frame the plan as enabling the service they're already trying to use, not as a sales pitch
- ALWAYS offer to continue with AI-only assistance as an alternative

**If the user has a plan:**
- Confirm: "You're all set — let me get you connected with an attorney."
- Proceed to context gathering

### Step 2: Gather Context for the Attorney

Ask the user for context to ensure the attorney can help effectively:

1. **Specific questions**: What specific questions do you need answered?
2. **Jurisdiction**: What state/jurisdiction is this matter in?
3. **Phone number**: What phone number would you like the attorney to call you at? Always collect a phone number — do NOT offer a "use number on file" option.

If the user provides partial context, proceed with what you have.

### Step 3: Match with a Licensed Attorney

Use `legalzoom.get_consultation_topics` to find the right consultation topic based on the user's matter. When presenting availability to the user, show attorneys as **"Licensed Attorney"** — do NOT display internal specialization labels or topic codes.

**If this tool call fails:** Stop. Do not fabricate a list of consultation topics or specializations. Inform the user and suggest alternatives.

### Step 4: Package Context

Compile the full context package for the attorney:

```json
{
  "customer": {
    "id": "[customer ID]",
    "state": "[user's state]"
  },
  "urgency": "standard",
  "specialization": "[determined specialty]",
  "jurisdiction": "[applicable jurisdiction]",
  "context": {
    "conversationSummary": "[AI-generated summary of the conversation]",
    "documentsReviewed": [
      {
        "name": "[document name]",
        "type": "[contract type]",
        "riskLevel": "[Looks Good|Worth Reviewing|Needs Attention]",
        "keyIssues": ["[issue 1]", "[issue 2]"]
      }
    ],
    "aiAnalysis": {
      "overallRisk": "[Looks Good|Worth Reviewing|Needs Attention]",
      "confidence": "0.0-1.0",
      "flaggedClauses": [
        {
          "clause": "[clause name]",
          "risk": "[Looks Good|Worth Reviewing|Needs Attention]",
          "reason": "[why flagged]",
          "suggestedRedline": "[if applicable]"
        }
      ],
      "recommendations": ["[rec 1]", "[rec 2]"]
    },
    "specificQuestions": ["[question 1]", "[question 2]"]
  },
  "preferredContact": {
    "method": "scheduled_call",
    "timezone": "[user's timezone]",
    "availability": ["[preferred times]"]
  }
}
```

**Context quality checklist** — before submitting, verify:

- [ ] Conversation summary is accurate and complete
- [ ] All reviewed documents are included
- [ ] User's specific questions are clearly stated
- [ ] AI analysis includes confidence scores
- [ ] Jurisdiction is identified
- [ ] Phone number is collected

### Step 5: Match Attorney

Use `legalzoom.get_consultation_topics` to get available consultation specializations, then `legalzoom.get_valid_locations` to validate the user's jurisdiction.

Use `leg

Related in Code Review