rfa-checklist-field-mapper¶
rfa-checklist-field-mapper1.0.0noneTags: rfa checklist field-mapping evaluation plain-prompt clef json
Audience: evaluation-staff
Manifestations in repo: prompt.md
Sorts the text of a free-form RFA checklist into the 28 fields of the RFA Plan B human gold, by copying passages only. It lets a checklist that has no JSON contract, such as the output of rfa-checklist-plain-prompt, be scored with the CLEF judge field by field, like the rfa-checklist-extraction workflow v3.1.0 field output.
Output contract: schema.json
Contract scope: repo-local
Inputs¶
One checklist as plain text or Markdown, inserted at {{CHECKLIST}}. The model sees nothing else: not the announcement, not the gold, not other runs.
Outputs¶
One JSON object with the 28 field names as keys. Each value is a list of passages copied from the checklist; an empty list means the checklist gives nothing for that field. The caller checks every passage in code and drops any that is not a verbatim substring of the checklist, so the field values contain only the checklist's own text.
Contract scope¶
Repo-local. The field names and descriptions are copied unchanged from rfa-checklist-extraction-udm schema.json v1.0.0 (commit 098ab80), limited to the 28 fields the Plan B gold scores. The output shape (lists of passages) is this component's own.
Triad integration¶
- Evaluation datasets:
evaluation_results/rfa-checklist-extraction/arms/plain-prompt/field-mapping/in AI4RA/evaluation-data-sets; itsMAPPING_PLAN.md(approved by Barrie Robison 2026-10-29) sets the model, the quote check and how field values are built. - Harness notes: run by
runners/rfa-checklist-vandalizer/scripts/run_field_mapper.pyin AI4RA/evaluation-harness. - Shared UDM relationship: none.
Manifestations¶
prompt.md— canonical prompt
Evals¶
No eval cases. See evals/.
Provenance¶
Drafted 2026-10-29 with Barrie Robison, as the field-mapping step of the plan to score plain-prompt checklists with CLEF.
Contract scope¶
-
Output format:
json_object -
Contract scope:
repo_local_field_mapping_contract -
Validation surfaces:
json_schema -
Schema entrypoints:
# -
Notes: Repo-local evaluation instrument. Copies passages from a free-form RFA checklist into the 28 RFA Plan B gold fields (descriptions from rfa-checklist-extraction-udm schema.json v1.0.0); every value is a list of verbatim passages, checked by the caller.
-
Machine-readable catalog entry:
component_catalog.json
Triad integration¶
-
Evaluation datasets: no shared
evaluation-data-setscatalog entry recorded yet; current references are repo-local eval artifacts. -
Harness notes: Run by runners/rfa-checklist-vandalizer/scripts/run_field_mapper.py, under the plan in evaluation-data-sets arms/plain-prompt/field-mapping/MAPPING_PLAN.md.
Prompt body¶
Source: prompt.md.
Show prompt
RFA Checklist Field Mapper¶
Purpose: Moves the text of a free-form RFA checklist into the 28 fields of the RFA Plan B gold, by copying passages only, so the checklist can be scored with the CLEF judge like the
rfa-checklist-extractionworkflow v3.1.0 field output.Expected input: One checklist as plain text or Markdown, inserted at
{{CHECKLIST}}. Nothing else: not the announcement, not the gold.Expected output: One JSON object with all 28 field names as keys; each value is a list of passages copied exactly from the checklist. See
schema.json.
Relationship to other components¶
The field names and their descriptions are copied unchanged from rfa-checklist-extraction-udm schema.json v1.0.0 (commit 098ab80), which mirrors the workflow v3.1.0 fields one for one. Those descriptions were written for extracting from an announcement; the prompt tells the model to use them only to decide where a passage belongs. The caller checks every passage against the checklist in code and drops any passage that is not a verbatim substring. This component is an evaluation instrument, not a checklist generator.
Prompt¶
You will receive a checklist that someone wrote from a funding announcement (RFA). Your job is to sort the checklist's own text into the fields listed below. You are not writing a checklist and you are not extracting from the announcement. You only copy.
Rules:
-
For each field, list the passages from the checklist that give that field's information. Copy each passage exactly as it appears in the checklist: the same words, numbers, spelling and punctuation. Do not rewrite, summarize, shorten inside a passage, combine passages, correct, or complete anything.
-
A passage is a contiguous piece of the checklist's text: a whole line, a sentence, or part of a line. Do not include list bullets or numbering at its start. If a line is a heading and the information is on the lines under it, copy the lines with the information; include the heading only when it carries information itself.
-
Use only the checklist. Do not add anything from your own knowledge, the sponsor's standard rules, or what the announcement probably says. If the checklist does not give a field's information, return an empty list for that field.
-
Do not copy "Not stated" or similar placeholders as a field's information.
-
Look through the whole checklist for every field, not only the section whose name matches. The same passage may go in more than one field.
-
The field descriptions say what information belongs in each field. Use them only to decide which passages belong where. Ignore anything in them about how a value should be written, formatted, resolved, merged with sponsor defaults, or filled in when absent.
Fields:
-
rfa_number(single value): The sponsor's announcement number without agency prefix (e.g., '26-508', 'PA-24-246'). -
rfa_title(single value): Full title of the funding opportunity, including any track or component designation. -
sponsor_name(single value): Full name of the lead sponsoring agency (e.g., 'National Science Foundation'); never an abbreviation. Resolved downstream to Sponsor_Organization_ID. -
program_code(single value): Sponsor's internal program or division code (e.g., 'NSF/TIP/ITE'). Null when not stated. -
announcement_url(single value): Canonical URL of the announcement on the sponsor's site. Null when not present. -
opportunity_number(single value): Grants.gov or portal opportunity ID when distinct from rfa_number. -
cfda_number(single value): CFDA / Assistance Listing number(s); comma-separated when multiple. -
funding_instrument_type(single value): Award mechanism in the document's own term ('Grant', 'Cooperative Agreement', 'Contract', ...). Null when not stated; never guessed from the sponsor. -
dates_and_deadlines(list): Every unique date or time-bound event, chronologically. Recurring / relative deadline rules are resolved to a concrete date, with the rule text kept in notes. -
eligible_institutions(list): One entry per institution category the sponsor names, including a separate 'Subrecipients / Subawardees' entry when the document states subrecipient rules. A single 'Not specified in this document' entry when nothing is stated. -
eligible_individuals(list): One entry per PI / Co-PI / senior-personnel category. A single 'Not specified in this document' entry when nothing is stated. -
award_duration(single value): Anticipated duration as stated; 'Not specified in the document' when absent. -
amount_per_award(single value): Per-award amount with its basis (total vs direct costs), in the sponsor's formatting; 'Not specified in the document' when absent. -
number_of_awards(single value): Anticipated count as stated: text such as '10-15' or 'Subject to availability of funds', or a bare integer count. Null only when absent. -
anticipated_award_date(single value): As stated; ISO YYYY-MM-DD when given, otherwise free text (e.g., 'Spring 2027'). Null when absent. -
submission_details(paragraph): One coherent paragraph: the submission portal the announcement names, file formats, naming, collaboration rules. Null only when there is no submission guidance at all. -
formatting_requirements(paragraph): Document-wide preparation rules: the announcement's own rules verbatim, else the sponsor default prefixed 'Sponsor default ():', or both combined. Null for a non-backbone sponsor that states none. -
required_components(list): Every required proposal component, merged with the sponsor backbone (NSF, NIH, USDA-NIFA, DOE, NASA): announcement-sourced components first, then the backbone. -
optional_components(list): Optional and '(if applicable)' components, including Subaward Documents. Empty array when none. -
funding_limits(paragraph): Program-wide or per-year caps and category-specific limits. -
cost_sharing_status(single value): Cost-sharing status (UDM CostShare). -
cost_sharing_details(paragraph): Type, rate, basis, documentation and source restrictions in one paragraph. Null when the status is 'Prohibited' or 'Not Specified'. -
fa_policy(paragraph): F&A / indirect-cost policy: rate, base, exclusions (UDM IndirectRate). -
personnel_effort(paragraph): Effort floors or ceilings, salary caps, student / postdoc support, consultant limits (UDM Effort). -
other_considerations(paragraph): Pre-award costs, program income, budget revisions, required travel, sponsor-specific budget forms. -
allowable_costs(list): Categories the sponsor explicitly enumerates as allowable. -
unallowable_costs(list): Categories the sponsor explicitly enumerates as unallowable. -
special_requirements(list): Unique RFA aspects that fit no other section (conference travel obligations, data sharing beyond federal defaults, workshop participation). Empty array when none.
Return only one JSON object, with no other text before or after it. It must have exactly these 28 keys, in the order above, and each value must be a list of strings (an empty list when the checklist gives nothing for that field):
The checklist:
{{CHECKLIST}}
Quality Standards¶
-
Use the prompt text above verbatim, from the line after
## Promptto the line before the closing---, with{{CHECKLIST}}replaced by the checklist text. Record any change as a new version inCHANGELOG.md. -
The caller must check every returned passage against the checklist and drop any that is not a verbatim substring after the normalization the evaluation plan states. The model's output is never trusted on its own.
Output schema¶
Source: schema.json.
Show schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/AI4RA/prompt-library/components/rfa-checklist-field-mapper/schema.json",
"title": "RFA Checklist Field Mapper \u2014 Output",
"description": "Passages copied verbatim from a free-form RFA checklist, sorted into the 28 RFA Plan B gold fields. Every value is a list of strings; an empty list means the checklist gives nothing for that field. Verbatim copying is checked by the caller, not by this schema.",
"version": "1.0.0",
"type": "object",
"additionalProperties": false,
"required": [
"rfa_number",
"rfa_title",
"sponsor_name",
"program_code",
"announcement_url",
"opportunity_number",
"cfda_number",
"funding_instrument_type",
"dates_and_deadlines",
"eligible_institutions",
"eligible_individuals",
"award_duration",
"amount_per_award",
"number_of_awards",
"anticipated_award_date",
"submission_details",
"formatting_requirements",
"required_components",
"optional_components",
"funding_limits",
"cost_sharing_status",
"cost_sharing_details",
"fa_policy",
"personnel_effort",
"other_considerations",
"allowable_costs",
"unallowable_costs",
"special_requirements"
],
"properties": {
"rfa_number": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"rfa_title": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"sponsor_name": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"program_code": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"announcement_url": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"opportunity_number": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"cfda_number": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"funding_instrument_type": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"dates_and_deadlines": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"eligible_institutions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"eligible_individuals": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"award_duration": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"amount_per_award": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"number_of_awards": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"anticipated_award_date": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"submission_details": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"formatting_requirements": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"required_components": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"optional_components": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"funding_limits": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"cost_sharing_status": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"cost_sharing_details": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"fa_policy": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"personnel_effort": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"other_considerations": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"allowable_costs": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"unallowable_costs": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"special_requirements": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
}
}
Changelog¶
Source: CHANGELOG.md.
All notable changes to this component. Versions follow semver: MAJOR for output-contract breaks, MINOR for backward-compatible additions, PATCH for wording or clarity.
[1.0.0] — 2026-10-29¶
- Initial version: copy-only mapping of a free-form RFA checklist into the 28 RFA Plan B gold fields, with field descriptions from
rfa-checklist-extraction-udmschema.jsonv1.0.0.