Phase1 Three Way Match — DevOps skill for Claude Code
AI agent that performs three-way match (PO + goods receipt + vendor invoice) against Odoo ERP.
How to install Phase1 Three Way Match
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open bwcaputo/phase1-three-way-match and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Phase1 Three Way Match does
AI agent that performs three-way match (PO + goods receipt + vendor invoice) against Odoo ERP. Built with Claude and Python to show how mid-market finance teams can deploy agentic AI on real back-office work.
Alternatives in DevOps
- Chat — chat web app for teams, sass with user management and ratelimit, support chatgpt(openai & azure), claude, gemi 568 ★
- Deploy Status — SSH to 2anki.net, show pm2 status and recent server log tail 324 ★
- Deploy Info — Show what will deploy next — diff staging vs main with issue/PR summary, risk assessment, and deploy checklist 117 ★
README
Three-Way Match Agent
An AI agent that reads a vendor invoice, the purchase order it claims to be against, and the goods receipt that proves the goods arrived — and tells an AP clerk whether to pay it, hold it, or block it. Runs against a real Odoo instance in Docker.
Why this workflow
Three-way match is the control every mid-market finance team says they do and half of them do partially. A purchase order, a goods receipt, and a vendor invoice all have to agree on who, what, how many, and how much before money leaves the company. When a team does it by hand, the same clerk checks thousands of invoices a month, misses the small variances because the small variances look like the big ones, and leaves an audit trail that says "approved by J. Smith" with no supporting evidence.
An agent fits this job because the work is structured, the rules are already written, and the hard part is judgment at the margin — not reading the documents. The agent does the reading and the arithmetic. A human still owns the exceptions.
What this repo does
Point the agent at a vendor invoice number. It will:
- Pull the invoice from Odoo
- Pull the purchase order the invoice references
- Pull the goods receipt tied to that PO
- Check the vendor's other invoices for a duplicate
- Run a deterministic match that flags discrepancies across vendor, quantity, unit price, and totals
- Recommend one of three actions — approve, route for review, or block — with a plain-English rationale and a full audit trail
The agent narrates. The code decides. The model never computes a dollar amount or decides the final action — that's the only way to make an AP agent that a finance team will trust.
Scorecard
Seven experiments. Four RPST axes. The scorecard a consulting team runs before a client picks an AP agent.
| Variant | RPST Axis | Model | Accuracy |
|---|---|---|---|
| baseline | — | Sonnet 4.6 | 96.7% (29/30) |
| tight_tolerance | Policy | Sonnet 4.6 | 90.0% (27/30) |
Related Skills
Prized
Prized — independent third-party profile of a public API surface, by API Evangelist. Prized is an AI-powered p
Deploy Receipt
Enforces Law 4 (Verify Before Reporting) of the 7 Laws of AI Agent Discipline at the deploy seam. A merge into
Model Market Comparison
Compare open-source & frontier LLM prices across providers (OpenRouter, AWS Bedrock, Azure Foundry, GitHub Cop
AI Contributing
Open-source multi-agent governance for running multiple AI coding agents in parallel on one GitHub repo: issue
Arness
Structured AI workflows for Claude Code — from first idea to production deploy. Three plugins: Spark (discover
Pocket Term
Pocket web terminal in three tiers (L0 one-off / L1 persistent / L2 custom domain) — ttyd + Tailscale/Cloudfla
Related Agents
Flux Finance
Use this agent when the user needs help with financial management, cash flow analysis, expense tracking, reven
Pattern Finder
Find the canonical JellyRock implementation pattern for a given task or question. Examples: \"How do I show a
Cr Verifier
Adversarial verifier of the agentic code review — receives candidate findings and tries to refute them, by exe