telecommunications-expert — скилл для Claude Code: телеком, 5G
Скилл для агента, который разбирается в телеком-инфраструктуре: OSS/BSS, 5G, SDN/NFV, протоколы и тарификация. Пригодится, когда нужно спроектировать систему или посчитать биллинг.
npx skills add personamanagmentlayer/pcl --skill telecommunications-expert -a claude-codeЧто делает telecommunications-expert
Скилл добавляет агенту экспертизу по телеком-системам. Внутри — разделы про OSS и BSS, системы управления сетью, провижининг, инвентаризацию, сервис-ассуранс. Отдельно разобраны сетевые технологии: 5G/4G/LTE, оптика, SDN, NFV, edge-вычисления, IoT и спутниковая связь. Есть блок про стандарты — 3GPP, TM Forum Frameworx, ETSI, ITU-T, и протоколы SIP, Diameter, SNMP.
Практическая часть — пример системы биллинга на Python. Там описаны классы подписчика, тарифного плана и записи об использовании, метод обработки использования с проверкой остатка пакета и начислением сверх лимита, генерация месячного счёта с налогом и датой оплаты. Скилл умеет читать, писать и править файлы — это его разрешённые инструменты.
Учтите: код в примере опирается на Decimal, dataclass и datetime, а часть исходного текста обрезана, поэтому полный набор зависимостей по нему не проверить. Если в проекте уже есть своя модель тарификации, пример придётся адаптировать, а не копировать целиком.
Какие задачи решает
- разложить телеком-задачу на OSS и BSS-компоненты
- описать обработку использования с начислением сверх пакета
- сгенерировать месячный счёт с налогом и сроком оплаты
- свериться со стандартами 3GPP или TM Forum при проектировании
- выбрать протокол для управления сетью — SNMP, Diameter или SIP
Примеры запросов агенту
- помоги спроектировать биллинг для тарифов с пакетами данных и голоса
- какие компоненты OSS и BSS нужны для провижининга услуг
- проверь мою схему тарификации на соответствие стандартам TM Forum
Как установить telecommunications-expert
1Через Skills CLI (Vercel)
npx skills add personamanagmentlayer/pcl --skill telecommunications-expert -a claude-code2Вручную: положить файлы
~/.claude/skills/telecommunications-expert/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/telecommunications-expert/
1Через Skills CLI (Vercel)
npx skills add personamanagmentlayer/pcl --skill telecommunications-expert -a codex2Вручную: положить файлы
.agents/skills/telecommunications-expert/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add personamanagmentlayer/pcl --skill telecommunications-expert -a cursor2Вручную: положить файлы
.cursor/skills/telecommunications-expert/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install personamanagmentlayer/pcl telecommunications-expert2Вручную: положить файлы
.github/skills/telecommunications-expert/SKILL.md1Через Skills CLI (Vercel)
npx skills add personamanagmentlayer/pcl --skill telecommunications-expert -a gemini-cli2Командой платформы
gemini skills install https://github.com/personamanagmentlayer/pcl --path stdlib/domains/telecommunications-expertВручную: положить файлы
.devin/skills/telecommunications-expert/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add personamanagmentlayer/pcl --skill telecommunications-expert -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о telecommunications-expert
Как установить telecommunications-expert в Claude?
Выполните npx skills add personamanagmentlayer/pcl --skill telecommunications-expert -a claude-code. После этого скилл окажется в ~/.claude/skills/telecommunications-expert/SKILL.md.
Что делает telecommunications-expert?
Даёт агенту экспертизу по телеком-системам: OSS/BSS, управление сетью, 5G, SDN/NFV, стандарты и протоколы. Плюс пример системы биллинга на Python.
На каких платформах работает скилл?
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI и OpenCode. Для каждой платформы своя команда установки.
Исходный текст
SKILL.md · Apache-2.0
---
name: telecommunications-expert
version: 1.1.0
description: >-
Expert-level telecommunications systems, network management, billing, 5G, SDN, and
telecom infrastructure. Use when the user mentions telecom, networking, 5G, billing, OSS,
or BSS, or when the task involves Telecommunications Systems, Network Technologies,
Standards and Protocols, or Network Management.
category: domains
tags: [telecom, networking, 5g, billing, oss, bss]
allowed-tools:
- Read
- Write
- Edit
---
# Telecommunications Expert
Expert guidance for telecommunications systems, network management, billing systems, 5G networks, SDN/NFV, and telecom infrastructure management.
## Core Concepts
### Telecommunications Systems
- Operations Support Systems (OSS)
- Business Support Systems (BSS)
- Network Management Systems (NMS)
- Service Assurance
- Inventory Management
- Provisioning systems
- Customer care platforms
### Network Technologies
- 5G/4G/LTE networks
- Fiber optic networks
- Software-Defined Networking (SDN)
- Network Functions Virtualization (NFV)
- Edge computing
- IoT connectivity
- Satellite communications
### Standards and Protocols
- 3GPP standards
- TM Forum Frameworx
- ETSI specifications
- ITU-T recommendations
- SIP (Session Initiation Protocol)
- Diameter protocol
- SNMP for network management
## Billing System
```python
from decimal import Decimal
@dataclass
class Subscriber:
"""Telecom subscriber"""
subscriber_id: str
account_number: str
name: str
phone_number: str
email: str
address: dict
plan_id: str
status: str # 'active', 'suspended', 'terminated'
activation_date: datetime
@dataclass
class ServicePlan:
"""Service plan/package"""
plan_id: str
name: str
description: str
monthly_fee: Decimal
data_allowance_gb: float
voice_minutes: int
sms_count: int
overage_rates: dict
@dataclass
class UsageRecord:
"""Usage record for billing"""
record_id: str
subscriber_id: str
usage_type: str # 'voice', 'sms', 'data'
timestamp: datetime
quantity: float
unit: str
destination: Optional[str]
charged: bool
class BillingSystem:
"""Telecom billing and charging system"""
def __init__(self):
self.subscribers = {}
self.service_plans = {}
self.usage_records = []
self.invoices = []
def process_usage(self, usage: UsageRecord) -> dict:
"""Process usage record for charging"""
subscriber = self.subscribers.get(usage.subscriber_id)
if not subscriber:
return {'error': 'Subscriber not found'}
if subscriber.status != 'active':
return {'error': 'Subscriber not active'}
plan = self.service_plans.get(subscriber.plan_id)
if not plan:
return {'error': 'Service plan not found'}
# Check if usage is within plan allowance
current_usage = self._get_current_month_usage(usage.subscriber_id, usage.usage_type)
charge = Decimal('0')
if usage.usage_type == 'data':
if current_usage > plan.data_allowance_gb:
# Overage charges
overage_gb = usage.quantity
charge = Decimal(str(overage_gb)) * plan.overage_rates['data_per_gb']
elif usage.usage_type == 'voice':
if current_usage > plan.voice_minutes:
# Overage charges
overage_minutes = usage.quantity
charge = Decimal(str(overage_minutes)) * plan.overage_rates['voice_per_minute']
elif usage.usage_type == 'sms':
if current_usage > plan.sms_count:
# Overage charges
overage_sms = usage.quantity
charge = Decimal(str(overage_sms)) * plan.overage_rates['sms_per_message']
usage.charged = True
self.usage_records.append(usage)
return {
'subscriber_id': usage.subscriber_id,
'usage_type': usage.usage_type,
'quantity': usage.quantity,
'charge': float(charge),
'within_allowance': charge == 0
}
def generate_invoice(self, subscriber_id: str, billing_period: tuple) -> dict:
"""Generate monthly invoice"""
subscriber = self.subscribers.get(subscriber_id)
if not subscriber:
return {'error': 'Subscriber not found'}
plan = self.service_plans.get(subscriber.plan_id)
start_date, end_date = billing_period
# Base charges
monthly_fee = plan.monthly_fee
# Usage charges
period_usage = [
u for u in self.usage_records
if u.subscriber_id == subscriber_id and
start_date <= u.timestamp <= end_date
]
usage_charges = self._calculate_usage_charges(period_usage, plan)
# Taxes (simplified)
subtotal = monthly_fee + usage_charges['total']
tax_rate = Decimal('0.10') # 10%
taxes = subtotal * tax_rate
total = subtotal + taxes
invoice = {
'invoice_id': self._generate_invoice_id(),
'subscriber_id': subscriber_id,
'account_number': subscriber.account_number,
'billing_period': {
'start': start_date.isoformat(),
'end': end_date.isoformat()
},
'charges': {
'monthly_fee': float(monthly_fee),
'data_charges': float(usage_charges['data']),
'voice_charges': float(usage_charges['voice']),
'sms_charges': float(usage_charges['sms']),
'other_charges': float(usage_charges['other'])
},
'subtotal': float(subtotal),
'taxes': float(taxes),
'total': float(total),
'due_date': (end_date + timedelta(days=15)).isoformat()
}
self.invoices.append(invoice)
return invoice
def _get_current_month_usage(self, subscriber_id: str, usage_type: str) -> float:
"""Get current month usage for subscriber"""
current_month_start = datetime.now().replace(day=1, hour=0, minute=0, second=0)
usage = [
u for u in self.usage_records
if u.subscriber_id == subscriber_id and
u.usage_type == usage_type and
u.timestamp >= current_month_start
]
total = sum(u.quantity for u in usage)
return total
def _calculate_usage_charges(self,
usage_records: List[UsageRecord],
plan: ServicePlan) -> dict:
"""Calculate usage charges"""
charges = {
'data': Decimal('0'),
'voice': Decimal('0'),
'sms': Decimal('0'),
'other': Decimal('0'),
'total': Decimal('0')
}
# Group usage by type
data_usage = sum(u.quantity for u in usage_records if u.usage_type == 'data')
voice_usage = sum(u.quantity for u in usage_records if u.usage_type == 'voice')
sms_usage = sum(u.quantity for u in usage_records if u.usage_type == 'sms')
# Calculate overage charges
if data_usage > plan.data_allowance_gb:
overage = data_usage - plan.data_allowance_gb
charges['data'] = Decimal(str(overage)) * plan.overage_rates['data_per_gb']
if voice_usage > plan.voice_minutes:
overage = voice_usage - plan.voice_minutes
charges['voice'] = Decimal(str(overage)) * plan.overage_rates['voice_per_minute']
if sms_usage > plan.sms_count:
overage = sms_usage - plan.sms_count
charges['sms'] = Decimal(str(overage)) * plan.overage_rates['sms_per_message']
charges['total'] = sum([charges['data'], charges['voice'], charges['sms'], charges['other']])
return charges
def _generate_invoice_id(self) -> str:
import uuid
return f"INV-{uuid.uuid4().hex[:10].upper()}"
```
## 5G Network Management
```python
class FiveGNetworkManagement:
"""5G network management and optimization"""
def __init__(self):
self.base_stations = {}
self.network_slices = {}
def configure_network_slice(self, slice_config: dict) -> dict:
"""Configure 5G network slice"""
slice_id = self._generate_slice_id()
network_slice = {
'slice_id': slice_id,
'name': slice_config['name'],
'slice_type': slice_config['slice_type'], # 'eMBB', 'URLLC', 'mMTC'
'resources': {
'bandwidth_mhz': slice_config['bandwidth'],
'latency_ms': slice_config['max_latency'],
'reliability': slice_config['reliability']
},
'qos_profile': slice_config['qos_profile'],
'status': 'active'
}
self.network_slices[slice_id] = network_slice
# Allocate resources
self._allocate_slice_resources(network_slice)
return {
'slice_id': slice_id,
'status': 'configured',
'resources_allocated': True
}
def optimize_beamforming(self, base_station_id: str, user_positions: List[tuple]) -> dict:
"""Optimize massive MIMO beamforming"""
# Simplified beamforming optimization
# In production, would use complex signal processing algorithms
num_users = len(user_positions)
num_antennas = 64 # Massive MIMO array
# Calculate beam directions
beam_directions = []
for position in user_positions:
angle = self._calculate_beam_angle(position)
beam_directions.append(angle)
# Calculate precoding matrix (simplified)
# In production, would use ZF or MMSE precoding
return {
'base_station_id': base_station_id,
'num_users': num_users,
'num_antennas': num_antennas,
'beam_directions': beam_directions,
'expected_throughput_improvement': 2.5 # 2.5x improvement
}
def manage_handover(self, ue_id: str, source_cell: str, target_cell: str) -> dict:
"""Manage 5G handover"""
# Measure signal quality
source_rsrp = self._measure_rsrp(ue_id, source_cell)
target_rsrp = self._measure_rsrp(ue_id, target_cell)
# Decision criteria
handover_threshold = 3 # dB
if target_rsrp > source_rsrp + handover_threshold:
# Initiate handover
result = self._execute_handover(ue_id, source_cell, target_cell)
return {
'ue_id': ue_id,
'handover': 'executed',
'source_cell': source_cell,
'target_cell': target_cell,
'source_rsrp': source_rsrp,
'target_rsrp': target_rsrp
}
else:
return {
'ue_id': ue_id,
'handover': 'not_required',
'source_rsrp': source_rsrp,
'target_rsrp': target_rsrp
}
def _allocate_slice_resources(self, network_slice: dict):
"""Allocate network resources for slice"""
# Implementation would configure SDN/NFV infrastructure
pass
def _calculate_beam_angle(self, position: tuple) -> float:
"""Calculate beam angle for position"""
# Simplified calculation
return 45.0 # degrees
def _measure_rsrp(self, ue_id: str, cell_id: str) -> float:
"""Measure Reference Signal Received Power"""
# Implementation would get actual RSRP from network
return np.random.uniform(-110, -70) # dBm
def _execute_handover(self, ue_id: str, source: str, target: str) -> bool:
"""Execute handover procedure"""
# Implementation would perform actual handover
return True
def _generate_slice_id(self) -> str:
import uuid
return f"SLICE-{uuid.uuid4().hex[:8].upper()}"
```
## Best Practices
### Network Management
- Implement proactive monitoring
- Use predictive analytics for fault detection
- Automate routine tasks
- Maintain network documentation
- Implement configuration management
- Use centralized logging
- Monitor key performance indicators (KPIs)
### Billing Systems
- Ensure real-time charging
- Implement usage mediation
- Support multiple rating models
- Provide transparent billing
- Enable self-service portal
- Automate invoice generation
- Implement payment processing
### 5G Networks
- Implement network slicing
- Optimize for low latency
- Use edge computing
- Enable dynamic resource allocation
- Support massive IoT connectivity
- Implement security measures
- Monitor QoS metrics
### Service Assurance
- Track service level agreements (SLAs)
- Implement automated testing
- Monitor customer experience
- Provide real-time diagnostics
- Enable root cause analysis
- Track mean time to repair (MTTR)
- Implement service quality metrics
## Anti-Patterns
❌ Reactive network management only
❌ Manual provisioning processes
❌ No capacity planning
❌ Inaccurate billing
❌ Poor alarm management (alarm storms)
❌ No network redundancy
❌ Ignoring customer experience metrics
❌ Manual configuration changes
❌ No disaster recovery plan
## Reference Documentation
Detailed material lives alongside this skill and is read on demand:
- [Network Management System](references/NETWORK_MANAGEMENT_SYSTEM.md)
## Resources
- TM Forum: https://www.tmforum.org/
- 3GPP: https://www.3gpp.org/
- ETSI: https://www.etsi.org/
- ITU-T: https://www.itu.int/
- GSMA: https://www.gsma.com/
- ONF (Open Networking Foundation): https://opennetworking.org/
- O-RAN Alliance: https://www.o-ran.org/
© personamanagmentlayer · Apache-2.0 · personamanagmentlayer/pcl