Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
7ef18ce
Demo materials
lchoquel Nov 13, 2025
3a0c0bb
Merge branch 'dev' into demo
lchoquel Nov 13, 2025
776e27e
config and rules
lchoquel Nov 13, 2025
717efb6
Merge branch 'main' into demo
lchoquel Nov 13, 2025
5848ed2
Merge branch 'main' into demo
lchoquel Nov 18, 2025
d58129b
Merge branch 'main' into demo
lchoquel Nov 30, 2025
78fd33a
ENable only Pipelex inference
lchoquel Nov 30, 2025
2e86a60
Merge branch 'main' into demo
lchoquel Dec 2, 2025
333a959
cv_match_scw
lchoquel Dec 4, 2025
1060d0d
Multi-CV demo
lchoquel Dec 4, 2025
3490f5d
Cleanup
lchoquel Dec 4, 2025
78e998a
Update to support Gateway
lchoquel Dec 9, 2025
cf7a637
update pipelex, proper CV inputs to demo
lchoquel Jan 4, 2026
7b4deab
Examples run generating graph
lchoquel Jan 4, 2026
ce90326
Use feature/Chicago (WIP)
lchoquel Jan 12, 2026
500d41f
Update PDF -> Document
lchoquel Jan 14, 2026
653bc0a
Support Pipelex Chicago
lchoquel Jan 19, 2026
24499e3
Merge branch 'feature/Chicago' into demos/Chicago
lchoquel Jan 21, 2026
880d6df
Merge branch 'feature/Chicago' into demos/Chicago
lchoquel Jan 21, 2026
8f7bf83
Merge branch 'feature/Chicago' into demos/Chicago
lchoquel Jan 21, 2026
5ca2676
Use new base deck
lchoquel Jan 29, 2026
57337c0
Fix preset name
lchoquel Jan 29, 2026
300cf27
rules
lchoquel Jan 29, 2026
be52797
cv match with plx structures
lchoquel Jan 30, 2026
94a9ed5
Tweaks and slide master
lchoquel Feb 1, 2026
4239609
Generate multiple design proposals
lchoquel Feb 1, 2026
1e7db2f
output template results
lchoquel Feb 1, 2026
5b21059
slide designer output html
lchoquel Feb 2, 2026
2893aab
Remove old agent rules
lchoquel Feb 4, 2026
c0fceed
Update deck
lchoquel Feb 8, 2026
4457e6c
For agentic builder
lchoquel Feb 9, 2026
7d5eea9
cleanup
lchoquel Feb 9, 2026
06ce97a
WIP clean
lchoquel Feb 11, 2026
3f998ad
Merge branch 'feature/Chicago' into demos/Agentic-builder
lchoquel Feb 12, 2026
fe20f6e
Merge branch 'feature/Epic-starter-mthds-1' into demos/Epic-demos-mth…
lchoquel Feb 12, 2026
208e786
mthds
lchoquel Feb 12, 2026
10963ed
Switch from taplo to plxt CLI and add toml formatting config
lchoquel Feb 15, 2026
074999a
Examples
lchoquel Feb 21, 2026
80658a7
Merge branch 'feature/Epic-starter-mthds-1' into demos/Epic-demos-mth…
lchoquel Feb 21, 2026
58ab00a
experimenting
lchoquel Feb 22, 2026
af2728e
Merge branch 'feature/Chicago' into demos/Epic-demos-mthds-2
lchoquel Feb 23, 2026
e5e3785
fix/bump-pipelex
thomashebrard Feb 27, 2026
1c42793
Merge pull request #50 from Pipelex/fix/bump-pipelex
thomashebrard Feb 27, 2026
efa2ffa
tests
lchoquel Feb 28, 2026
4ea353c
Merge branch 'demos/Epic-demos-mthds-2' of github.com:Pipelex/pipelex…
lchoquel Feb 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .claude/methods/expense-reports/METHODS.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[package]
name = "expense-reports"
address = "github.com/RobinPipelex/expense-reports"
display_name = "Expense Reports"
version = "1.0.0"
description = "Extract data from receipt PDFs and compile a structured expense report"
mthds_version = ">=1.0.0"
license = "MIT"
main_pipe = "build_expense_report"

[exports.expense_reports]
pipes = ["build_expense_report", "process_receipt", "extract_pages", "analyze_receipt", "compile_report"]
105 changes: 105 additions & 0 deletions .claude/methods/expense-reports/bundle.mthds
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
domain = "expense_reports"
description = "Extract data from receipt PDFs and compile a structured expense report"
main_pipe = "build_expense_report"

