RUO Financial Audit Controller
Use this skill as the mandatory control gate for RUO Peptides financial-audit updates. It prevents local-only corrections by forcing source authority, propagation, invariants, and stale-output checks before an audit number is treated as final.
Quick Rule
No material RUO correction is complete until the Control Matrix shows every affected ledger as updated, not_applicable, or blocked, and every blocked item has a concrete owner/question.
Supabase Execution Boundary
This skill never authorizes or executes a Supabase mutation. If a control-matrix row requires a Supabase change, prepare that change through ruo-supabase-guardrails and ruo-supabase-mutation-audit as a validated instruction set for Hermes-main/default.
For a Supabase-backed ledger, updated requires Hermes execution evidence plus post-write read-back. A prepared or delivered instruction set is only blocked or pending, never updated. Codex, Claude Code, Genie, and other preparing agents remain read-only even when Pafi approved the underlying business correction.
When This Skill Applies
Use for RUO Peptides / PeptraLabs audit work involving:
- treasury, cash-in/cash-out, bank, crypto, Zen, or custodian balances
- customer credit, receivables, liabilities, or delivered-vs-undelivered value
- Pafi, Vic, Dragoș, Narcis, Ehsan, John Borzea, or staff/internal account balances
- supplier orders, payments, shipping deltas, COA/Janoshik costs, and batch cost allocation
- Bucharest/Ibiza stock, customer delivery, personal consumption, loss/write-off, or on-order stock
- corrections to project cards, PDFs, Airtable, PepInternal, spreadsheet-derived data, or handoff summaries
Do not use this skill for generic legal/claims strategy, ordinary website edits, or final prose polishing unless the work changes audit figures or audit source authority.
Required References
Read these relative references as needed:
references/source-hierarchy.mdwhenever evidence sources conflict or a new source is introduced.references/audit-model.mdwhenever a number changes or a new transaction is added.references/propagation-checklist.mdfor every correction, new transaction, inventory movement, or participant-balance change.references/stale-output-checks.mdbefore finalizing any correction that changes a published or previously reported number.
Workflow
1. Classify The Audit Action
Tag the request with one or more action types:
correctionnew_transactionsource_conflictinventory_movementparticipant_balancecustomer_creditowner_investmentexpense_or_coapublished_outputquestion_pack
If the action touches money, stock, participant balances, or a previously published number, continue through the full control gate.
2. Establish Source Authority
For every material figure, state:
- source
- source rank
- date or
date_unknown - native currency/unit
- confidence
- superseded figure, if any
- conflict treatment
Use the highest-ranked complete source. If the highest-ranked source is incomplete, combine it with the next source and mark the unresolved component.
3. Build The Control Matrix
For every material update, produce this matrix before giving a final answer:
| Ledger / Surface | Status | Required Action | Residual / Exception |
|---|---|---|---|
| Evidence register | updated/not_applicable/blocked | ... | ... |
| Transaction/order ledger | updated/not_applicable/blocked | ... | ... |
| Cash/crypto/bank/Zen | updated/not_applicable/blocked | ... | ... |
| Treasury/custodian target | updated/not_applicable/blocked | ... | ... |
| Customer credit/liability | updated/not_applicable/blocked | ... | ... |
| Receivable/payable | updated/not_applicable/blocked | ... | ... |
| Participant/internal account | updated/not_applicable/blocked | ... | ... |
| Inventory movement/location | updated/not_applicable/blocked | ... | ... |
| Owner investment/capital return | updated/not_applicable/blocked | ... | ... |
| Cost basis/P&L/COA allocation | updated/not_applicable/blocked | ... | ... |
| Exceptions/questions | updated/not_applicable/blocked | ... | ... |
| Published outputs | updated/not_applicable/blocked | ... | ... |
Do not mark a row updated unless the user-facing answer or the actual artifact update states what changed. For a Supabase surface, the change must be supported by Hermes execution evidence and read-back rather than a preparing-agent write.
4. Run The Invariants
Run every invariant that applies:
- Cash:
cash_in - cash_out - separated_treasury = residual - Customer credit:
advance_received - delivered_discounted_value = remaining_credit_or_liability - Participant:
consumption_at_cost - paid = owed_or_credit - Stock:
opening + received - sales - internal_use - losses = closing - Owner investment:
owner_funded_costs - returns - personal_consumption_offsets = net_owner_receivable - COA/batch: testing and logistics costs are allocated to the tested batch/per-vial cost, or explicitly excluded to avoid double-counted P&L
- Published output: no stale key number remains without a superseded/historical label
When an invariant cannot be evaluated, return PASS_WITH_EXCEPTIONS only if the unresolved item does not affect the requested update. Otherwise return BLOCKED.
5. Use Supporting Skills Instead Of Rebuilding Them
Route to existing skills when appropriate:
- Use spreadsheet/data-analysis skills for recalculation workbooks or formula-driven models.
- Use data-quality or metric-diagnostics workflows for source mismatch, grain, duplicate, freshness, or reconciliation gaps.
- Use Audit-Pro after substantial audit summaries, PDFs, procedures, or skills are created or changed.
- Use PDF/report/document skills only for final artifact creation or visual QA.
This skill owns RUO-specific source authority and propagation. It does not replace calculation engines or source reads.
6. Final Verdict
End with one control verdict:
PASS: all affected ledgers updated or explicitly not applicable, invariants balance, stale-output scan complete.PASS_WITH_EXCEPTIONS: update is valid, but named non-blocking exceptions remain.BLOCKED: a core invariant or source authority decision cannot be resolved.REJECTED: the proposed update contradicts controlling evidence or would create an untracked audit state.
Minimum Final Answer Shape
For small corrections, keep the answer compact but include:
Verdict: PASS | PASS_WITH_EXCEPTIONS | BLOCKED | REJECTED
Source authority: ...
Propagation: ...
Numbers changed: ...
Open exceptions: ...
For larger corrections, include the full Control Matrix and invariant checks.
Test Cases
- Ehsan credit correction changes cash-in. Expected: treasury and Dragoș cash target must change by the same delta; old dashboard match becomes superseded unless separately offset.
- Pafi correction conflicts with a Google Sheet order scope. Expected: Pafi correction wins; Google Sheet becomes historical/superseded evidence; stock is recalculated from the corrected scope.
- Customer sale is delivered but not deducted from Bucharest/Ibiza. Expected: inventory row remains
blockedwhile a Hermes instruction set is prepared; it becomes updated only after Hermes evidence and read-back. - Janoshik transport changes. Expected: cost allocation to the specific batch/per-vial cost is required; double-counted company P&L is flagged.
- A PDF/project-card number changes. Expected: stale-number scan and supersession note are required before PASS.