Skip to content
checkpoint-from-receipt logo

Checkpoint from Receipt Skill

checkpoint-from-receipt

Create checkpoints from receipt photos using QR scanning, e-Kasa API, and GPS extraction (10-40s)

SKILL.md

Full skill instructions

Checkpoint from Receipt Skill

Purpose

Automatically create checkpoints from receipt photos using QR scanning, e-Kasa API, and GPS extraction.

When to Activate

  • User pastes image (auto-detect)
  • Keywords: "refuel", "fill up", "got gas", "checkpoint", "receipt"
  • File extensions: .jpg, .png, .pdf

Instructions

Workflow: 3-Stage Orchestration

QR scan (2-5s) → e-Kasa API (5-30s) → GPS extraction (2-5s) → Checkpoint creation → Gap detection

Total time: 10-40 seconds typically


Stage 1: QR Code Scanning

  1. When image pasted: "📷 Receipt detected. Scanning QR code..."
  2. Call: ekasa-api.scan_qr_code (multi-scale: 1x, 2x, 3x)
  3. Progress:
    • "Trying 1x scale..."
    • "Trying 2x scale... Found!"
  4. Extract: receipt_id (e.g., "O-123456789ABC")

If QR not found:

  • "QR code not detected. Try better lighting or different angle."
  • Fallback: "What's the e-Kasa receipt ID? (starts with O-)"

Stage 2: e-Kasa API (SLOW - Show Progress!)

  1. Start: "🔄 Fetching from e-Kasa API... (may take up to 60s)"
  2. Call: ekasa-api.fetch_receipt_data
  3. Progress updates:
    • 15s: "Still fetching... (15s elapsed)"
    • 30s: "Almost there... (30s elapsed)"
    • 45s: "Taking longer than usual... (45s elapsed)"

If timeout (60s):

  • "⏱️ e-Kasa timed out. Options:"
  • "1) Retry"
  • "2) Manual entry (fuel type, liters, price)"

If success:

  • Parse fuel items using Slovak patterns:
    • "Diesel", "Nafta", "Motorová nafta"
    • "Natural 95", "BA 95", "Benzín 95"
    • "Natural 98", "BA 98", "Benzín 98"
    • "LPG", "Autoplyn"
  • Show: "✅ 52.3L Diesel @ €1.45/​L = €75.84"

If multiple fuel items:

  • List all items
  • Ask: "Which fuel was for your vehicle?"

Stage 3: Dashboard Photo GPS

  1. Ask: "📸 Now paste dashboard photo for GPS location"
  2. Call: dashboard-ocr.extract_metadata
  3. Extract:
    • GPS coordinates (latitude, longitude) from EXIF
    • Timestamp from EXIF
    • Odometer reading (OCR with confidence > 80%)

If GPS found:

  • "📍 Location: 48.1486, 17.1077 (Bratislava)"
  • Optional: Reverse geocode to show address

If no GPS:

  • "📍 No GPS data found. Options:"
  • "1) Enable location services and retake photo"
  • "2) Enter GPS coordinates manually"
  • "3) Enter address (I'll geocode it)"

If OCR odometer found:

  • "📊 Detected odometer: 125,340 km (confidence: 92%)"
  • "Is this correct? (yes/​no)"

If OCR fails or low confidence:

  • "What's the current odometer reading in kilometers?"

Stage 4: Create Checkpoint & Detect Gap

  1. Combine data:

    • Receipt: fuel_type, fuel_liters, price, vendor, receipt_id
    • GPS: latitude, longitude, address (optional)
    • Datetime: from receipt or dashboard photo
    • Odometer: from OCR or user input
  2. Slovak compliance check:

    • Ask for driver name if missing
    • Separate refuel timing from trip timing
    • Note: Refuel location may differ from trip start/​end
  3. Call: car-log-core.create_checkpoint

  4. Success: "✅ Checkpoint created at 125,340 km!"

  5. Auto-detect gap:

    • Call: car-log-core.detect_gap
    • If gap > 100km: "⚠️ Gap detected: 820 km over 7 days. Reconstruct trips?"
    • If gap detected → Auto-trigger trip-reconstruction skill

Timing Breakdown

  • QR scan: 2-5 seconds
  • e-Kasa API: 5-30 seconds (show progress!)
  • GPS extraction: 1-2 seconds
  • Checkpoint creation: 1 second
  • Gap detection: 1 second
  • Total: 10-40 seconds typically

Error Handling

QR Scan Failed

  • Try multi-scale (1x, 2x, 3x)
  • If all fail: Manual receipt ID entry

e-Kasa Timeout

  • Show elapsed time
  • Offer retry or manual entry
  • Cache successful responses

No GPS

  • Fallback to address geocoding
  • Manual GPS entry
  • Continue without location (warn about compliance)

Multiple Fuel Items

  • List all items with prices
  • Ask user to select correct one

Ambiguous Geocoding

  • Show alternatives with confidence
  • Ask user to select correct location

Slovak Compliance

Critical Requirements

  • Driver name: Mandatory for tax deduction
  • Refuel timing: Separate from trip start/​end timing
  • Location: Refuel station may differ from trip origin/​destination
  • L/​100km format: Always use European standard

Data Storage

  • Store refuel_datetime separately from trip timing
  • Store refuel_location separately from trip endpoints
  • Link checkpoint to trips via gap detection

Related Skills

Auto-triggers

  • trip-reconstruction: If gap > 100km detected
  • data-validation: Automatic validation after checkpoint creation

Links to

  • vehicle-setup: If no vehicle registered
  • report-generation: After sufficient checkpoints collected

For detailed examples: See GUIDE.md For MCP tools: See REFERENCE.md For timeout troubleshooting: See ../​TROUBLESHOOTING.md

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View