Skip to main content
skill CX Codex

lawyer-expert — Claude Code skill: what it does, how to install

Equips the agent with legal domain logic for contract drafting and regulatory compliance audits against GDPR or HIPAA.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add personamanagmentlayer/pcl --skill lawyer-expert -a claude-code
Open on GitHub

What lawyer-expert does

The skill provides legal domain expertise. It covers contract drafting alongside document templates like non-disclosure and service agreements. Checklists target compliance frameworks such as GDPR, HIPAA, CCPA, and SOX.

Reference Python classes define contract state machines (ContractStatus) with expiration alerts and signing workflows. It operates purely on local files. Because the guidance follows Anglo-American legal conventions, regional statutory rules require manual review.

What it helps with

  • generate standard non-disclosure agreement templates
  • audit system architecture against GDPR and HIPAA rules
  • design data models for contract lifecycle tracking
  • draft professional services agreements with payment terms

Example prompts for the agent

  • Generate a standard mutual NDA template for a 24-month term.
  • Assess our data storage design against GDPR and HIPAA compliance rules.
  • Implement a contract lifecycle state machine in Python with expiration alerts.

How to install lawyer-expert

1Skills CLI (Vercel)

npx skills add personamanagmentlayer/pcl --skill lawyer-expert -a claude-code

2Manually: put the files in place

~/.claude/skills/lawyer-expert/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/lawyer-expert/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about lawyer-expert

How to install lawyer-expert in Claude Code?

Run npx skills add personamanagmentlayer/pcl --skill lawyer-expert -a claude-code. You can also manually place the skill file at ~/.claude/skills/lawyer-expert/SKILL.md.

What does lawyer-expert do?

It instructs the agent on drafting agreements, building contract lifecycle workflows, and evaluating compliance with GDPR, CCPA, or HIPAA.

Which tools does lawyer-expert require?

The skill only uses Read, Write, and Edit tools to inspect and update repository files. It needs no external API keys.

Source text

SKILL.md · Apache-2.0
---
name: lawyer-expert
version: 1.1.0
description: >-
  Expert-level legal systems, contracts, compliance, and legal technology. Use when the
  user mentions legal, contracts, compliance, law, or legal tech, or when the task involves
  Legal Systems, Legal Technology, Compliance Frameworks, or Contract Management.
category: professional
tags: [legal, contracts, compliance, law, legal-tech]
allowed-tools:
  - Read
  - Write
  - Edit
---

# Lawyer Expert

Expert guidance for legal systems, contract law, regulatory compliance, and legal technology implementation.

## Core Concepts

### Legal Systems

- Contract law and drafting
- Intellectual property (IP)
- Corporate law
- Employment law
- Regulatory compliance
- Litigation and dispute resolution

### Legal Technology

- Contract lifecycle management (CLM)
- Legal document automation
- E-discovery systems
- Legal research platforms
- Case management software
- Compliance management systems

### Compliance Frameworks

- GDPR (General Data Protection Regulation)
- CCPA (California Consumer Privacy Act)
- SOX (Sarbanes-Oxley)
- HIPAA (Health Insurance Portability)
- Industry-specific regulations

## Contract Management

```python
from datetime import datetime, timedelta
from enum import Enum
from typing import List, Optional

class ContractStatus(Enum):
    DRAFT = "draft"
    UNDER_REVIEW = "under_review"
    NEGOTIATION = "negotiation"
    APPROVED = "approved"
    EXECUTED = "executed"
    EXPIRED = "expired"
    TERMINATED = "terminated"

class Contract:
    def __init__(self, title: str, parties: List[str],
                 effective_date: datetime, expiration_date: datetime):
        self.id = self.generate_contract_id()
        self.title = title
        self.parties = parties
        self.effective_date = effective_date
        self.expiration_date = expiration_date
        self.status = ContractStatus.DRAFT
        self.clauses = []
        self.amendments = []
        self.version = 1

    def add_clause(self, clause_type: str, content: str):
        """Add clause to contract"""
        self.clauses.append({
            "type": clause_type,
            "content": content,
            "added_date": datetime.now()
        })

    def add_amendment(self, amendment: str, reason: str):
        """Add amendment to contract"""
        self.amendments.append({
            "amendment": amendment,
            "reason": reason,
            "date": datetime.now(),
            "version": self.version + 1
        })
        self.version += 1

    def check_expiration(self) -> dict:
        """Check if contract is expiring soon"""
        days_until_expiry = (self.expiration_date - datetime.now()).days

        return {
            "expired": days_until_expiry < 0,
            "days_until_expiry": days_until_expiry,
            "requires_renewal": 0 < days_until_expiry < 90
        }

    def execute(self, signatures: List[dict]) -> dict:
        """Execute contract with signatures"""
        if len(signatures) < len(self.parties):
            raise ValueError("All parties must sign")

        self.status = ContractStatus.EXECUTED

        return {
            "contract_id": self.id,
            "executed_date": datetime.now(),
            "signatures": signatures,
            "status": self.status.value
        }
```

