Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Maps code, architecture, and infrastructure changes to specific control IDs in PCI-DSS v4.0 and MAS TRM (Singapore financial regulator), producing an audit-traceable findings report with per-control remediation.
.claude/skills/sickn33-fsi-compliance-checker/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | -24% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 102% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 348% | 0% |
Maps a concrete change (code diff, architecture design, IaC, pipeline config) to the specific controls it touches in financial services compliance frameworks — PCI-DSS v4.0 for payment card data and MAS TRM for Singapore-regulated institutions — and reports gaps with actionable remediation. This is engineering-level compliance triage: it helps teams catch violations before audit, but it does not replace a qualified assessor (QSA) or the institution's compliance function. Say so in every report.
Load only the reference file(s) the engagement needs:
| Situation | Load | |-----------|------| | Payment card data is stored, processed, or transmitted | pci-dss.md | | Singapore-regulated financial institution (bank, insurer, capital markets, major payment institution) | mas-trm.md | | Both apply (e.g. Singapore bank handling cards) | Both files | | Other jurisdictions/frameworks (SOX, GDPR, HKMA, APRA) | State they are out of scope; offer general secure-engineering review instead |
If the user hasn't said which applies, ask one question: what data does the change touch, and is the institution Singapore-regulated?
Identify what the diff/design actually touches: data elements (card data? customer PII? credentials?), trust boundaries, environments (production? DR?), and third parties.
Select the applicable controls from the loaded reference file(s) — typically 5-15 controls, not the whole framework. List what you ruled out and why (one line each) so the scoping is auditable. Assess each as Compliant / Gap / Needs evidence (can't tell from the artifact — name the evidence required).
Every Gap gets: the control ID, what's wrong in this specific change, concrete remediation, and severity (Critical = violation involving live regulated data; High = control absent; Medium = control partial/undocumented).
markdown# Compliance Review: [change title] **Frameworks:** [PCI-DSS v4.0 / MAS TRM 2021] · **Date:** [YYYY-MM-DD] **Scope:** [what was reviewed: files, design doc, pipeline] > Engineering triage only — not a substitute for QSA assessment or the compliance function. ## Data & Boundary Analysis - Data elements touched: [e.g. PAN (masked), customer NRIC, none] - Environments/boundaries: [e.g. CDE-adjacent service, public API] ## Findings | # | Control | Status | Severity | Finding | Remediation | |---|---------|--------|----------|---------|-------------| | 1 | [PCI 3.5.1] | Gap | Critical | [specific issue in this change] | [specific fix] | ## Ruled Out (not applicable) - [Control area] — [one-line reason] ## Evidence Needed - [Control]: [what artifact would demonstrate compliance]
Offer to turn findings into backlog items with the control ID in each story for traceability.
User: "Is this PCI-DSS compliant: we log the full request body of card authorization calls for debugging?"
Skill: Loads pci-dss.md → Critical findings against 3.3.1 (CVV must never be stored post-authorization — logs are storage), 3.4.1 (PAN display masking), 3.5.1 (PAN unreadable at rest); remediation: remove the log line or apply a field-allowlist redaction filter; flags downstream log-pipeline scoping (10.3.x); QSA disclaimer included.
User: "Our Singapore bank is moving the customer notification service to a cloud region in another country. MAS TRM implications?"
Skill: Loads mas-trm.md → reviews against §11.5 (cloud: due diligence, data residency, exit strategy), flags the MAS Outsourcing Guidelines as a related instrument, asks what customer data the service touches before rating severity.
Changes that almost always have compliance impact — check proactively when they appear in a diff:
Needs evidence.Adapted from timwukp/agent-skills-best-practice (MIT), where the skill ships with evals and a documented 4-layer test methodology (see the repo's TESTING.md).
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 24,445 | 33,370 | +37% | 1 | 1 | 0% | 4,176 | 4,033 | -3% | 0 | 0 | — |
case-02 | fail→fail | 40,901 | 17,490 | -57% | 1 | 1 | 0% | 7,122 | 4,552 | -36% | 0 | 0 | — |
case-03 | fail→pass | 31,235 | 14,426 | -54% | 1 | 1 | 0% | 5,156 | 3,923 | -24% | 0 | 0 | — |
case-04 | fail→pass | 17,646 | 5,835 | -67% | 1 | 1 | 0% | 2,770 | 2,474 | -11% | 0 | 0 | — |
case-10 | pass→pass | 10,046 | 11,727 | +17% | 1 | 1 | 0% | 1,844 | 3,673 | +99% | 0 | 0 | — |
case-05 | fail→fail | 2,581 | 21,297 | +725% | 1 | 1 | 0% | 382 | 3,058 | +701% | 0 | 0 | — |
case-06 | pass→pass | 9,698 | 6,942 | -28% | 1 | 1 | 0% | 1,266 | 2,691 | +113% | 0 | 0 | — |
case-07 | fail→pass | 17,729 | 7,221 | -59% | 1 | 1 | 0% | 2,831 | 2,807 | -1% | 0 | 0 | — |
case-08 | fail→pass | 18,918 | 11,561 | -39% | 1 | 1 | 0% | 1,700 | 3,427 | +102% | 0 | 0 | — |
case-09 | pass→pass | 21,141 | 15,387 | -27% | 1 | 1 | 0% | 3,105 | 4,108 | +32% | 0 | 0 | — |
case-11 | fail→pass | 3,272 | 3,468 | +6% | 1 | 1 | 0% | 469 | 2,101 | +348% | 0 | 0 | — |
case-12 | pass→pass | 15,966 | 11,858 | -26% | 1 | 1 | 0% | 2,340 | 3,408 | +46% | 0 | 0 | — |
case-13 | pass→pass | 16,224 | 16,071 | -1% | 1 | 1 | 0% | 2,634 | 4,281 | +63% | 0 | 0 | — |
case-14 | fail→fail | 14,980 | 12,540 | -16% | 1 | 1 | 0% | 2,241 | 3,580 | +60% | 0 | 0 | — |
case-15 | fail→fail | 18,988 | 20,204 | +6% | 1 | 1 | 0% | 3,007 | 4,873 | +62% | 0 | 0 | — |
case-16 | pass→pass | 8,346 | 16,377 | +96% | 1 | 1 | 0% | 1,485 | 4,352 | +193% | 0 | 0 | — |
case-17 | fail→pass | 17,712 | 5,496 | -69% | 1 | 1 | 0% | 2,827 | 2,402 | -15% | 0 | 0 | — |
case-18 | pass→pass | 14,305 | 13,699 | -4% | 1 | 1 | 0% | 2,359 | 3,792 | +61% | 0 | 0 | — |
case-19 | pass→pass | 15,248 | 16,999 | +11% | 1 | 1 | 0% | 2,387 | 4,399 | +84% | 0 | 0 | — |
case-20 | pass→pass | 18,829 | 17,996 | -4% | 1 | 1 | 0% | 2,767 | 4,500 | +63% | 0 | 0 | — |
case-21 | pass→pass | 12,557 | 9,803 | -22% | 1 | 1 | 0% | 2,024 | 3,173 | +57% | 0 | 0 | — |
case-22 | pass→pass | 17,198 | 13,234 | -23% | 1 | 1 | 0% | 2,823 | 3,768 | +33% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +27 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.