Skip to main content
DoneThat

AI Adoption GuideConstructionBuild

RFI Auto-Response Drafting

RAG over contract documents and drawings drafts RFI responses for engineer review, with spec clause citations.

Construction processBidAwardPlanMobilizeBuildInspectHandoverClose

By Don, DoneThat’s AI coach · updated

The signed answer is the only answer

A contractor RFI is a request that the contract documents decide a question, or that they show the gap when they do not. Retrieval-augmented drafting is useful only when it returns the passages and sheets that would support a signed reply. It does not replace the stamp.

Treat every generated paragraph as a draft sitting next to its citations. The engineer of record, or the design-manager acting under that stamp, reads the cited clause against the issued set, edits the wording, and signs. Until that happens, the reply is not an RFI response. Project platforms such as Procore and Autodesk will still show an open item in the log. That is correct. An unsigned draft in the queue is not a transmitted answer.

The quality bar is simple. Cite a current spec section or drawing note, or write nothing. Do not invent a clause. Do not clarify a silent spec by guessing what the designer probably meant. Empty stays empty.

Pull the issued set, not last month's folder

Start retrieval from the documents that govern the work right now: the issued-for-construction specifications, the current drawing revisions, and the addenda and ASI that modified them. Index those files with revision dates and transmittal identity so the retriever prefers the latest sheet over a superseded PDF that still sits in the same project folder.

If the RFI asks about a wall type, pull the wall-type schedule, the referenced typical detail, and the specification section that governs that assembly. If it asks about a product substitution, pull the spec section named in the question and any listed proprietary or performance criteria. If the question is really a geometry conflict between models, stop and run it through BIM design clash detection before you draft contractual language. An RFI is the wrong vehicle for a clash the model already shows.

Superseded documents are the first failure mode. A draft that cites Section 07 84 13 from the bid specification, after Addendum 3 replaced the listed firestop systems, will look confident and still be wrong. The citation must include the revision: section number, paragraph, and the addendum or ASI that currently controls. If retrieval returns two versions of the same section, the draft should present both with dates and refuse to prefer the older one.

The same discipline applies to drawings. Citing Detail 5/A-501 when A-501 is at revision 4 and the penetration detail moved to A-502 revision 2 is a miss. Retrieve by sheet number and revision, then read the revision cloud and the issue date. Do not let the model quote a note that was struck.

Scope the corpus. Shop drawings and submittal spec compliance check packages show what the contractor proposed, not what the contract requires, unless they are approved and the RFI is asking about that approval. Daily logs belong in daily site report auto-generation, not in the RFI answer. Mixing a superintendent's narrative with Division 01 requirements is how unofficial direction leaks into the record.

Draft only what the cites can carry

Once the retriever has a short list of passages and sheets, write the draft like an engineer's working note, not a letter from counsel.

Restate the question in one sentence, in the contractor's terms. Then write the proposed reply in the register the office already uses for RFIs: short, limited to the documents, and imperative where the documents are imperative. After each sentence that asserts a requirement, attach the cite: specification section, paragraph, and drawing number with revision. If two documents conflict, say so and cite both. Do not reconcile them in the draft. Reconciliation is a design decision.

Walk through one RFI. RFI 214 from the drywall subcontractor asks whether 3-5/8 inch, 20-gauge studs at 16 inches on center may replace the 6 inch studs shown on the typical interior partition on A-401 for Level 2 corridor walls. Retrieval should return Wall Type P-2 on A-401 at the current revision, Specification Section 09 22 16 for nonstructural metal framing, and any acoustic or fire-rating notes tied to that wall type. Suppose P-2 already schedules 3-5/8 inch studs, Section 09 22 16 paragraph 2.01 lists 20-gauge as the minimum for that height, and the 6 inch typical is an unrevised leftover on a general sheet. The draft can state that Level 2 corridor partitions are Wall Type P-2 per A-401 revision C, that framing shall be 3-5/8 inch 20-gauge at 16 inches on center per 09 22 16 2.01, and that the typical 6 inch note on A-001 does not govern P-2. The engineer opens A-401 revision C and 09 22 16, confirms the addenda did not change either, and signs.

If P-2 still shows 6 inch studs, the draft does not grant the substitution. It cites P-2. If the specification is silent on substitutions for that wall, it does not invent an equal-or-better sentence. The contractor asked for relief. Silence is not relief.

Keep the draft short enough that every assertion has a cite next to it. Long background paragraphs are where unsourced claims hide.

When the spec does not speak, the answer is blank

The second failure mode is filling silence with a plausible guess. Performance specifications omit products on purpose. Drawing notes omit dimensions that are meant to be coordinated in the field. If retrieval returns no clause and no sheet note that actually answers the question, the generated field must stay empty, with a flag that the corpus did not support an answer.

That empty field is the useful result. It tells the engineer the RFI is not a clarification of existing requirements. It may be a change, a missing detail, or a question that belongs on the lookahead constraint scan because the missing decision is already sitting on the critical path. Drafting a reasonable fire rating, stud gauge, or product basis of design in that situation creates a requirement the owner never bought and the engineer never intended.

Do not answer a coordination question with a spec cite that is merely nearby. Section 07 84 13 governing firestopping does not, by proximity, decide whether a mechanical opening is allowed in a rated corridor wall if the drawings never showed the opening. Nearby is not cited. Cited means the clause or note, read in context, decides the question the contractor asked.

If part of the RFI is answered by the documents and part is not, split the draft. Cite what is decided. Leave the undecided portion blank and label it as not found in the issued set. The engineer can then write a separate instruction, ASI, or rejection, instead of letting a mixed paragraph imply that everything was already in the contract.

Nothing leaves the log until a person stamps it

The third failure mode is sending the draft from the queue. Auto-transmit and suggested-reply controls in Procore or Autodesk are not a signature. Configure the workflow so a generated draft cannot change RFI status to answered, closed, or returned without an identified reviewer.

The reviewer checks three things. First, every cite opens to the current revision, not a cached snippet. Second, the wording does not add requirements the cite does not contain. Third, no blank was filled in to be helpful. If those checks fail, the draft is edited or discarded. If they pass, the engineer signs and the platform sends the response.

Record who signed, which specification revision and drawing revision were used, and the RFI number. That trail is what you need when the same question returns as a change-order claim months later. The draft without the stamp is a working file. It is not direction.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first