## Legal Document Templates

```python
class LegalDocumentGenerator:
    def generate_nda(self, disclosing_party: str, receiving_party: str,
                     term_months: int = 24) -> str:
        """Generate Non-Disclosure Agreement"""
        template = f"""
NON-DISCLOSURE AGREEMENT

This Non-Disclosure Agreement ("Agreement") is entered into as of {datetime.now().strftime('%B %d, %Y')}

BETWEEN:
{disclosing_party} ("Disclosing Party")
AND
{receiving_party} ("Receiving Party")

1. DEFINITION OF CONFIDENTIAL INFORMATION
The term "Confidential Information" means any and all information disclosed by the Disclosing Party...

2. OBLIGATIONS OF RECEIVING PARTY
The Receiving Party agrees to:
a) Hold Confidential Information in strict confidence
b) Not disclose to any third parties
c) Use solely for the purpose of evaluating potential business relationship

3. TERM
This Agreement shall remain in effect for {term_months} months from the date of execution.

4. RETURN OF MATERIALS
Upon termination, all Confidential Information must be returned or destroyed.

_________________________    _________________________
{disclosing_party}           {receiving_party}
Date: _______________        Date: _______________
"""
        return template

    def generate_service_agreement(self, provider: str, client: str,
                                   services: List[str], fee: float) -> str:
        """Generate Service Agreement"""
        services_list = "\n".join([f"  - {s}" for s in services])

        template = f"""
PROFESSIONAL SERVICES AGREEMENT

Date: {datetime.now().strftime('%B %d, %Y')}

PARTIES:
Service Provider: {provider}
Client: {client}

1. SERVICES
Provider agrees to perform the following services:
{services_list}

2. COMPENSATION
Client agrees to pay ${fee:,.2f} for the services rendered.

3. PAYMENT TERMS
Payment due within 30 days of invoice date.

4. TERM AND TERMINATION
Either party may terminate with 30 days written notice.

5. CONFIDENTIALITY
Both parties agree to maintain confidentiality of proprietary information.

6. LIMITATION OF LIABILITY
Provider's liability limited to the amount of fees paid.

SIGNATURES:
_________________________    _________________________
{provider}                   {client}
"""
        return template
```

## Compliance Management

