skills/codex/core-insurance-integration/SKILL.md
<!-- AUTO-GENERATED by export-skills.py — DO NOT EDIT --> --- name: core-insurance-integration description: Core insurance system integration patterns for AI agents connecting to Guidewire InsuranceSuite and Duck Creek Technologies. Use when building agents that interact with policy admin, claims, billing, or underwriting APIs. --- > **Platform Note:** This skill was designed for multi-agent execution. In Codex, treat sub-agent instructions as sequential steps to complete thoroughly within a si
npx skillsauth add frank-luongt/faos-skills-marketplace skills/codex/core-insurance-integrationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Platform Note: This skill was designed for multi-agent execution. In Codex, treat sub-agent instructions as sequential steps to complete thoroughly within a single agent context.
Connect AI agents to core insurance platforms (Guidewire InsuranceSuite, Duck Creek Technologies) for policy administration, claims processing, billing, and underwriting workflows.
| Platform | Architecture | API Style | Strength | |---|---|---|---| | Guidewire InsuranceSuite | Cloud-native (Guidewire Cloud) | REST + Cloud API | Market leader (P&C), 500+ insurers | | Duck Creek Technologies | SaaS (OnDemand) | REST | Configurable, multi-line support | | Majesco | Cloud-native | REST | Mid-market, speed to market | | Socotra | API-first cloud-native | REST/GraphQL | Modern, developer-friendly |
import requests
class GuidewireClient:
def __init__(self, base_url: str, token: str):
self.base_url = base_url.rstrip("/")
self.headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
"GW-Specification": "composite",
}
# --- PolicyCenter ---
def search_policies(self, policy_number: str = "", insured_name: str = "") -> list[dict]:
"""Search policies by number or insured name."""
params = {}
if policy_number:
params["filter"] = f"policyNumber eq '{policy_number}'"
elif insured_name:
params["filter"] = f"insuredName sw '{insured_name}'"
resp = requests.get(
f"{self.base_url}/pc/rest/composite/v1/policies",
headers=self.headers,
params=params,
)
resp.raise_for_status()
return resp.json().get("data", [])
def get_policy(self, policy_id: str) -> dict:
"""Get full policy details."""
resp = requests.get(
f"{self.base_url}/pc/rest/composite/v1/policies/{policy_id}",
headers=self.headers,
)
resp.raise_for_status()
return resp.json().get("data", {})
# --- ClaimCenter ---
def create_claim(self, policy_id: str, loss_date: str, description: str) -> dict:
"""Create a new claim (FNOL)."""
payload = {
"data": {
"attributes": {
"policyNumber": policy_id,
"lossDate": loss_date,
"description": description,
"lossCause": "auto_collision",
}
}
}
resp = requests.post(
f"{self.base_url}/cc/rest/composite/v1/claims",
headers=self.headers,
json=payload,
)
resp.raise_for_status()
return resp.json().get("data", {})
def get_claim(self, claim_id: str) -> dict:
"""Get claim details with activities."""
resp = requests.get(
f"{self.base_url}/cc/rest/composite/v1/claims/{claim_id}",
headers=self.headers,
)
resp.raise_for_status()
return resp.json().get("data", {})
def search_claims(self, policy_number: str = "", status: str = "") -> list[dict]:
"""Search claims by policy or status."""
params = {}
filters = []
if policy_number:
filters.append(f"policyNumber eq '{policy_number}'")
if status:
filters.append(f"state eq '{status}'")
if filters:
params["filter"] = " and ".join(filters)
resp = requests.get(
f"{self.base_url}/cc/rest/composite/v1/claims",
headers=self.headers,
params=params,
)
resp.raise_for_status()
return resp.json().get("data", [])
# --- BillingCenter ---
def get_account_billing(self, account_id: str) -> dict:
"""Get billing summary for an account."""
resp = requests.get(
f"{self.base_url}/bc/rest/composite/v1/accounts/{account_id}",
headers=self.headers,
)
resp.raise_for_status()
return resp.json().get("data", {})
import requests
class DuckCreekClient:
def __init__(self, base_url: str, token: str):
self.base_url = base_url.rstrip("/")
self.headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
}
def get_policy(self, policy_id: str) -> dict:
"""Get policy from Duck Creek Policy."""
resp = requests.get(
f"{self.base_url}/api/policies/{policy_id}",
headers=self.headers,
)
resp.raise_for_status()
return resp.json()
def get_claim(self, claim_id: str) -> dict:
"""Get claim from Duck Creek Claims."""
resp = requests.get(
f"{self.base_url}/api/claims/{claim_id}",
headers=self.headers,
)
resp.raise_for_status()
return resp.json()
def submit_fnol(self, policy_id: str, loss_date: str, description: str, claimant_name: str) -> dict:
"""Submit First Notice of Loss."""
payload = {
"policyId": policy_id,
"lossDate": loss_date,
"lossDescription": description,
"claimantName": claimant_name,
}
resp = requests.post(
f"{self.base_url}/api/claims/fnol",
headers=self.headers,
json=payload,
)
resp.raise_for_status()
return resp.json()
def get_billing_account(self, account_id: str) -> dict:
"""Get billing account details."""
resp = requests.get(
f"{self.base_url}/api/billing/accounts/{account_id}",
headers=self.headers,
)
resp.raise_for_status()
return resp.json()
def lookup_policy(policy_number: str) -> str:
"""Look up an insurance policy by its number.
Args:
policy_number: The policy number (e.g., 'POL-2024-001234')
"""
client = GuidewireClient(base_url=GW_URL, token=GW_TOKEN)
policies = client.search_policies(policy_number=policy_number)
if not policies:
return f"No policy found with number {policy_number}"
policy = policies[0]
attrs = policy.get("attributes", {})
return (
f"Policy: {attrs.get('policyNumber')}\n"
f"Product: {attrs.get('productName')}\n"
f"Status: {attrs.get('status')}\n"
f"Effective: {attrs.get('effectiveDate')} - {attrs.get('expirationDate')}\n"
f"Premium: ${attrs.get('totalPremium', 0):,.2f}"
)
def file_claim(policy_number: str, loss_date: str, description: str) -> str:
"""File a new insurance claim (FNOL).
Args:
policy_number: The policy number to file against
loss_date: Date of loss (YYYY-MM-DD)
description: Description of the loss/incident
"""
client = GuidewireClient(base_url=GW_URL, token=GW_TOKEN)
claim = client.create_claim(policy_number, loss_date, description)
claim_num = claim.get("attributes", {}).get("claimNumber", "unknown")
return f"Claim {claim_num} created successfully for policy {policy_number}."
development
<!-- AUTO-GENERATED by export-skills.py — DO NOT EDIT --> --- name: grpo-rl-training description: GRPO reinforcement learning training with TRL. Use when applying Group Relative Policy Optimization for reasoning and task-specific model training. --- # GRPO/RL Training with TRL Expert-level guidance for implementing Group Relative Policy Optimization (GRPO) using the Transformer Reinforcement Learning (TRL) library. This skill provides battle-tested patterns, critical insights, and production-r
tools
<!-- AUTO-GENERATED by export-skills.py — DO NOT EDIT --> --- name: graphql-architect description: Master modern GraphQL with federation, performance optimization, --- ## Use this skill when - Working on graphql architect tasks or workflows - Needing guidance, best practices, or checklists for graphql architect ## Do not use this skill when - The task is unrelated to graphql architect - You need a different domain or tool outside this scope ## Instructions - Clarify goals, constraints, and
development
<!-- AUTO-GENERATED by export-skills.py — DO NOT EDIT --> --- name: grafana-dashboards description: Create and manage production Grafana dashboards for real-time visualization of system and application metrics. Use when building monitoring dashboards, visualizing metrics, or creating operational observability interfaces. --- # Grafana Dashboards Create and manage production-ready Grafana dashboards for comprehensive system observability. ## Do not use this skill when - The task is unrelated
development
<!-- AUTO-GENERATED by export-skills.py — DO NOT EDIT --> --- name: gptq description: GPTQ post-training quantization for generative models. Use when quantizing large models to 4-bit with calibration-based weight compression. --- # GPTQ (Generative Pre-trained Transformer Quantization) Post-training quantization method that compresses LLMs to 4-bit with minimal accuracy loss using group-wise quantization. ## When to use GPTQ **Use GPTQ when:** - Need to fit large models (70B+) on limited GPU