Skip to content
ClearedStack

Tools · CLIN 0002 Proposal & capture

Acronym Table Builder

Planned

Find every acronym in a draft and produce the definition table reviewers expect.

This tool is planned. There is nothing to open yet. What follows is the plan, and it can change before the tool ships. The guide below covers the same job by hand in the meantime. Jump to the full specification.

What it will do

Paste a draft volume. The tool lists every acronym it finds, where each first appears and whether it is spelled out there. It flags acronyms that are defined and never used again, and acronyms used with two meanings. You write the definitions and the tool builds the table.

You bring

  • The text of a draft proposal volume

You get

  • An acronym table in alphabetical order
  • The acronyms that are undefined, unused or used with two meanings

Built from

  • The solicitation’s own instructions on acronym lists and page counts

Only material the government has officially released to the public. Where the rules live shows how to find and cite each one.

Do it by hand today

  • Answer every requirement · Define the acronymsTurn a solicitation into a numbered list of requirements, a compliance matrix, an outline and a page budget, so nothing is missed.

True of every tool

Free and open source.
No paid tier, no ads, and the code is public.
Runs in your browser.
What you type or open is not sent anywhere.
No tracking.
No accounts, cookies or analytics.
Shows its sources.
Each result names the rule it rests on, so you can check it.
Says what it does not do.
It is an aid for your own work, not professional advice.

What happens to what you type shows how to confirm this yourself, and Check a tool’s answer is the method for verifying a result.

Want it sooner?

Requests decide what is built first. Say what you would use it for, and what you do by hand today.

Issues are public. Leave out real contract data, real rates and anything controlled. How to write a useful request.

Specification · draft

How it is meant to work, in detail

The inputs, the logic, the checks the tool has to pass and the worked examples it is tested against. It is a draft, and the tool is built from it, so it can change until the tool ships.

4 min readLast revised November 2026Source of this specification

Overview & Role#

The Acronym Table Builder (acronym-table-builder) belongs to CLIN 0002 — Proposal & capture in src/data/catalog.ts. It scans finished or near-final proposal draft text to find every acronym, verify first-use expansion, detect conflicting definitions or unused entries, and produce the clean definition table reviewers expect.

As noted in Answer every requirement, reviewers evaluate many proposals under tight timelines. An acronym table built from the finished text—rather than copied from an old template—ensures every term in the proposal is defined and nothing extraneous is listed.

AttributeValue
Tool Slugacronym-table-builder
Catalog CLIN0002 — Proposal & capture
Stack Templatevalidator (local lexical scanner in Moldloft)
Runtime100% static browser-side HTML/CSS/JS (zero backend, zero runtime AI)
LicenseMIT

Governing Regulations & Sources#

  • FAR Part 15 & Section L Formatting Instructions: Many solicitations explicitly require an acronym list (either counted within or excluded from volume page limits) and require every acronym to be spelled out on first use.
  • Section L Precedence: Whether an acronym list belongs in front matter, an appendix, or inline only is governed by Section L (Instructions, conditions, and notices to offerors) or FAR Part 12 Instructions to Offerors.
  • Standard Federal & DoD Acronym Conventions: Bundles a read-only JSON dictionary of common public federal acquisition acronyms (e.g., FAR, DFARS, CLIN, COR, CO, PWS, SOW, SOO, RFP, RFQ, IFB, SAM, NAICS, PSC, CUI, NIST, CMMC, ATO, PoP) strictly as suggested defaults that the user can accept, edit, or override.

Inputs, Processing Logic & Outputs#

Inputs

FieldTypeConstraints & Defaults
draftTextPlain text or MarkdownPasted volume text or local .txt/.md file read in browser memory.
existingAcronymListOptional CSV/text pairs (ACRONYM: Definition)Used to detect defined-but-unused acronyms and pre-fill known project-specific terms.
minLengthInteger (2–5)Defaults to 2 (minimum uppercase characters to treat as an acronym).
ignoreCommonUnitsBooleanDefaults to true (excludes units/identifiers like US, ID, PM, AM, GB, MB, PDF unless defined inline).

Deterministic Processing Logic

  1. Inline definition detection: Scans for explicit expansion patterns in the draft:
    • Full Term Name (ACRONYM) — e.g., "Performance Work Statement (PWS)"
    • ACRONYM (Full Term Name) — e.g., "CUI (Controlled Unclassified Information)"
  2. Standalone acronym extraction: Matches uppercase/alphanumeric tokens (e.g., FAR, CMMC, ISO, 800-171 excluded as pure numeric, DoD, FedRAMP via mixed-case allowlist) and records total occurrence count plus character/line index of first appearance.
  3. First-use compliance check: Flags any acronym whose first appearance in draftText precedes its first inline expansion, or which appears without any inline expansion in the draft.
  4. Collision & orphan detection:
    • Multi-meaning collision: Flags an acronym defined two different ways in the same draft (e.g., PO defined as both Project Officer and Purchase Order).
    • Defined-but-unused orphan: Flags entries present in existingAcronymList that appear zero times in draftText.
  5. Alphabetical normalization: Sorts unique acronyms case-insensitively (A–Z) and formats a clean two-column table (Acronym, Definition).

Outputs

  • Acronym Definition Table: Sorted table with Acronym, Definition (editable inline), Occurrences, First Use Status (Defined at first use | Defined late | Undefined), and Flags (Collision, Unused).
  • QA Summary: Counts of unique acronyms, undefined acronyms, late-defined acronyms, collisions, and unused entries.
  • Local Exports: Markdown table, CSV, and plain-text tab-separated exports for direct paste into Word, LibreOffice, or Markdown proposal drafts.

Clean-Room & 5-Condition QA Requirements#

  1. Browser-only execution: All regex scanning, dictionary lookup, and export formatting run in browser memory.
  2. Strict Content Security Policy (connect-src 'self'): Enforces default-src 'self'; connect-src 'self'; form-action 'none'. Draft proposal text never leaves the user's device.
  3. Zero tracking or accounts: No accounts, analytics, cookies, or beacons. Any optional localStorage state is disclosed and paired with a Clear local data button.
  4. Offline execution: All federal acronym suggestion dictionaries and parsing logic are bundled in the static repo and work without internet access.
  5. Worked examples, citations & scope limits: Verified with synthetic test vectors, cites FAR Part 15 / Section L conventions, includes an MIT LICENSE, and notes that domain-specific acronyms absent from the bundled public dictionary require human confirmation so incorrect expansions are never silently inserted.

Worked Example & Verification#

Synthetic Input (draftText):

The Performance Work Statement (PWS) requires compliance with NIST SP 800-171.
The Contracting Officer (CO) will review the PWS deliverables.
Later, the CO acts as the Change Order (CO) approver, and the SLA applies.

Synthetic existingAcronymList: RFP: Request for Proposal

Expected Deterministic Output:

AcronymDefinitionOccurrencesFirst-Use StatusFlags
COContracting Officer / Change Order3Defined at first useCollision (2 distinct definitions)
NIST(Suggested: National Institute of Standards and Technology)1Undefined inlineNeeds inline expansion
PWSPerformance Work Statement2Defined at first useOK
RFPRequest for Proposal0—Unused in draft
SLA(Suggested: Service Level Agreement)1Undefined inlineNeeds inline expansion

Verification assertions:

  • PWS is captured once with count 2 and status Defined at first use.
  • CO triggers a collision warning because "Contracting Officer (CO)" and "Change Order (CO)" both bind to CO.
  • RFP triggers an Unused warning because its occurrence count in draftText is 0.