```python
class ComplianceManager:
    def __init__(self):
        self.regulations = []
        self.compliance_checks = []

    def assess_gdpr_compliance(self, system_data: dict) -> dict:
        """Assess GDPR compliance"""
        checks = {
            "data_inventory": self.check_data_inventory(system_data),
            "consent_management": self.check_consent_mechanisms(system_data),
            "data_subject_rights": self.check_dsr_processes(system_data),
            "data_protection": self.check_encryption(system_data),
            "breach_notification": self.check_breach_procedures(system_data),
            "dpo_appointed": system_data.get("dpo_appointed", False),
            "privacy_policy": self.check_privacy_policy(system_data)
        }

        compliance_score = sum(checks.values()) / len(checks) * 100

        return {
            "compliant": compliance_score >= 90,
            "score": compliance_score,
            "checks": checks,
            "recommendations": self.generate_recommendations(checks)
        }

    def assess_hipaa_compliance(self, healthcare_system: dict) -> dict:
        """Assess HIPAA compliance for healthcare systems"""
        checks = {
            "access_controls": self.check_access_controls(healthcare_system),
            "audit_logs": self.check_audit_logging(healthcare_system),
            "encryption": self.check_phi_encryption(healthcare_system),
            "baa_executed": healthcare_system.get("baa_signed", False),
            "training_completed": self.check_training(healthcare_system),
            "risk_assessment": self.check_risk_assessment(healthcare_system)
        }

        return {
            "compliant": all(checks.values()),
            "checks": checks,
            "violations": [k for k, v in checks.items() if not v]
        }

    def generate_privacy_policy(self, company: str, data_types: List[str]) -> str:
        """Generate privacy policy template"""
        data_collected = "\n".join([f"  - {dt}" for dt in data_types])

        return f"""
PRIVACY POLICY

Last Updated: {datetime.now().strftime('%B %d, %Y')}

{company} ("we", "our", "us") respects your privacy.

1. INFORMATION WE COLLECT
We collect the following types of information:
{data_collected}

2. HOW WE USE YOUR INFORMATION
We use your information to provide and improve our services.

3. DATA SHARING
We do not sell your personal information to third parties.

4. YOUR RIGHTS
You have the right to:
  - Access your personal data
  - Request correction or deletion
  - Object to processing
  - Data portability

5. SECURITY
We implement appropriate technical and organizational measures.

6. CONTACT US
For privacy inquiries: privacy@{company.lower().replace(' ', '')}.com
"""
```

## Best Practices

### Contract Management

- Use version control for all contract documents
- Implement electronic signature workflows
- Set up automated expiration alerts (90/60/30 days)
- Maintain centralized contract repository
- Regular contract audits and reviews
- Clear approval workflows
- Standardized clause libraries

### Compliance

- Regular compliance assessments
- Document all compliance efforts
- Implement privacy by design
- Maintain audit trails
- Regular staff training
- Incident response procedures
- Third-party vendor assessments

### Legal Technology

- Automate routine legal tasks
- Use AI for contract review and analysis
- Implement document management systems
- Maintain secure client portals
- Regular security audits
- Data backup and disaster recovery

## Anti-Patterns

❌ No contract version control
❌ Manual tracking of contract deadlines
❌ Storing sensitive data unencrypted
❌ No compliance documentation
❌ Ignoring data subject rights requests
❌ No legal review of automated documents
❌ Inadequate audit trails

## Resources

- GDPR Official Text: https://gdpr.eu/
- CCPA Information: https://oag.ca.gov/privacy/ccpa
- Legal Tech Resources: https://www.legaltechnology.com/
- Contract Standards: https://www.iaccm.com/

© personamanagmentlayer · Apache-2.0 · personamanagmentlayer/pcl

Similar skills

All skills for Finance and business →

From the same set25

gcp-expert A skill that hands your agent working GCP examples: Cloud Functions, BigQuery, Firestore, Pub/Sub and gcloud commands. Useful when the code targets Google Cloud. CX Codex +1 547installs ansible-expert Helps write Ansible playbooks, organize inventory files, and craft Jinja2 templates. Useful for server configuration and infrastructure automation. CX Codex +1 547installs retail-expert This skill gives an agent retail-system context for POS, inventory, e-commerce, CRM, and omnichannel work. Use it for design and analysis tasks. CX Codex +1 526installs argocd-expert A skill that turns your agent into an ArgoCD operator: GitOps deploys, app sync, AppProject and ApplicationSet. Useful when your deployment lives in Git. CX Codex +1 509installs automotive-expert A skill that gives your agent automotive domain knowledge: connected vehicles, telemetry, ADAS, OBD-II diagnostics. Useful when the project touches fleet software or in-vehicle systems. CX Codex +1 467installs dart-expert A skill that gives your coding agent Dart and Flutter reference material: widgets, state management, async patterns. CX Codex +1 462installs nginx-expert Generates production-ready Nginx configurations for reverse proxy, load balancing, caching, and TLS termination. Useful when setting up or tuning a web server. CX Codex +1 437installs education-expert Gives your agent a working frame for LMS design, assessment and learning standards. Useful when you build a course platform. CX Codex +1 428installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor