# Hybrid Fixture

> A Claude skill from andrewstellman/quality-playbook.

- **Type:** Skill
- **Install:** `agentstack add skill-andrewstellman-quality-playbook-hybrid-fixture`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [andrewstellman](https://agentstack.voostack.com/s/andrewstellman)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [andrewstellman](https://github.com/andrewstellman)
- **Source:** https://github.com/andrewstellman/quality-playbook/tree/main/bin/tests/fixtures/classify_project/hybrid_fixture

## Install

```sh
agentstack add skill-andrewstellman-quality-playbook-hybrid-fixture
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Receipt Reconciler (Hybrid classifier fixture)

A skill plus Python orchestrator that helps a small business reconcile
expense receipts against their bookkeeping ledger. Used by
`bin/tests/test_classify_project.py` as a known-Hybrid target for the
v1.5.3 project-type classifier: SKILL.md at fixture root AND substantial
code under `bin/`.

The fixture is a synthetic skill, not a real one in production use. Its
SKILL.md prose is shorter than its code LOC; the heuristic should classify
it as Hybrid (the band where SKILL.md exists alongside dominant code).

## Overview

Receipts arrive as photos, PDFs, or paper that has been scanned. The
ledger is a CSV exported from the bookkeeping system. The skill's job is
to match each receipt to a ledger entry, flag mismatches, and produce a
reconciliation report the operator can hand to their accountant.

The skill is hybrid because the matching itself is mechanical (CSV parsing,
fuzzy string matching, date arithmetic) but the judgment calls — is this
$24.99 charge from the same coffee shop as that $25.04 charge in the
ledger, or two separate visits — need a model to decide.

## Phase 1 — Receipt ingestion

The orchestrator's `bin/ingest.py` walks the receipts folder, OCRs anything
that needs OCR, and emits a normalized JSON record per receipt: vendor,
date, amount, last-four-of-card. The JSON is the contract between the
mechanical layer and the skill prose.

The skill's role in Phase 1 is to verify the OCR output: when the OCR
confidence is below the configured threshold, the skill is asked to look
at the original image and either correct the field or flag it as unread-
able. Unreadable receipts go into a manual-review queue.

## Phase 2 — Ledger ingestion

The orchestrator's `bin/ledger.py` parses the bookkeeping CSV, normalizes
column names, and emits a JSON record per ledger entry. No skill involvement
in Phase 2 — the CSV format is fixed, parsing is mechanical.

## Phase 3 — Matching

The orchestrator's `bin/matcher.py` proposes candidate matches: for each
receipt, the top-K ledger entries by combined date proximity and amount
similarity. The skill is asked to confirm or reject each proposed match,
with an explanation when a match is rejected.

The skill's confirmations and rejections are written back through the
orchestrator's API so the orchestrator can track which receipts have been
matched and which still need human review.

## Phase 4 — Reconciliation report

The orchestrator's `bin/report.py` consolidates matched receipts, unmatched
receipts, and unmatched ledger entries into a single report. The skill is
asked to write the report's narrative summary: which categories had clean
reconciliation, which had problems, what the operator should look at first
when reviewing.

## Anti-patterns

The skill explicitly does not categorize expenses against tax categories,
estimate deductibility, or otherwise act as a tax advisor. Those decisions
are out of scope and the skill points the operator at their accountant.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [andrewstellman](https://github.com/andrewstellman)
- **Source:** [andrewstellman/quality-playbook](https://github.com/andrewstellman/quality-playbook)
- **License:** Apache-2.0

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-andrewstellman-quality-playbook-hybrid-fixture
- Seller: https://agentstack.voostack.com/s/andrewstellman
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
