Build an AI agent that reads insurance claim documents, classifies them, and routes to the right processing track โ all triggered automatically when a PDF lands in a folder.
โฑ 45 minutes
Exercise Overview
In this exercise, you'll build a working claims triage agent using the Kiro automation stack. The agent reads claim PDFs, extracts key information, classifies the claim type and complexity, and routes it to the appropriate processing track โ straight-through for simple claims, or human adjuster queue for complex ones.
๐ฆ Download starter files first
This lab uses real PDF claim documents. Download and extract the starter pack into your workspace:
Extract into your Kiro workspace root (you should see a lab2-claims-triage/ folder)
Install the PDF converter dependency โ paste this into Kiro chat:
PROMPT โ Copy & paste into Kiro
Set up Python for the PDF converter. Run these commands in order:
1. sudo apt install -y python3-pip python3.12-venv
2. python3 -m venv .venv
3. .venv/bin/pip install -r lab2-claims-triage/requirements.txt
๐ก What you'll build
A three-layer automation stack for claims triage:
Steering โ Global rules for AnyCompany Insurance (you'll create this first)
Skill โ Claims triage expertise that activates on demand
Hook โ Auto-triggers when a claim PDF arrives in the intake folder
Routing โ Classifies and routes claims to different processing paths
๐ File structure
.kiro/steering/anycompany-insurance-rules.md
Global rules (Step 1)
.kiro/skills/claims-triage/SKILL.md
Claims triage skill (Step 2)
.kiro/hooks/claims-intake.json
PDF trigger hook (Step 3)
lab2-claims-triage/
Starter pack โ claim PDFs + converter script
lab2-claims-triage/extracted/
Converted markdown files (generated by script)
๐ What's in the starter pack
claim-simple-001.pdf
Simple outpatient claim โ SGD $380
claim-standard-002.pdf
Standard hospitalization โ SGD $18,500
claim-complex-003.pdf
Complex CI claim with fraud indicators โ SGD $250,000
pdf_to_md.py
PDF โ Markdown converter script
requirements.txt
Python dependencies (pymupdf)
Step
What you do
Duration
Step 1
Create a steering file โ global rules for every agent interaction
5 min
Step 2
Build the Claims Triage SKILL.md
10 min
Step 3
Create a hook โ one-click trigger for claims triage
7 min
Step 4
Verify triage results & iterate on the skill
10 min
Step 5
Add routing โ classify & route to different paths
13 min
Step 1: Create the Steering File
Steering files are always-on rules that apply to every conversation in your project. Think of them as the "company policy" that every AI agent must follow โ regardless of what task it's doing.
๐ก Why this matters for insurance: In claims processing, you need consistent rules across every interaction โ correct currency, no personal data leakage, proper risk classifications, and regulatory compliance. Steering files enforce these rules automatically so individual skills don't need to repeat them.
Let's create the steering file by prompting Kiro. Copy the prompt below and paste it into Kiro chat โ Kiro will create the file for you:
PROMPT โ Copy & paste into Kiro
Create the steering file at .kiro/steering/anycompany-insurance-rules.md with the following content. Use inclusion: always in the frontmatter.
# AnyCompany Insurance โ Global Rules
## Company Context
- Company name: AnyCompany Insurance
- Primary market: Singapore
- Regulator: MAS (Monetary Authority of Singapore)
- Currency: SGD (Singapore Dollars) unless a specific market is referenced
## Data Protection
- Never include personally identifiable information (PII) in outputs
- Use [REDACTED] for names, NRIC, policy numbers, and contact details
- Comply with PDPA (Personal Data Protection Act) requirements
- Medical information requires additional sensitivity handling
## Risk & Decision Framework
- All risk ratings must use: ๐ข LOW / ๐ก MEDIUM / ๐ด HIGH
- All claim decisions must use: APPROVE / REFER / ESCALATE / DECLINE
- Every decision must include a rationale citing specific data points
- If data is missing or unavailable, state "DATA NOT AVAILABLE" โ never estimate
## Claims Processing Rules
- Claims authority limit for auto-approval: SGD $5,000
- Claims above SGD $50,000: mandatory human review
- Pre-existing condition disputes: always escalate to senior adjuster
- Fraud indicators: always flag, never auto-approve
- MAS Notice on Claims Handling (MAS 120): response within 3 business days
## Guardrails
- Only use data provided in the claim document โ do not infer or assume
- Cite the specific field or document section for every finding
- When uncertain, escalate rather than decide
- Never override policy exclusions without human authorization
โ Checkpoint: After Kiro creates the file, verify it at .kiro/steering/anycompany-insurance-rules.md. Notice how it:
Sets the company context (currency, regulator, market)
Enforces data protection (PDPA, no PII)
Defines the decision vocabulary (APPROVE/REFER/ESCALATE/DECLINE)
Establishes guardrails (cite data, escalate when uncertain)
These rules apply to every skill and conversation in this project โ the claims triage skill you build next will inherit all of them automatically.
โ ๏ธ Token cost awareness: This steering file is sent with every single message to Kiro. That's why it's concise (~200 words). A 2,000-word steering file would waste tokens on every interaction. Keep always files to essential rules only.
1b. Test the steering is active
Let's verify the steering file is working. Open a new chat session in Kiro (click the + icon in the chat panel) and paste this prompt โ it's designed to trigger several steering rules at once:
PROMPT โ Test steering rules (new chat session)
A customer named John Tan (NRIC S9812345A) submitted a health claim for $3,200. His policy number is ACI-HEALTH-2024-77210. The diagnosis is unclear โ could be a pre-existing condition. What should we do with this claim?
โ What to look for in Kiro's response:
PII redacted? โ Kiro should NOT repeat "John Tan" or "S9812345A" in its output. It should use [REDACTED] or refer to "the claimant"
Currency correct? โ Should reference SGD, not USD or generic "$"
Decision vocabulary used? โ Should use APPROVE / REFER / ESCALATE / DECLINE (not "accept" or "reject")
Pre-existing condition rule applied? โ Should recommend ESCALATE (steering says "always escalate to senior adjuster")
Guardrail respected? โ Should say it needs more data rather than guessing the diagnosis
If Kiro follows these rules without you mentioning them, the steering is working. These rules are being injected into every conversation automatically.
๐ก What if it doesn't work? Check that the frontmatter says inclusion: always (not manual). Also verify the file is in .kiro/steering/ โ not .kiro/skills/. Steering files must be in the steering folder to be auto-included.
Step 2: Build the Claims Triage SKILL.md
Now let's build the core skill โ a Claims Triage Agent that reads claim documents, extracts key data, classifies the claim, and recommends a processing track.
๐ Why SKILL.md?
A SKILL.md file is reusable expertise that Kiro activates on demand. Unlike a one-off prompt, a skill:
Auto-activates when someone mentions the relevant task (e.g., "triage this claim")
Is shared across your team via version control
Has guardrails built in โ so every run follows the same rules
Produces consistent output โ same structure every time
Ask Kiro to create the claims triage skill:
PROMPT โ Copy & paste into Kiro
Create a Kiro skill at .kiro/skills/claims-triage/SKILL.md
Use this structure:
---
name: claims-triage
description: Triage incoming insurance claims by reading claim documents, extracting key data, classifying claim type and complexity, and recommending a processing track. Use when reviewing new claims, processing First Notice of Loss (FNOL), or assessing claim intake documents for AnyCompany Insurance.
---
# Claims Triage Agent
## Role
You are a Senior Claims Analyst at AnyCompany Insurance with 12 years of experience in life, health, and general insurance claims across the Singapore market. You specialize in rapid claim classification, coverage validation, and routing decisions. You are thorough, evidence-based, and always cite the specific data point behind each finding. You err on the side of caution โ when in doubt, you escalate rather than auto-approve.
## When to Use
- New claim document arrives (PDF or structured data)
- First Notice of Loss (FNOL) processing
- Claim intake triage and classification
- Batch claim review and prioritization
## How to Read PDFs
When a claim arrives as a PDF file, convert it to markdown first using the PDF converter script:
```bash
.venv/bin/python lab2-claims-triage/pdf_to_md.py lab2-claims-triage lab2-claims-triage/extracted
```
Then read the extracted markdown file from `lab2-claims-triage/extracted/`. This gives you structured text with all claim fields clearly readable.
## Workflow
1. **Convert** โ If the claim is a PDF, run the converter script above to extract text
2. **Extract** โ Read the claim document and extract: policy number, claim type, date of loss, claimed amount, supporting documents listed
3. **Validate** โ Check coverage: Is the policy active? Does the claim type match policy coverage? Are there exclusions?
4. **Classify** โ Determine: claim type (Health/Life/Motor/Travel/Property), complexity (Simple/Standard/Complex), and risk indicators
5. **Decide** โ Recommend processing track: APPROVE (auto-process), REFER (standard queue), ESCALATE (senior adjuster), or FLAG (fraud/investigation)
## Output Format
For each claim, produce this structured output:
### ๐ Claim Triage Summary
| Field | Value |
|-------|-------|
| Policy Number | [extracted from document] |
| Claim Type | [Health / Life / Motor / Travel / Property] |
| Date of Loss | [extracted] |
| Claimed Amount | SGD [amount] |
| Complexity | [Simple / Standard / Complex] |
| Risk Level | [๐ข LOW / ๐ก MEDIUM / ๐ด HIGH] |
### ๐ Coverage Validation
- Policy status: [Active/Lapsed/Under review]
- Coverage match: [Yes/No โ explain]
- Exclusions check: [None found / Potential exclusion: describe]
- Deductible: SGD [amount]
### โก Decision
**Recommended Track:** [APPROVE / REFER / ESCALATE / FLAG]
**Rationale:** [2-3 sentences citing specific data points from the claim document]
**Next Steps:**
1. [First action required]
2. [Second action if applicable]
3. [Third action if applicable]
### ๐จ Flags (if any)
- [List any fraud indicators, missing documents, or anomalies]
## Decision Rules
- Claimed amount โค SGD $5,000 + Simple complexity + No flags โ APPROVE
- Claimed amount $5,001โ$50,000 + Standard complexity โ REFER
- Claimed amount > SGD $50,000 โ ESCALATE (mandatory)
- Any fraud indicator present โ FLAG
- Pre-existing condition dispute โ ESCALATE
- Missing critical documents โ REFER with "pending documents" note
## Guardrails
- ONLY use data present in the claim document
- Cite the specific field or section for every finding
- State "DATA NOT AVAILABLE" for any missing information โ never guess
- Do NOT override policy exclusions
- Do NOT auto-approve if ANY fraud indicator is present
- Always include the rationale โ no decision without explanation
โ Checkpoint: You should now have a file at .kiro/skills/claims-triage/SKILL.md. Verify in the Kiro Skills panel (click the Kiro icon โ Agent Skills) that it appears. Key things to check:
The frontmatter has name and description with trigger keywords
The Role section defines a specific persona (Senior Claims Analyst)
"How to Read PDFs" section tells the skill how to use the converter script
The Output Format is structured and consistent
Decision Rules encode the business logic (authority limits, escalation triggers)
Guardrails prevent the agent from guessing or overriding policy
๐ก Skills can include tooling, not just prompts:
Notice the "How to Read PDFs" section โ it tells the skill how to use a script as part of its workflow. This is what makes skills more powerful than one-off prompts: they package expertise and operational tooling together. The skill knows both what to do (triage logic) and how to do it (run the converter, read the output).
๐ก Notice the layered guardrails:
The steering file says "Claims above $50K: mandatory human review." The skill says "Claimed amount > SGD $50,000 โ ESCALATE (mandatory)." This is defense in depth โ the same rule enforced at two layers. If someone modifies the skill, the steering file still catches it. If someone removes the steering file, the skill still has the rule.
Step 3: Create a Hook โ One-Click Claims Triage
Now let's create a hook โ a one-click button that triggers the claims triage skill. No need to type a prompt every time โ just click the button and the agent processes the claims automatically.
๐ Real-world parallel: In production, you'd use a fileCreated hook connected to your document management system โ claims arrive via email/app and the agent processes them with zero human involvement. For the workshop, we'll use a userTriggered hook (a manual button) so you can reliably trigger and observe the automation flow.
3a. Create the hook
Ask Kiro to create a manual trigger hook:
PROMPT โ Copy & paste into Kiro
Create a hook called "Triage Next Claim" that I can trigger manually with a button click.
It should use the "userTriggered" event type and when triggered, ask the agent to: "Use the claims-triage skill to process all PDF claims in lab2-claims-triage/ that don't already have a corresponding _triage.md file. Convert each PDF to markdown first, then triage it. Save each triage output with the '_triage.md' suffix."
โ Checkpoint: After Kiro creates the hook:
Open the Agent Hooks panel in the Kiro sidebar (look for the hooks icon)
You should see a "Triage Next Claim" button
This is your one-click trigger โ clicking it sends the prompt to the agent automatically
๐ก Notice how simple the hook prompt is:
The hook just says "use the claims-triage skill." It doesn't spell out how to convert PDFs or what decision rules to apply โ that's all encoded in the skill. This is the power of skills: the hook is a simple trigger, the skill is the expertise. Separation of concerns.
3b. Click the hook โ watch it work
Click the "Triage Next Claim" button in the Agent Hooks panel and watch the agent:
Run the PDF converter (from the skill's "How to Read PDFs" section)
Read the extracted markdown for each claim
Apply the triage logic and decision rules
Save structured triage outputs as _triage.md files
โ What should happen:
Triage output files appear in lab2-claims-triage/ (e.g., claim-simple-001_triage.md)
Each file has the structured format from the skill: summary table, coverage validation, decision, flags
The steering rules are applied: SGD currency, no PII, decision vocabulary (APPROVE/REFER/FLAG)
๐ Hook types โ when to use which
userTriggered
Manual button โ click to run. Good for on-demand tasks. (what we're using)
fileCreated
Auto-fires when a file appears. Good for intake pipelines (claims, invoices, reports).
fileEdited
Auto-fires when a file is saved. Good for lint-on-save, format-on-save.
promptSubmit
Fires before every message you send. Good for injecting reminders or checks.
In production, you'd swap userTriggered for fileCreated with a pattern like claims-intake/*.pdf โ same skill, fully automated trigger.
Step 4: Verify Results & Iterate on the Skill
The hook in Step 3 already triaged the claims. Now let's review the outputs and refine the skill โ this is the real-world workflow: build โ test โ see gaps โ improve โ test again.
4a. Verify the decisions
Open the triage output files in lab2-claims-triage/. Each claim was designed to test a different routing path:
โ Expected results:
Claim
Expected Decision
Why
claim-simple-001
APPROVE
Amount ($380) well under $5K limit, simple outpatient, panel clinic, no flags
claim-standard-002
REFER
Amount ($18,500) in $5Kโ$50K range, hospitalization, non-panel hospital, standard complexity
claim-complex-003
FLAG or ESCALATE
Multiple fraud indicators: short policy duration, overseas hospital, previous decline, high amount ($250K), non-smoker with lung cancer
๐ก Open the PDFs side-by-side: Open the original PDF (e.g., claim-complex-003.pdf) in one panel and the triage output (claim-complex-003_triage.md) in another. Notice how the agent extracted specific data points from the PDF and cited them in its rationale. This is the "cite the specific field" guardrail in action.
4b. Iterate on the skill
If the decisions don't match expectations โ especially if the complex claim wasn't flagged โ update the skill. This is the real workflow: the QA team tests, finds gaps, and refines the decision rules.
PROMPT โ If the complex claim wasn't flagged correctly
Update my claims-triage skill at .kiro/skills/claims-triage/SKILL.md
Add these fraud indicators to the Decision Rules section. If ANY of these are present, the decision must be FLAG:
Fraud Indicators (any one triggers FLAG):
- Policy duration less than 12 months + high-value claim (>$50K)
- Medical treatment at overseas facility when claimant is Singapore-resident
- Previous policy declined or cancelled by another insurer
- Inconsistency between declared health status and diagnosis (e.g., non-smoker with smoking-related illness)
- Supporting documents from non-verifiable sources
- Multiple claims within first policy year
Keep everything else unchanged.
4c. Re-run and confirm
After updating the skill, clear the previous outputs and re-run:
PROMPT โ Clear previous outputs
Delete all .md files in lab2-claims-triage/ and the extracted/ folder contents, but keep the PDFs and Python scripts.
Then click the "Triage Next Claim" hook button again. Verify the complex claim now gets FLAG.
๐ก The iteration loop: Create โ Test โ See gaps โ Update SKILL.md โ Test again. This is exactly how your tech team develops production skills. The SKILL.md is a living document โ it gets better with every iteration. In a real deployment, the QA team (3 people in this room!) would be the ones testing and refining these decision rules.
Step 5: Add Routing โ Classify & Route to Different Paths
๐ Pattern: Routing (Agentic Workflow Pattern)
Routing is one of the four core agentic patterns. Instead of one agent doing everything, a router agent classifies the input and sends it to the appropriate specialist. Each specialist has its own expertise, rules, and output format.
Real-world analogy: When you call your insurer, the IVR system routes you โ press 1 for claims, 2 for policy changes, 3 for billing. The router doesn't solve your problem; it sends you to the right specialist. Same concept, but the AI reads the claim and routes intelligently.
Right now, your claims triage skill does everything โ classification AND decision. Let's split it into a proper routing architecture:
๐Routing ArchitectureAgentic Workflow Pattern
5a. Create the Fraud Investigation Skill
When the router flags a claim for fraud, it needs a specialist. Create a second skill that does deep-dive fraud analysis:
PROMPT โ Copy & paste into Kiro
Create a second Kiro skill at .kiro/skills/claims-fraud-investigation/SKILL.md
---
name: claims-fraud-investigation
description: Conduct detailed fraud investigation analysis on flagged insurance claims. Use when a claim has been flagged with fraud indicators during triage, or when the Special Investigations Unit (SIU) needs an evidence package for a suspicious claim at AnyCompany Insurance.
---
# Claims Fraud Investigation Agent
## Role
You are a Senior Fraud Investigator at AnyCompany Insurance's Special Investigations Unit (SIU) with 15 years of experience in insurance fraud detection across life, health, and general insurance in Singapore and Southeast Asia. You are methodical, evidence-focused, and build cases that can withstand legal scrutiny. You never accuse โ you document patterns and recommend further investigation steps.
## When to Use
- Claim flagged during triage with fraud indicators
- Special Investigations Unit (SIU) case preparation
- Pattern analysis across related claims
- Pre-litigation evidence packaging
## Output Format
### ๐จ Fraud Investigation Summary
| Field | Value |
|-------|-------|
| Claim Reference | [from triage] |
| Investigation Priority | [URGENT / HIGH / STANDARD] |
| Fraud Type Suspected | [Opportunistic / Organized / Staged / Exaggerated / Identity] |
| Confidence Level | [Low / Medium / High] โ based on number and strength of indicators |
### ๐ Indicator Analysis
For each fraud indicator found, document:
| # | Indicator | Evidence | Severity | Notes |
|---|-----------|----------|----------|-------|
| 1 | [indicator name] | [specific data point from claim] | [HIGH/MEDIUM/LOW] | [context] |
### ๐ Pattern Analysis
- Related claims or policies: [any connections found]
- Timeline anomalies: [suspicious timing patterns]
- Document concerns: [authenticity, consistency issues]
- Behavioral indicators: [unusual claimant behavior patterns]
### ๐ Investigation Recommendation
**Recommended Action:** [Full SIU investigation / Enhanced verification / Monitor only / Close โ insufficient evidence]
**Immediate Steps:**
1. [First priority action]
2. [Second action]
3. [Third action]
**Evidence to Obtain:**
- [What additional evidence is needed]
- [Who to contact for verification]
- [What records to request]
### โ๏ธ Legal & Compliance Notes
- Regulatory reporting required: [Yes/No โ cite MAS requirement if yes]
- Data privacy considerations: [PDPA implications for investigation]
- Limitation period: [time constraints for action]
## Guardrails
- NEVER state that fraud has occurred โ only that indicators are present
- Use language: "indicators suggest" / "pattern consistent with" / "warrants further investigation"
- ONLY use data from the claim document and triage output
- Do NOT recommend claim denial based solely on this analysis โ that requires human SIU decision
- Cite specific evidence for every indicator โ no speculation
- Flag PDPA considerations when recommending data requests
5b. Test the fraud skill in isolation
Before wiring it into the full pipeline, let's test the fraud investigation skill on its own to verify it produces the right output:
PROMPT โ Copy & paste into Kiro
Read the triage output for the complex claim at lab2-claims-triage/claim-complex-003_triage.md
This claim was flagged during triage. Now use the claims-fraud-investigation skill to conduct a detailed fraud analysis.
Read the original claim document at lab2-claims-triage/extracted/claim-complex-003.md and the triage output, then produce a full fraud investigation summary.
Save the output as lab2-claims-triage/claim-complex-003_investigation.md
โ What to observe:
The fraud investigation skill uses different language than the triage skill โ "indicators suggest" not "this is fraud"
It builds an evidence package โ each indicator is documented with specific data points
It recommends next steps for humans โ the agent doesn't decide guilt, it prepares the case
It flags PDPA considerations โ because requesting medical records from overseas has privacy implications
The steering rules still apply โ no PII, SGD currency, cite specific data
5c. Create the full routing hook
Now let's upgrade the hook to orchestrate the complete routing pipeline โ triage all claims, and automatically route flagged claims to the fraud investigation skill:
PROMPT โ Copy & paste into Kiro
Create a new hook called "Full Claims Pipeline" that I can trigger manually with a button click.
It should use the "userTriggered" event type and when triggered, ask the agent to:
"Run the full claims routing pipeline on all PDFs in lab2-claims-triage/:
1. Use the claims-triage skill to convert and triage each PDF that doesn't have a _triage.md file yet
2. For any claim that gets a FLAG decision, automatically use the claims-fraud-investigation skill to produce a detailed investigation report (save as _investigation.md)
3. For claims that get APPROVE, generate a brief approval confirmation (save as _approved.md)
4. For claims that get REFER, generate a referral note with queue assignment (save as _referral.md)
5. Save a final routing summary as lab2-claims-triage/routing-summary.md showing all claims, their decisions, and which path each took"
โ Checkpoint: You should now have two hooks in the Agent Hooks panel:
"Triage Next Claim" โ simple triage only (from Step 3)
First, clear any existing output files so the pipeline processes everything fresh:
PROMPT โ Clear previous outputs
Delete all .md files in lab2-claims-triage/ (the _triage.md, _approved.md, _referral.md, _investigation.md, and routing-summary.md files) but keep the PDFs and Python scripts. Also delete the extracted/ folder contents.
Now click the "Full Claims Pipeline" hook button and watch the complete routing flow:
โกWhat the Full Pipeline Hook Orchestrates
โ Expected output files:
Claim
Decision
Output files
claim-simple-001
APPROVE
_triage.md + _approved.md
claim-standard-002
REFER
_triage.md + _referral.md
claim-complex-003
FLAG
_triage.md + _investigation.md
Plus a routing-summary.md with the complete overview.
๐ What just happened โ the Routing pattern in action
You built a multi-agent routing system:
Component
Role
Analogy
Steering file
Global rules (authority limits, PDPA, decision vocabulary)
Company policy manual
Claims Triage skill
Router โ classifies and decides the path
Triage nurse in A&E
Fraud Investigation skill
Specialist โ deep analysis on flagged cases
SIU investigator
Hook
Trigger โ starts the process when a PDF arrives
Mailroom sorting incoming post
The router doesn't do everything โ it classifies and delegates. Simple claims get auto-approved. Standard claims go to the queue. Suspicious claims get a specialist investigation. Each path has its own expertise, rules, and output format. This is how production claims systems work โ but instead of hard-coded rules, the AI reads and understands the claim.
What You've Built
๐ Complete Claims Triage Agent Stack
A steering file with AnyCompany Insurance global rules (authority limits, PDPA, decision framework)
A Claims Triage SKILL.md that classifies claims and routes to the right track
A Fraud Investigation SKILL.md that produces evidence packages for flagged claims
A hook that auto-triggers when claim PDFs arrive in the intake folder
A working Routing pattern โ classify โ route โ specialist processing
Layered guardrails at every level (steering + skill + decision rules)
๐ค "Why not just code this as rules?"
The decision thresholds (amount < $5K โ APPROVE, > $50K โ ESCALATE) could be coded as if/else logic. That's not why you need an agent. The agent is needed for everything before the decision:
Task
Why AI Agent?
Why not code?
Reading the claim document
Free-text fields, inconsistent formatting, medical terminology
Rule engines need perfectly structured input
Connecting fraud signals
Reasons across 5+ weak signals together to detect a pattern
Coding every combination is brittle; new patterns emerge constantly
Handling ambiguity
"Could be pre-existing" โ agent reasons about uncertainty
Code needs binary yes/no; can't handle "maybe"
Generating rationale
Writes 2-3 sentences citing specific evidence from the document
Code can say "ESCALATE" but can't explain why
The pattern: The PDF converter is code (deterministic). The threshold checks are rules (guardrails). But reading unstructured documents, detecting fraud patterns across multiple signals, reasoning about ambiguity, and explaining decisions with evidence โ that's reasoning, and that's where the agent earns its keep. The decision rules don't replace the agent's reasoning โ they constrain it.
๐ข How this connects to your role
If you're in...
This exercise shows you...
Audit / QA
How agent decisions are transparent (rationale for every decision), auditable (structured output), and governed (authority limits, escalation rules). You'd review and refine the Decision Rules.
Portfolio / Product
How faster claims processing improves customer experience and reduces loss ratios. The auto-approve path for simple claims means faster payouts = higher NPS.
Technology / Platforms
The architecture pattern โ steering + skills + hooks + routing. This is what your team would build and maintain. The hook connects to your document management system.
Security
How fraud detection is built in as a routing path, not an afterthought. The guardrails prevent data leakage (PDPA). The investigation skill uses careful language ("indicators suggest").
Operations / Distribution
How the 80% of simple claims get processed automatically, freeing your team to focus on the complex 20% that need human judgment.
SKILL.md Best Practices
Practice
Why
Keep SKILL.md under 500 lines
Longer files slow down activation and reduce output quality
One skill, one job
Claims triage โ fraud investigation โ separate skills for separate expertise
Include decision rules explicitly
Don't rely on the AI to "figure out" thresholds โ encode them
Define the output format precisely
Consistent structure = auditable, comparable outputs every time
Add guardrails IN the skill
Defense in depth โ don't rely only on steering
Use specific personas
"Senior Claims Analyst, 12 years, Singapore market" beats "helpful assistant"
Iterate based on test results
Skills are living documents โ test, improve, test again
Version via git
Track changes, roll back if quality drops after edits