diff --git a/rfp-analyzer/SKILL.md b/rfp-analyzer/SKILL.md new file mode 100644 index 0000000..2300e77 --- /dev/null +++ b/rfp-analyzer/SKILL.md @@ -0,0 +1,170 @@ +--- +name: rfp-analyzer +description: "Analyze RFP, solicitation, IFB, or RFQ documents and generate a full proposal management package: compliance matrix, annotated proposal outline (with verbatim RFP criteria in red under every heading), required forms list, and deadline timeline. Use whenever a user uploads procurement documents or mentions: RFP, solicitation, Section L, Section M, PWS, SOW, BAFO, IFB, RFQ, compliance matrix, proposal outline, \"shred this RFP\", \"proposal kickoff\", \"what forms do I need\", \"what are the deadlines\", or \"help me respond to this\". Specialized for FTA-funded public transit procurements (Buy America, DBE, FTA Circular 4220.1F) but handles all government and commercial RFP types. When in doubt, use this skill — missing it costs proposal teams hours of manual work." +--- + +# RFP Analyzer — Proposal Management Skill + +You are helping a proposal professional respond to a complex procurement solicitation. Your job is to read every document in the RFP package, extract and organize information, and produce a set of professional artifacts that the proposal team can use to manage the pursuit. + +The output format is Word (.docx) for narrative artifacts, Excel (.xlsx) for structured matrices and trackers, and occasionally PDF for extracted or annotated forms. + +**Before you begin:** Read the docx SKILL.md and the xlsx SKILL.md from the skills directory. Those skills define how to produce professional Word and Excel files — follow their guidance. + +--- + +## Step 1 — Intake and Document Classification + +When the user provides documents, start by inventorying what you have. Read every file completely before producing any outputs — the requirements, deadlines, and forms you need are often scattered across multiple documents and amendments. + +For each file, determine: +- **Document type**: Base RFP/solicitation, Amendment/Addendum, Pricing schedule/Excel workbook, Technical specifications/PWS/SOW, Required forms/attachments, Reference documents (DBE plan, Buy America cert, etc.) +- **Dominant structure**: Does it follow standard federal section lettering (Sections A–M)? Custom agency format? Hybrid? + +Announce your inventory to the user before proceeding: e.g., "I've found 4 documents: the base solicitation, Amendment 1, a DBE requirements attachment, and a pricing Excel. Here's what I'll do with each..." + +### FTA-Specific Patterns to Watch For + +For federally funded public transit procurements, look for these standard elements: + +- **Buy America** requirements (49 U.S.C. § 5323(j)) — often requires a certification form +- **DBE (Disadvantaged Business Enterprise)** participation goals, good faith effort requirements, reporting obligations +- **Davis-Bacon Act** prevailing wage applicability (for construction/rolling stock) +- **FTA Circular 4220.1F** procurement clauses (third-party contract requirements) +- **ADA compliance** and accessibility requirements +- **Charter service / school bus** prohibitions +- **FMVSS** (Federal Motor Vehicle Safety Standards) for vehicle procurements +- **Federal lobbying certifications** (Byrd Amendment) +- **Debarment and suspension certifications** +- **Equal Employment Opportunity (EEO)** requirements and forms +- **Drug and Alcohol testing program** certifications + +--- + +## Step 2 — Requirements Extraction ("Shredding the RFP") + +Carefully read through the solicitation and extract **every statement that obligates the offeror**. These are the requirements that will populate your compliance matrix. + +Use these linguistic markers to identify requirements: +- **Mandatory**: shall, must, is required to, will be required, is mandatory, is expected to +- **Conditional**: should, may be required, may need to, as applicable +- **Submission**: offerors shall submit, proposals must include, provide evidence of, demonstrate + +Organize requirements by **source section** (e.g., Section C, Section L, Attachment A). For each requirement, capture: +1. Section/page reference +2. The requirement verbatim (or faithfully paraphrased if very long) +3. Requirement type: Technical / Management / Past Performance / Price/Cost / Administrative / Certification +4. Whether it's a submission requirement (what goes in the proposal) vs. a performance requirement (what you'll do during the contract) + +--- + +## Step 3 — Generate the Artifacts + +Produce all requested artifacts. If the user asks for specific ones, start there; otherwise produce all four by default. + +### Artifact 1: Proposal Outline (Word .docx) + +The goal of this document is to give writers a ready-to-fill shell where they never have to cross-reference the RFP. Every requirement is embedded right below the heading it lives under — in red — so writers compose in black below the red text, and reviewers can perform a qualitative compliance check by confirming every red item is addressed in the black text beneath it. + +#### Overall Volume Structure + +Use Shipley/APMP methodology to determine the top-level volume structure, driven by the RFP's Section L (Instructions to Offerors) or equivalent. A typical transit procurement will look like: + +``` +Volume I — Technical Proposal +Volume II — Price/Cost Proposal +Volume III — Certifications, Representations & Required Forms +``` + +If Section L specifies different volumes or a different sequence, follow the RFP exactly. + +#### How to Build Each Section and Its Headings + +For **every section and subsection** of the outline: + +1. **Name the heading to match the RFP.** Use the RFP's exact heading text when available; otherwise write a concise 2–3 word label. + +2. **Paste the criteria verbatim, in red, directly under the heading.** Format this text in **red font** (RGB 255, 0, 0). If multiple requirements from different RFP sections apply, list each one in red, preceded by its source reference in bold. + +3. **Add a writer's placeholder in black.** After the red criteria block, add: `[DRAFT RESPONSE — REPLACE THIS TEXT]` + +#### Heading Hierarchy + +- **Heading 1** — Volume titles +- **Heading 2** — Major sections within a volume +- **Heading 3** — Subsections driven by RFP section breaks or Section M sub-factors +- **Heading 4** — One heading per individually numbered RFP clause + +**Every individually numbered clause gets its own Heading 4.** Do not group multiple numbered clauses under a single heading. + +#### Technical Implementation + +Use python-docx. Key details: +- Apply proper Word Heading styles so the auto-generated Table of Contents works +- Red criteria text: `run.font.color.rgb = RGBColor(0xFF, 0x00, 0x00)` +- Include: cover page, auto-generated Table of Contents (2 levels deep), page numbers in footer +- Note page limits for each major section as a parenthetical in the heading line + +Use the docx skill to produce it. + +### Artifact 2: Compliance Matrix (Excel .xlsx) + +Columns (in order): Req # | RFP Ref | Requirement Text | Req Type | Submission Req? | Proposal Section | Compliance | Compliance Notes | Owner | Status | Comments + +**Formatting:** +- Freeze top row; use auto-filter on all columns +- Color-code by requirement type using a legend tab +- Conditional formatting on Status: Not Started = white, In Progress = yellow, Complete = green +- Summary tab: counts by type, compliance status, and owner + +Use the xlsx skill to produce it. + +### Artifact 3: Required Forms & Attachments List (Word .docx) + +Extract every form, certification, representation, or attachment that must be included in the proposal submission. For each: form name/number, source section, who completes it, due timing (with proposal vs. at award), notes, link/location. + +Common FTA forms: Buy America certification, DBE participation form, Lobbying Certification (SF-LLL), Debarment/Suspension Certification, EEO forms, Contractor Information forms, Pricing forms, Subcontracting plan. + +Format as a table sorted by responsible party (prime first, then subs, then key personnel). Use the docx skill. + +### Artifact 4: Proposal Timeline & Deadlines (Excel .xlsx) + +Extract every date, deadline, and key event. For each: date, time, time zone, location or delivery instructions, mandatory or optional. + +Events to capture: Solicitation issue date, Pre-proposal conference, Site visit, Questions due, Q&A response date, Draft proposal due, Final proposal due (date + time + delivery method), Oral presentations, BAFO deadline, Award date, Period of performance start. + +Also extract: page/volume limits, font requirements, file format requirements, delivery instructions. + +Format: Tab 1 = table, Tab 2 = Gantt/timeline chart. Use the xlsx skill. + +--- + +## Step 4 — Output Delivery + +Save all artifacts to the outputs folder. Name files: +- `[Agency]_[Solicitation#]_Proposal-Outline.docx` +- `[Agency]_[Solicitation#]_Compliance-Matrix.xlsx` +- `[Agency]_[Solicitation#]_Required-Forms.docx` +- `[Agency]_[Solicitation#]_Proposal-Timeline.xlsx` + +After delivering, provide a brief summary: total requirement count, key deadlines, critical observations, and recommended next steps using Shipley methodology. + +--- + +## Handling Ambiguity and Gaps + +- **Conflicting requirements** between base RFP and amendment: amendment governs — note in compliance matrix +- **Unclear requirements**: flag in Comments column with "CLARIFICATION NEEDED — recommend Q&A submission" +- **Missing information**: note the gap in summary and suggest asking during Q&A period + +--- + +## Quality Check Before Delivering + +- [ ] Every "shall/must" statement from Sections L and M appears in the compliance matrix +- [ ] The proposal outline has a heading for every Section L submission requirement and every Section M evaluation factor +- [ ] Each heading in the proposal outline has verbatim RFP criteria text in red beneath it +- [ ] Every Section M evaluation factor appears as red criteria text in at least one outline section +- [ ] All forms listed in the instructions/clauses section appear in the forms document +- [ ] The timeline includes the proposal submission deadline with correct date, time, and delivery method +- [ ] File names include the agency and solicitation number