Claude-skill-registry cathodic-protection
Expert Electrical Engineer specializing in cathodic protection (CP) systems
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/cathodic-protection" ~/.claude/skills/majiayu000-claude-skill-registry-cathodic-protection && rm -rf "$T"
manifest:
skills/data/cathodic-protection/SKILL.mdtags
source content
Cathodic Protection Skill
Expert guidance on cathodic protection (CP) systems for offshore platforms, subsea pipelines, storage tanks, and onshore oil and gas facilities.
Version Metadata
version: 1.0.0 python_min_version: '3.10' compatibility: tested_python: - '3.10' - '3.11' - '3.12' - '3.13' os: - Windows - Linux - macOS
Changelog
[1.0.0] - 2026-01-07
Added:
- Initial version metadata and dependency management
- Semantic versioning support
- Compatibility information for Python 3.10-3.13
Changed:
- Enhanced skill documentation structure
When to Use
- CP system design (SACP and ICCP)
- Anode calculation and spacing
- Transformer rectifier unit sizing
- Pipeline CP design
- Coating breakdown assessment
- AC/DC interference analysis
- CP monitoring system design
- NACE/ISO/DNV compliance
Domain Expertise
Cathodic Protection Systems
| System Type | Applications |
|---|---|
| SACP (Sacrificial Anode) | Offshore structures, pipelines, short-term protection |
| ICCP (Impressed Current) | Long pipelines, complex structures, retrofit |
| Hybrid | Combined systems for optimal protection |
Anode Materials
| Material | Application | Environment |
|---|---|---|
| Al-Zn-In | Marine, seawater | Offshore, subsea |
| Magnesium | Soil, freshwater | Onshore pipelines |
| MMO (Mixed Metal Oxide) | ICCP anodes | All environments |
| Graphite | Deep well anodes | Soil, groundbeds |
| High-silicon iron | Groundbeds | Soil |
Industry Standards
| Standard | Scope |
|---|---|
| NACE SP0169 | External corrosion control of pipelines |
| NACE SP0177 | Mitigation of AC and lightning effects |
| NACE SP0286 | Electrical isolation of CP systems |
| NACE RP0176 | Corrosion control of steel fixed offshore platforms |
| ISO 15589-1 | Pipelines - Onshore |
| ISO 15589-2 | Pipelines - Offshore |
| DNV-RP-B401 | Cathodic protection design |
| API RP 651 | Cathodic protection of aboveground tanks |
| API RP 1632 | Cathodic protection of underground tanks |
CP Design Calculations
Anode Mass Calculation
from digitalmodel.modules.cp import AnodeDesign # Initialize anode designer anode = AnodeDesign() # Calculate required anode mass result = anode.calculate_mass( structure={ "surface_area": 5000, # m2 "coating_efficiency": 0.95, # 95% coating "bare_area": 250 # m2 (5% of total) }, environment={ "resistivity": 0.25, # ohm-m (seawater) "temperature": 15, # Celsius "water_depth": 100 # m }, design={ "current_density": 0.03, # A/m2 (mean) "design_life": 25, # years "utilization_factor": 0.85, "anode_material": "Al-Zn-In" } ) print(f"Total current required: {result['current_required']:.2f} A") print(f"Total anode mass: {result['mass_required']:.0f} kg") print(f"Number of anodes: {result['anode_count']}") print(f"Anode spacing: {result['spacing']:.1f} m")
Pipeline Attenuation
from digitalmodel.modules.cp import PipelineCP # Initialize pipeline CP designer pipeline = PipelineCP() # Calculate attenuation and CP spread result = pipeline.calculate_attenuation( pipeline={ "length": 50000, # m (50 km) "diameter": 0.914, # m (36 inch) "wall_thickness": 0.0254, # m (1 inch) "coating_type": "FBE", "coating_resistance": 10000 # ohm-m2 }, soil={ "resistivity": 50, # ohm-m "type": "clay" }, cp_stations={ "type": "ICCP", "voltage": -1.1, # V vs Cu/CuSO4 "locations": [0, 25000, 50000] # m } ) print(f"Attenuation constant: {result['attenuation_constant']:.6f} 1/m") print(f"Effective CP spread: {result['effective_spread']:.0f} m") print(f"Minimum potential: {result['min_potential']:.3f} V") print(f"Protection criteria met: {result['criteria_met']}")
Coating Breakdown Factor
from digitalmodel.modules.cp import CoatingAnalysis coating = CoatingAnalysis() # Calculate coating breakdown factor cbf = coating.calculate_breakdown_factor( coating_type="3LPE", initial_quality=0.99, # 99% initial efficiency design_life=25, # years temperature=65, # Celsius (operating) method="DNV-RP-F103" # or ISO 15589 ) print(f"Initial CBF: {cbf['initial']:.4f}") print(f"Mean CBF: {cbf['mean']:.4f}") print(f"Final CBF: {cbf['final']:.4f}") print(f"Bare area at design life: {cbf['bare_area_percentage']:.1f}%")
ICCP System Design
Transformer Rectifier Sizing
from digitalmodel.modules.cp import ICCPDesign iccp = ICCPDesign() # Size transformer rectifier unit tru = iccp.size_tru( current_requirement={ "initial": 50, # A "mean": 75, # A "final": 100 # A }, anode_string={ "resistance": 0.5, # ohm "count": 10, "type": "MMO" }, cable={ "length": 500, # m "type": "XLPE", "size": 25 # mm2 }, safety_factor=1.25 ) print(f"TRU Rating: {tru['power_rating']:.1f} kW") print(f"Output Voltage: {tru['voltage']:.1f} V DC") print(f"Output Current: {tru['current']:.1f} A") print(f"Efficiency: {tru['efficiency']:.1f}%")
Deep Well Anode Design
# Design deep well anode groundbed groundbed = iccp.design_groundbed( type="deep_well", soil_resistivity=100, # ohm-m current_output=50, # A design_life=30, # years anode_material="graphite" ) print(f"Well depth: {groundbed['depth']:.1f} m") print(f"Anode count: {groundbed['anode_count']}") print(f"Anode length: {groundbed['anode_length']:.1f} m") print(f"Groundbed resistance: {groundbed['resistance']:.3f} ohm")
Monitoring and Assessment
Remote Monitoring System
from digitalmodel.modules.cp import CPMonitoring monitoring = CPMonitoring() # Design monitoring system system = monitoring.design_system( structure_type="offshore_platform", monitoring_points=25, parameters=[ "potential", "current", "temperature", "reference_electrode_check" ], communication="satellite", data_interval=3600 # seconds ) print(f"Monitoring units: {system['unit_count']}") print(f"Reference electrodes: {system['reference_electrodes']}") print(f"Communication: {system['communication_type']}")
Survey Analysis
from digitalmodel.modules.cp import SurveyAnalysis survey = SurveyAnalysis() # Analyze CIPS/CIS survey data analysis = survey.analyze_cips( data_file="pipeline_survey.csv", criteria={ "on_potential": -0.85, # V vs Cu/CuSO4 "off_potential": -0.85, "100mV_shift": True } ) print(f"Protected length: {analysis['protected_percentage']:.1f}%") print(f"Under-protected sections: {len(analysis['under_protected'])}") print(f"Coating defects detected: {len(analysis['coating_defects'])}") # Analyze DCVG survey dcvg = survey.analyze_dcvg( data_file="dcvg_survey.csv" ) for defect in dcvg['defects']: print(f"Defect at {defect['chainage']}m: {defect['severity']} ({defect['ir_drop']}mV)")
Interference Analysis
AC Interference
from digitalmodel.modules.cp import InterferenceAnalysis interference = InterferenceAnalysis() # Analyze AC interference from power line ac_analysis = interference.analyze_ac( pipeline={ "length": 10000, # m parallel exposure "coating_resistance": 10000, # ohm-m2 "diameter": 0.6 # m }, power_line={ "voltage": 400000, # V "current": 500, # A "separation": 50 # m }, soil_resistivity=100 # ohm-m ) print(f"Induced AC voltage: {ac_analysis['voltage']:.1f} V") print(f"AC current density: {ac_analysis['current_density']:.2f} A/m2") print(f"Mitigation required: {ac_analysis['mitigation_required']}")
Stray Current
# Analyze DC stray current dc_analysis = interference.analyze_stray_current( pipeline={ "coating_resistance": 10000, # ohm-m2 "length": 5000 # m affected }, source={ "type": "railway", "current": 1000, # A "distance": 100 # m } ) print(f"Stray current pickup: {dc_analysis['pickup_current']:.2f} A") print(f"Discharge current density: {dc_analysis['discharge_density']:.4f} A/m2") print(f"Corrosion rate: {dc_analysis['corrosion_rate']:.2f} mm/year")
MCP Tool Integration
Swarm Coordination
// Initialize CP design swarm mcp__claude-flow__swarm_init { topology: "hierarchical", maxAgents: 4 } // Spawn specialized agents mcp__claude-flow__agent_spawn { type: "analyst", name: "cp-calculator" } mcp__claude-flow__agent_spawn { type: "reviewer", name: "standards-checker" }
Memory Coordination
// Store CP design parameters mcp__claude-flow__memory_usage { action: "store", key: "cp/design/parameters", namespace: "corrosion", value: JSON.stringify({ structure: "offshore_platform", system: "SACP", design_life: 25, standards: ["DNV-RP-B401", "NACE SP0176"] }) }
Design Workflow
CP System Design Process
-
Environment Assessment
- Soil/water resistivity
- Temperature
- Oxygen content
- Biological activity
-
Current Requirement
- Surface area calculation
- Coating efficiency
- Current density selection
-
System Selection
- SACP vs ICCP decision
- Hybrid considerations
-
Component Design
- Anode sizing and distribution
- Cable sizing
- TRU specification (ICCP)
-
Interference Analysis
- AC/DC interference
- Stray current
- Galvanic interaction
-
Monitoring Design
- Reference electrode placement
- Test point locations
- Remote monitoring
Best Practices
- Conservatism: Apply appropriate safety factors
- Standards Compliance: Follow NACE/ISO requirements
- Design Life: Consider coating degradation over time
- Monitoring: Design for long-term performance tracking
- Documentation: Record all assumptions and calculations
Related Skills
- structural-analysis - Structural integrity
- mooring-design - Mooring system protection
- fatigue-analysis - Corrosion-fatigue interaction
References
- NACE International Standards
- ISO 15589-1/2: Cathodic Protection of Pipelines
- DNV-RP-B401: Cathodic Protection Design
- API RP 651/1632: Tank Cathodic Protection
- Agent Source:
agents/cathodic-protection-engineer.md
Version History
- 1.0.0 (2025-01-02): Initial release from agents/cathodic-protection-engineer.md