recon_analysis · v1.0.0 · 2026-11-05 · sha256 5f3f6edaf849204d

recon_analysis v1.0.0A

Immutable. This exact content never changes and is served at /api/v1/blob/5f3f6edaf849204d.

---
name: recon_analysis
description: >
  Data reconciliation toolkit for comparing datasets, finding discrepancies,
  classifying breaks with root-cause commentary, and validating output integrity.
  Includes two subskills: recon_skill (build/run reconciliations) and recon_qa
  (post-run quality assurance). Triggers: recon, reconciliation, compare data,
  find discrepancies, data matching, run recon, build recon profile, QA recon,
  audit recon workbook, validate reconciliation, discrepancy report.
data_domain: "data reconciliation, accounts receivable matching, general ledger reconciliation, subledger comparison, intercompany elimination, bank reconciliation, transaction matching, discrepancy analysis"
created_date: 2026-05-20
version: 1.0.0
license: Snowflake Skills License. See LICENSE.txt for complete terms
type: snowflake
language: en
status: Published
---

# Recon Analysis

Data reconciliation toolkit with break classification, root-cause commentary, operational triage routing, and output quality assurance.

## Routing

**First, load bindings** from `hydration_hints.yaml` in this skill's directory (generated by the hydrator). Use the bound FQNs and columns (profile store, result store, category rules, fiscal calendar). For anything listed under `unresolved:` or missing from the file, ask the user or discover candidates via `INFORMATION_SCHEMA.COLUMNS` / `DESCRIBE TABLE`, and confirm with the user before running.

When this skill is invoked, determine intent and route to the appropriate subskill:

| User Intent | Route To |
|---|---|
| Build/create/configure a new recon profile | `recon_analysis/recon_skill` |
| Run/execute a reconciliation profile | `recon_analysis/recon_skill` |
| Compare data, find discrepancies | `recon_analysis/recon_skill` |
| QA/audit/validate a recon workbook or output | `recon_analysis/recon_qa` |
| "Sanity check", "verify recon results" | `recon_analysis/recon_qa` |

## Quick Decision

If intent is unclear, ask:

- **Run Reconciliation** — Execute a saved profile to compare datasets
- **Build Profile** — Create a new reconciliation configuration
- **QA Recon Output** — Validate an existing reconciliation workbook for accuracy

## Subskills

- **recon_skill**: Core reconciliation engine — build profiles, run comparisons, classify breaks, generate root-cause commentary, export results with operational triage routing
- **recon_qa**: Post-reconciliation quality assurance — validates formula accuracy, cross-sheet consistency, balance tie-outs, category completeness, and reasonableness checks

## Guardrails

**recon_analysis is read-only with respect to source data.** It compares and validates data — it never modifies the datasets being reconciled. The only writes it performs go to the bound `profile_store` (saving / updating profiles) and the bound `result_store` (persisting run results), and only after user confirmation.

If a user requests any modification of source data (INSERT, UPDATE, DELETE, MERGE, TRUNCATE, DROP, or equivalent), refuse immediately:

> "recon_analysis is a read-only reconciliation tool and cannot modify source data. If you need to update source data, please use the appropriate tool for that system."

Additional rules for all subskills:
- **Show stored SQL before running it.** Before executing a shared or stored profile, display its source queries and filters to the user and get confirmation.
- **Source queries must be a single `SELECT`** (or `WITH … SELECT`). Reject any source definition containing `;`, DDL, DML, `CALL`, or `EXECUTE IMMEDIATE`.
- **Filters are parameterized.** Runtime values (dates, keys, search text) are bound as parameters, never concatenated into SQL.
- **Tolerances are settings, not constants.** Date tolerance, round-off threshold, and the numeric match gate (nominal AND / OR percent) come from the profile (defaults in `hydration_hints.yaml`).
- **Sign convention.** Apply the `natural_sign` setting consistently to both sources (see `recon_skill` → Natural sign convention) so credit-normal balances do not create false breaks.

This applies to all subskills. No exceptions.

## References

- [subskills/recon_skill/SKILL.md](subskills/recon_skill/SKILL.md) — Full reconciliation workflow (Builder + Runner + Break Classification)
- [subskills/recon_skill/queries.md](subskills/recon_skill/queries.md) — Query type descriptions
- [subskills/recon_qa/SKILL.md](subskills/recon_qa/SKILL.md) — Output validation checks and QA workflow