npx skills add https://github.com/personamanagmentlayer/pcl --skill lawyer-expert为法律体系、合同法、法规遵从性以及法律技术实施提供专家指导。
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
}
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
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
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
"""
❌ 无合同版本控制 ❌ 手动跟踪合同截止日期 ❌ 存储未加密的敏感数据 ❌ 无合规文档 ❌ 忽视数据主体权利请求 ❌ 未对自动化文档进行法律审查 ❌ 审计跟踪不充分
每周安装量
113
代码仓库
GitHub 星标数
11
首次出现
2026年1月24日
安全审计
安装于
opencode100
codex99
gemini-cli96
github-copilot90
cursor90
kimi-cli86
Expert guidance for legal systems, contract law, regulatory compliance, and legal technology implementation.
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
}
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
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
"""
❌ 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
Weekly Installs
113
Repository
GitHub Stars
11
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode100
codex99
gemini-cli96
github-copilot90
cursor90
kimi-cli86
Skills CLI 使用指南:AI Agent 技能包管理器安装与管理教程
43,100 周安装
业务逻辑测试审计器:自动化检测框架库测试,提升测试代码质量
224 周安装
使用 Remotion 创建 Kurzgesagt 风格教育视频 - 专业视频制作技能指南
221 周安装
Neon Drizzle 集成指南:为 Neon 数据库设置 Drizzle ORM 的完整解决方案
225 周安装
Elasticsearch安全故障排除指南:诊断401/403错误、TLS证书、API密钥和许可证问题
219 周安装
学术论文LaTeX模板库:Nature/Science/IEEE期刊会议海报申请书模板
224 周安装
应用程序性能优化全栈指南:从分析、数据库到前端与CDN的端到端优化
227 周安装