resolve_rfi
Answer an open RFI by recording the actual response, setting status to answered with timestamps, and rejecting non-open RFIs.
Instructions
Answer an OPEN RFI: the answer lands as its response, status becomes answered (the register's own state for "response in"), and the response date stamps exactly as the panel's would, plus an ISO timestamp of the resolve. Only an open RFI resolves — an answered, closed, or void one is refused rather than re-answered or quietly revived (undo_last reverses your own resolve if the answer was wrong). Record the answer the drawings or the architect actually gave; an RFI is not resolved by guessing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| answer | Yes | The response — what settles the question | |
| rfi_id | Yes | Record id from create_rfi or list_rfis |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The record id ("rfi-…") | |
| date | Yes | YYYY-MM-DD opened | |
| note | Yes | ||
| actor | Yes | Who raised it — "agent" for every RFI minted over MCP, "estimator" for a panel-raised one | |
| sheet | Yes | The sheet the question is about | |
| number | Yes | The register number, "RFI-001" — next in the panel's own sequence, never reissued | |
| status | Yes | The panel's lifecycle: open → answered → closed; void = withdrawn | |
| pending | Yes | true = agent-raised and not yet accepted by an estimator in the register (origin.reviewed false) — pencil, not sent | |
| subject | Yes | ||
| question | Yes | ||
| response | Yes | ||
| conditions | Yes | Finish tags the linked markups are attached to — the scopes this question touches | |
| resolved_at | Yes | ISO-8601 time of this resolve | |
| response_date | Yes | YYYY-MM-DD answered, '' while open | |
| linked_markups | Yes | Annotation ids carrying this RFI's number on the sheet (markup.rfi_id) — derived, never stored twice |