release-parity-test

release-parity-test is a skill for Claude Code, Codex from ignaciohermosillacornejo/copilot-money-mcp. It costs 106 tokens per session (2,908 once invoked), scanned A, original, MIT.

A repeatable end-to-end test that checks whether an MCP integration reports the same data as its web app. MCP is a way for software tools to expose data and actions to an assistant.

In plain words
What is it for?
Use it before releases, after changes to live reads or write tools, or when checking the MCP against the app. It includes read comparisons and round-trip writes with throwaway data.
Why use it?
It catches differences between cached reads, live MCP reads, the web app, and write results before a release.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: reads .claude/ paths; mentions subagents.

Good fit Use it before releases, after changes to live reads or write tools, or when checking the MCP against the app. It includes read comparisons and round-trip writes with throwaway data.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ignaciohermosillacornejo/copilot-money-mcp/release-parity-test
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add ignaciohermosillacornejo/copilot-money-mcp --skill release-parity-test
Clone the repo
git clone --depth 1 https://github.com/ignaciohermosillacornejo/copilot-money-mcp

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for release-parity-test

README.md
[![agentmods](https://agentmods.dev/badge/skills/ignaciohermosillacornejo/copilot-money-mcp/release-parity-test/github.svg)](https://agentmods.dev/skills/ignaciohermosillacornejo/copilot-money-mcp/release-parity-test)
Your own site
<a href="https://agentmods.dev/skills/ignaciohermosillacornejo/copilot-money-mcp/release-parity-test"><img src="https://agentmods.dev/badge/skills/ignaciohermosillacornejo/copilot-money-mcp/release-parity-test/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for release-parity-test

Your own site · 80×15
<a href="https://agentmods.dev/skills/ignaciohermosillacornejo/copilot-money-mcp/release-parity-test"><img src="https://agentmods.dev/badge/skills/ignaciohermosillacornejo/copilot-money-mcp/release-parity-test.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 106 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,908 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00106 $0.02908
Opus 5.5 $0.00042 $0.01163
Sonnet 5.5 $0.00021 $0.00582
Haiku 4.5 $0.00011 $0.00291

Measured today against content hash d3969abe69e0, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

release-parity-test scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/release-parity-test/SKILL.md · 201 lines

How it starts

The opening of the file, as written. The whole thing — 201 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Release Parity Test

A repeatable end-to-end check that what the MCP reports matches what Copilot's own web app shows, in both read modes, and that every write is visible to the next read. First run: 2026-10-14, before v3.0 (issues #820–#825). The plan was then reviewed against the code and the docs/bugs/ corpus, which added most of the not run rows.

The case list lives in test-matrix.md. This file is the procedure. To extend the test, add rows there (its "How to extend" section); change this file only when the procedure itself changes.

A full run is long. When time is short, run every [P1] row plus the rows whose Last run is a FAIL, and record the rest as SKIP (not run this time).

When to use

  • Before a release (the version-bump PR), after the last feature merge
  • After a change to src/tools/live/, src/core/live-database.ts, the write tools in src/tools/tools.ts, the field-selection presets, or skills/ (then include the SKL section)
  • The user asks to "test against the web app", "run the parity test", or "check the MCP matches Copilot"

Do NOT use if

  • The question is one enum or field against production → bun run smoke
  • The user wants a financial analysis → /finance-pulse, /finance-cleanup
  • There is no Manual account and the user has not agreed to the write cases being skipped (see Guardrail 2)

Guardrails

  1. The web app is ground truth. When the MCP and the web app disagree, the bug is in our code or our description until shown otherwise. Copilot-side quirks get documented, not "fixed".
  2. Writes go only to the Manual account the user names in chat for this run. Every created object's name starts with ZZ MCP Test <RUN>, where <RUN> is the run's YYYYMMDD-HHMM, so leftovers from an earlier run cannot be mistaken for this run's objects. The cleanup ledger is a section of the local report file. Log each write before sending it (planned name, account, date, amount, expected balance effect, status sent); when the response arrives, add the id and set created; save after every line. Before any update, split or delete, the id must be in this run's ledger, its account_id must be the Manual account, and a live read must show its name still carries the run prefix.
  3. Changing a setting on a real account (hiding it, for example) needs the user's explicit yes in chat for that run, and must be undone in the same run. Approval from a previous run does not carry over.
  4. Never delete a split parent. Delete the children only (#822). Deleting the parent double-credits the account balance.
  5. PII. Real balances, amounts, account, merchant and place names go only into the local report under docs/superpowers/ (gitignored). test-matrix.md, issues and PRs get PASS/FAIL, ratios and synthetic numbers. The session transcript holds real figures too (tool output, page text): never paste from it into an issue or PR without rewriting the figures.
  6. Cleanup always runs, including after a failure partway through. It works from the ledger file, so a new session can finish it: Phase 0 reads the latest RELEASE-PARITY-TEST-*.md and completes any ledger line not marked confirmed-gone before starting. Check the balance after every cleanup group (CL-07). Stop and tell the user, without trying to repair anything, if the balance moves by an amount the ledger does not explain, or if any write reached a non-Manual account.
  7. Web automation. The web column needs the Claude in Chrome extension; its skill is provided by the host, not this repo. Load its tools first. If it is unavailable, every web comparison is SKIP (no browser), never PASS on two sources: the web is the ground truth. Read pages with the extension's page-text tool rather than screenshots, and read figures from the page's own search, filters and totals, never by counting rendered rows (lists load more as you scroll). Record the raw text you read. Before filing a FAIL that rests on a web figure, reload and read it again; right after a write, wait 30 seconds and reload once. If an input misbehaves (masked or content-editable fields), stop and ask the user to do that one step; never commit a value you have not read back.
  8. A write that errors may still have landed. On any write error do not retry. That includes writeMayHaveApplied, a bulk edit's "N/M succeeded", deleted: false, and a shape error after the call. First run refresh_cache { scope: "transactions", months: [...] }, search live for the run prefix, and check the web. Set the ledger line to what actually happened. Retry only once the object is confirmed absent.
  9. Keep test rows away from real data unless the case needs it. When a case needs a real category (TXN-05, a split child), note that category's month total in the web before the write and check it at the end (CL-08). Test names must contain no real merchant name, since a real recurring's rule could pick the row up (REC-05). Use set_budget only on the test category, and restore a budget to its previous value: "0" is a budget of zero, not "no budget".

Read the full file on GitHub · 201 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today First seen · 201 lines · 106 tokens per session scan A d3969abe69e0

Subscribe to this mod's changes

release-parity-test is a skill published in the GitHub repository ignaciohermosillacornejo/copilot-money-mcp (85 stars, last pushed yesterday), licensed MIT. It adds 106 tokens to every session and 2,908 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-16.

Related

Other skills, from other repositories

mandu-testing

Testing patterns for Mandu applications. Use when writing unit tests, integration tests, or E2E tests. Triggers on test, spec, Bun test, Playwright, or testing tasks.

konamgil/mandu · 42 tokens

smoke-test

Post-restart smoke tests + auto-fix for the memex server environment. Walks a fixed check list over the real CLI and MCP surface (status, doctor, search, page round-trip), auto-fixes known issues, and reports what's left.

timurgaleev/memex · 55 tokens

e2e-test-engineer

Use when the user asks to create, improve, review, or repair end-to-end tests for a meaningful user workflow across the UI, runtime, backend, or installed application. Validate the real workflow at the highest useful boundary while keeping environments, accounts, and test data controlled.

lfyxhappy/lfcode · 62 tokens

visual-regression-tester

Use when the user asks to detect, review, prevent, or update visual regressions in a web, desktop, or mobile interface. Capture comparable rendered states, control viewport and data variance, inspect image differences, and distinguish intended design changes from rendering defects.

lfyxhappy/lfcode · 57 tokens

bxc-next-playwright

This skill should be used for @aphrody/next-playwright — the Next.js instant() navigation-testing primitive ported to bxc's CDP-backed runner, the next-instant-navigation-testing cookie protocol over Network.setCookies/getCookies/deleteCookies, adapting a bxc page to a Playwright-like page, and step reporting.

aphrody-code/bxc · 72 tokens

cuj-guardian

Run and triage AI Atelie's Critical User Journey (CUJ) for every PR — the single end-to-end test that proves a user can open the app, create a project, drive the Claude Code agent, and see the canvas render. Before running, gate by inspecting the PR diff for changes that plausibly affect the journey (routes…

aiatelie/ai-atelie · 137 tokens