Claude Skill

FAR Clause Checker v3

Bring your Section I. The skill validates every FAR 52.2xx and HHSAR 352.2xx entry against the acquisition.gov Smart Matrix and the JUL 2026 HHSAR Deviations matrix, then writes a standalone compliance report.

v3 · Smart Matrix + HHSAR JUL 2026 Claude Code claude.ai FAR + HHSAR · no DFARS ~72 KB

Install

Pick the path that matches where you use Claude. Same bundle; different drop-in spot.

Recommended: install via the AcqAgent plugin marketplace — two slash commands, no download.

1 Add the marketplace, install the skill
/plugin marketplace add acqagent/skills
/plugin install far-clause-checker@acqagent

acqagent/skills is the GitHub repo that hosts the marketplace catalog; @acqagent is the marketplace name it declares. If Claude Code reports that the plugin isn't in the marketplace, your local catalog is stale — run /plugin marketplace update acqagent and retry.

2 Use it

The skill activates automatically when you ask about FAR or HHSAR clauses, clause dates, deviations, or Section I — no slash command needed. Plugin skills are also directly invocable as /far-clause-checker:far-clause-checker if you want to force it. Try a prompt like:

Check the clause list in Section I of this RFP. Firm-fixed-price,
over the SAT, non-commercial, no set-aside.
+ Updating later
/plugin marketplace update acqagent
/plugin install far-clause-checker@acqagent

Manual install (no marketplace)

Skills are just folders. Unzip the bundle into ~/.claude/skills/ for every project, or into a repo's .claude/skills/ to scope it to that project and commit it for your team.

A macOS / Linux
mkdir -p ~/.claude/skills
curl -L https://acqagent.ai/skills/far-clause-checker.zip -o /tmp/fcc.zip
unzip -o /tmp/fcc.zip -d ~/.claude/skills/
rm /tmp/fcc.zip
B Windows PowerShell
$dest = "$HOME\.claude\skills"
New-Item -ItemType Directory -Force -Path $dest | Out-Null
$zip = "$env:TEMP\fcc.zip"
Invoke-WebRequest "https://acqagent.ai/skills/far-clause-checker.zip" -OutFile $zip
Expand-Archive -Path $zip -DestinationPath $dest -Force
Remove-Item $zip

Verify with ls ~/.claude/skills/far-clause-checker — you should see SKILL.md, scripts/, references/, and CHANGELOG.md. Claude Code watches the skills directories, so a manually dropped skill is picked up in the current session; only creating the top-level skills/ directory for the first time needs a restart.

On claude.ai, a custom skill is uploaded as a .zip whose root is the skill folder. The bundle on this page is already packaged that way — upload it as-is.

1 Download the bundle

Grab far-clause-checker.zip (~72 KB). Don't unzip it, and don't re-zip the inner folder's contents — claude.ai expects the far-clause-checker/ folder at the archive root.

2 Upload it

Open Customize → Skills (in the claude.ai settings, or the Customize item in the Claude desktop app sidebar). Click +, choose Create skill, and upload the .zip. Claude reads SKILL.md and shows the name and description; the toggle next to it controls whether the skill is live.

3 Use it

Start a new chat and ask anything about FAR or HHSAR clauses, clause dates, class deviations, or Section I — Claude loads the skill on its own. Paste or attach your clause list in the same message.

Requirements. Custom skills need a Pro, Max, Team, or Enterprise plan with file creation (code execution) turned on — the skill runs a Python script and writes a .docx, so both halves depend on it. Uploaded skills are private to your own account; they aren't shared across a Team or Enterprise workspace and can't be pushed out centrally by an admin. Skills also don't sync between surfaces: a skill added here is separate from your Claude Code install and from anything uploaded through the API.

What it does

v3 is clause-list-first. The primary input is your actual list — a solicitation or contract Section I, or any list of clause numbers with dates. The parser reads each line for a clause number, an optional Alternate, an optional month-year date, and the word "deviation"; titles are ignored, so pasting straight from a document is fine.

You also give it the action parameters, all of which have defaults: contract type (FFP, FFP_LOE, COST, TM), whether the action is over the SAT, commercial or not, and the set-aside (NONE, SB, 8A, HUBZONE, SDVOSB, WOSB).

Two data sets ship with the skill, and they are disjoint clause families — 52.x routes to one, 352.x to the other:

  • Smart Matrix (acquisition.gov) — the FAR 52.2xx baseline: 809 rows covering 610 clause numbers plus 199 alternates, with title, effective date, prescription reference, and provision-vs-clause.
  • HHSAR Deviations, JUL 2026 — the HHSAR 352.2xx matrix: 85 rows across 75 distinct numbers, with status, class deviation citations, IBR authorization, PCO fill-in flags, UCF section, and coded applicability.

The checks

On FAR 52.2xx entries: whether the number exists in the current baseline, whether a cited Alternate exists, whether your date is older than the current effective date, and whether a Part 19 clause conflicts with the set-aside you stated.