[concept.ReceiptData]
description = "Structured data extracted from a single receipt"

[concept.ReceiptData.structure]
vendor_name = {type = "text", description = "Name of the vendor or merchant", required = true}
transaction_date = {type = "date", description = "Date of the transaction in ISO format", required = true}
total_amount = {type = "number", description = "Total amount paid", required = true}
currency = {type = "text", description = "Three-letter currency code (e.g. USD, EUR, GBP)", required = true}
category = {type = "text", description = "Expense category", required = true, choices = ["meals", "transport", "lodging", "office_supplies", "entertainment", "subscriptions", "other"]}
item_description = "Brief description of what was purchased"
payment_method = "Payment method used (e.g. credit card, cash, debit)"

[concept.ExpenseReport]
description = "A compiled expense report summarizing all processed receipts"

[concept.ExpenseReport.structure]
report_title = {type = "text", description = "Title of the expense report including date range", required = true}
report_date = {type = "date", description = "Date the report was generated", required = true}
total_expenses = {type = "number", description = "Sum of all receipt amounts", required = true}
currency = {type = "text", description = "Primary currency across receipts", required = true}
number_of_receipts = {type = "integer", description = "Total number of receipts processed", required = true}
line_items = {type = "list", item_type = "concept", item_concept_ref = "expense_reports.ReceiptData", description = "Individual receipt entries", required = true}
category_breakdown = {type = "text", description = "Expenses grouped by category with subtotals", required = true}
notes = "Additional observations such as mixed currencies or flagged items"

# Main pipe — orchestrates the full flow
[pipe.build_expense_report]
type = "PipeSequence"
description = "Extract data from each receipt PDF and compile into an expense report"
inputs = {receipts = "Document[]"}
output = "ExpenseReport"
steps = [
{pipe = "process_receipt", result = "receipt_data_list", batch_over = "receipts", batch_as = "receipt"},
{pipe = "compile_report", result = "expense_report"},
]

# Batch branch — process a single receipt document (extract pages then analyze)
[pipe.process_receipt]
type = "PipeSequence"
description = "Extract pages from a receipt PDF and analyze them"
inputs = {receipt = "Document"}
output = "ReceiptData"
steps = [
{pipe = "extract_pages", result = "pages"},
{pipe = "analyze_receipt", result = "receipt_data"},
]

# Step 1a — Extract pages from a PDF receipt
[pipe.extract_pages]
type = "PipeExtract"
description = "Extract pages from a receipt PDF document"
inputs = {receipt = "Document"}
output = "Page[]"
model = "@default-extract-document"

# Step 1b — Analyze extracted pages to get structured receipt data
[pipe.analyze_receipt]
type = "PipeLLM"
description = "Extract structured receipt data from extracted pages"
inputs = {pages = "Page[]"}
output = "ReceiptData"
model = "$vision"
prompt = """
Analyze this receipt and extract structured data.

@pages

Extract the following:
- Vendor/merchant name
- Transaction date (ISO format YYYY-MM-DD)
- Total amount paid (numeric value)
- Currency (3-letter code, e.g. USD, EUR, GBP)
- Expense category: classify as one of: meals, transport, lodging, office_supplies, entertainment, subscriptions, other
- Brief description of what was purchased
- Payment method if visible (e.g. credit card, cash, debit)

If any field is unclear, use your best judgment based on context clues.
"""

# Step 2 — Compile all receipt data into a final expense report
[pipe.compile_report]
type = "PipeLLM"
description = "Compile all extracted receipt data into a comprehensive expense report"
inputs = {receipt_data_list = "ReceiptData[]"}
output = "ExpenseReport"
model = "$writing-factual"
prompt = """
You are an accounting assistant. Compile the following extracted receipt data into a comprehensive expense report.

@receipt_data_list

Instructions:
- Set report_title as "Expense Report" followed by the date range of the receipts
- Set report_date to today's date
- Calculate total_expenses by summing all receipt amounts
- Determine the primary currency (most frequently used)
- Count the number of receipts
- Include all receipts as line_items preserving all extracted data
- Create a category_breakdown grouping expenses by category with subtotals
- Add notes for anything notable (mixed currencies, missing info, large expenses)
"""
Loading
Loading