On HHSAR 352.2xx entries: status (Reserved and "do not use or enforce" rows are critical, with the class deviation or court order cited), deviation currency against your own date, missing or extra deviation citations, IBR authorization (full text required where IBR isn't allowed), PCO fill-ins to verify, and applicability fit against the coded column — R-All, R-Over SAT, A-Cost Only, and the rest of the legend.

Across the whole list: Active HHSAR clauses whose R-code fits your action but that are missing from the list, and expected 52.219 clauses missing for the set-aside you stated. Out-of-scope entries (DFARS 252.x) and unparseable lines get their own section rather than a guess.

Output is a standalone .docx: executive summary and counts, status legend, a FAR table, an HHSAR table, the two missing-clause sections, and the out-of-scope list. The raw JSON can be saved alongside it.

Checklist mode

With no clause list, the skill flips to checklist mode and builds the HHSAR clauses grouped into required, as-applicable, and not-applicable for your parameters — with prescriptions, IBR, UCF, fill-in flags, and deviation citations — plus a FAR inventory for whichever Parts you name. Useful when you're assembling Section I rather than checking one.

What changed in v3

  • Both data sources replaced. The DAU Provision & Clause Matrix and the HHS FAR-disposition csv are gone. In their place: the acquisition.gov Smart Matrix for FAR, and the JUL 2026 HHSAR Deviations workbook for HHSAR. The old pair joined on FAR clause number; the new pair doesn't join at all, so all join logic was removed and lookups route by number prefix.
  • HHSAR coverage is new. v2 tracked HHS dispositions of FAR clauses. v3 checks actual HHSAR 352.2xx clauses — status, class deviations, IBR, fill-ins, applicability codes.
  • Real dates anchor the date checks. The v2.1 known issue — comparing matrix dates against deviation dates, which inflated "Action Needed" counts — is fixed by construction: the comparison now uses the date you supplied for each clause.
  • The FAR applicability grid is gone. The Smart Matrix has no contract-type, purpose, or method columns, so v3 doesn't claim a FAR clause "applies" to your action. It points at the prescription reference and leaves that judgment where it belongs. HHSAR applicability codes are authoritative, and those are evaluated.
  • Bundle is 20× smaller — about 72 KB, down from 1.5 MB, since the 1.5 MB DAU workbook is no longer bundled.

Breaking CLI changes

  • --clauses is new: a path to a clause-list file, or an inline semicolon-separated list. Its presence selects check mode; its absence selects checklist mode.
  • --contract-type values changed to FFP, FFP_LOE, COST, TM (v2 used FP, CR, TM).
  • --over-sat yes|no is new; no also covers simplified acquisitions.
  • --purpose and --method are retired. They're accepted and ignored with a printed note, so v2 invocations fail soft.
  • --commercial, --small-biz, --parts, --output, and --data-dir are unchanged. Every parameter now has a default; nothing is required.

Known caveats

  • FAR applicability is not computed. If you want "which FAR clauses apply to my action," v3 gives you the prescription reference to read, not a verdict. That's a deliberate consequence of the Smart Matrix having no applicability grid.
  • HHSAR data is HHS-specific. If you're not at HHS, the 352.x half of the report doesn't apply to you; the FAR half still does.
  • FAR and HHSAR only. DFARS 252.x entries are reported as out of scope rather than guessed at.
  • The bundled runner needs Python 3 and openpyxl to read the HHSAR workbook; it installs openpyxl on first run if it's missing.

Example prompts

Anything in this neighborhood will trigger the skill.

Here's Section I from my RFP — check every clause. FFP, over the SAT,
non-commercial, no set-aside.
Run the FAR clause checker on this list:
52.212-5 (Mar 2026); 352.203-70 (JUN 2026) Deviation; 52.219-3 (Oct 2022)
Build me an HHSAR clause checklist for a cost-reimbursement action
above the SAT with an 8(a) set-aside, plus a FAR inventory for Parts 19 and 27.
Is 352.209-1 still usable, and what class deviation covers it?
Which HHSAR clauses am I missing for a T&M HUBZone award over the SAT?

What's in the bundle

far-clause-checker/
├── SKILL.md                                 # skill prompt + workflow
├── CHANGELOG.md                             # v3 release notes
├── scripts/
│   └── far_checker.py                       # the runner
└── references/
    ├── DATA_DICTIONARY.md                   # column maps, code legend, data quirks
    ├── Smart_Matrix__Acquisition_GOV.csv    # FAR 52.2xx baseline
    └── HHSAR_Deviations_JUL_2026.xlsx       # HHSAR 352.2xx matrix

The runner auto-discovers both data files in references/ — a csv with "matrix" or "smart" in the name, an xlsx with "hhsar" or "deviation". To move to a newer release of either, drop the new file in and remove the old one; no code change needed. Point --data-dir elsewhere to override.

Read references/DATA_DICTIONARY.md before parsing either file by hand. Both carry real quirks the runner already absorbs: a typo'd HHSAR number (352.215.70), RESERVED and DO-NOT-USE prefixes, literal <br> tags in one deviation citation, non-breaking spaces in dates and titles, underscore-style alternate labels, and duplicate numbers where a base and an alternate share a row group.