Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,046 changes: 1,011 additions & 35 deletions component_catalog.json

Large diffs are not rendered by default.

328 changes: 328 additions & 0 deletions component_catalog_overrides.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -805,3 +805,331 @@ components:
CostShare, AwardDeliverable, Modification, Terms, and
ConflictOfInterest (see prompt.md). The six-block shape itself
is repo-local.

expense-transaction-extraction:
output_contract:
format: json_object
scope: repo_local_normalization_contract
notes: >
Repo-local single-expense transaction record normalized from
receipt, invoice, purchase-order, p-card, or general-ledger
evidence. Input-normalization contract for the cost-allowability
analysis workflow; not a shared AI4RA-UDM schema.
triad_integration:
evaluation_datasets: []
harness_notes: >
Validate JSON output against schema.json. Canonical invocation
surface is prompt.md. Invoked as a Step 1 task of the
workflows/cost-allowability-analysis Vandalizer workflow.
udm_alignment:
status: repo_local_normalization_contract
notes: >
Fields align to sponsored-project transaction semantics
(vendor, amount, account coding, period) but the record is a
prompt-library normalization contract, not a shared UDM schema.
related_components:
- slug: regulated-activity-classifier
relationship: provides_input_to
notes: The normalized expense record is the classifier's primary input.

award-allowability-terms-extraction:
output_contract:
format: json_object
scope: repo_local_normalization_contract
notes: >
Repo-local record of the federal award terms that govern cost
allowability — period of performance, approved budget, caps and
exclusions, federal prior-approval triggers, indirect-cost
treatment, and institutional compliance-approval requirements.
Input-normalization contract for the cost-allowability analysis
workflow; not a shared AI4RA-UDM schema.
triad_integration:
evaluation_datasets: []
harness_notes: >
Validate JSON output against schema.json. Canonical invocation
surface is prompt.md. Invoked as a Step 1 task of the
workflows/cost-allowability-analysis Vandalizer workflow.
udm_alignment:
status: repo_local_normalization_contract
notes: >
Aligns to sponsored-project award and budget semantics. It
deliberately separates federal prior-approval triggers from
institutional IRB / IACUC / IBC compliance-approval
requirements; the record is a prompt-library normalization
contract, not a shared UDM schema.
related_components:
- slug: cost-award-terms-conformance-check
relationship: provides_input_to
notes: Supplies the caps, exclusions, and restrictions the conformance check evaluates.

regulated-activity-classifier:
output_contract:
format: json_object
scope: repo_local_detection_contract
notes: >
Repo-local classification record flagging whether an expense
implicates an activity requiring institutional compliance
oversight — human subjects (IRB), animals (IACUC), or biosafety
(IBC). Detection-layer contract for the cost-allowability
analysis workflow; not a shared AI4RA-UDM schema.
triad_integration:
evaluation_datasets: []
harness_notes: >
Validate JSON output against schema.json. Canonical invocation
surface is prompt.md. Invoked as a Step 1 task of the
workflows/cost-allowability-analysis Vandalizer workflow; its
output routes the protocol-approval check in Step 2.
udm_alignment:
status: repo_local_detection_contract
notes: >
Aligns to research-compliance semantics; the per-regime
classification shape is a prompt-library contract and is not a
shared UDM schema.
related_components:
- slug: protocol-approval-allowability-check
relationship: gates
notes: The regime flags determine whether the protocol-approval check applies.

cost-period-check:
output_contract:
format: json_object
scope: repo_local_single_requirement_finding_contract
notes: >
Repo-local single-requirement allowability finding for the cost
period-of-performance check (2 CFR 200.403(h), 200.309). Emits
the shared cost-allowability finding object.
triad_integration:
evaluation_datasets: []
harness_notes: >
Validate JSON output against schema.json. Canonical invocation
surface is prompt.md. Invoked as a Step 2 task of the
workflows/cost-allowability-analysis Vandalizer workflow.
udm_alignment:
status: repo_local_single_requirement_finding_contract
notes: >
Aligns to sponsored-project cost-allowability semantics; the
finding object is a prompt-library contract shared across the
cost-allowability check components, not a shared UDM schema.

cost-reasonableness-check:
output_contract:
format: json_object
scope: repo_local_single_requirement_finding_contract
notes: >
Repo-local single-requirement allowability finding for the cost
reasonableness check (2 CFR 200.404). Emits the shared
cost-allowability finding object.
triad_integration:
evaluation_datasets: []
harness_notes: >
Validate JSON output against schema.json. Canonical invocation
surface is prompt.md. Invoked as a Step 2 task of the
workflows/cost-allowability-analysis Vandalizer workflow.
udm_alignment:
status: repo_local_single_requirement_finding_contract
notes: >
Aligns to sponsored-project cost-allowability semantics; the
finding object is a prompt-library contract shared across the
cost-allowability check components, not a shared UDM schema.

cost-allocability-check:
output_contract:
format: json_object
scope: repo_local_single_requirement_finding_contract
notes: >
Repo-local single-requirement allowability finding for the cost
allocability check (2 CFR 200.405). Emits the shared
cost-allowability finding object.
triad_integration:
evaluation_datasets: []
harness_notes: >
Validate JSON output against schema.json. Canonical invocation
surface is prompt.md. Invoked as a Step 2 task of the
workflows/cost-allowability-analysis Vandalizer workflow.
udm_alignment:
status: repo_local_single_requirement_finding_contract
notes: >
Aligns to sponsored-project cost-allowability semantics; the
finding object is a prompt-library contract shared across the
cost-allowability check components, not a shared UDM schema.

cost-consistent-treatment-check:
output_contract:
format: json_object
scope: repo_local_single_requirement_finding_contract
notes: >
Repo-local single-requirement allowability finding for the
consistent cost treatment check (2 CFR 200.403(d), 200.405(c)).
Emits the shared cost-allowability finding object.
triad_integration:
evaluation_datasets: []
harness_notes: >
Validate JSON output against schema.json. Canonical invocation
surface is prompt.md. Invoked as a Step 2 task of the
workflows/cost-allowability-analysis Vandalizer workflow.
udm_alignment:
status: repo_local_single_requirement_finding_contract
notes: >
Aligns to sponsored-project cost-allowability semantics; the
finding object is a prompt-library contract shared across the
cost-allowability check components, not a shared UDM schema.

cost-award-terms-conformance-check:
output_contract:
format: json_object
scope: repo_local_single_requirement_finding_contract
notes: >
Repo-local single-requirement allowability finding for the award
terms conformance check (2 CFR 200.403(b)). Emits the shared
cost-allowability finding object.
triad_integration:
evaluation_datasets: []
harness_notes: >
Validate JSON output against schema.json. Canonical invocation
surface is prompt.md. Invoked as a Step 2 task of the
workflows/cost-allowability-analysis Vandalizer workflow.
udm_alignment:
status: repo_local_single_requirement_finding_contract
notes: >
Aligns to sponsored-project cost-allowability semantics; the
finding object is a prompt-library contract shared across the
cost-allowability check components, not a shared UDM schema.

cost-prior-approval-check:
output_contract:
format: json_object
scope: repo_local_single_requirement_finding_contract
notes: >
Repo-local single-requirement allowability finding for the
federal prior approval check (2 CFR 200.407). Emits the shared
cost-allowability finding object.
triad_integration:
evaluation_datasets: []
harness_notes: >
Validate JSON output against schema.json. Canonical invocation
surface is prompt.md. Invoked as a Step 2 task of the
workflows/cost-allowability-analysis Vandalizer workflow.
udm_alignment:
status: repo_local_single_requirement_finding_contract
notes: >
Aligns to sponsored-project cost-allowability semantics; the
finding object is a prompt-library contract shared across the
cost-allowability check components, not a shared UDM schema.
related_components:
- slug: protocol-approval-allowability-check
relationship: sibling_distinct_regime
notes: >
Covers federal sponsor prior approval (2 CFR 200.407);
protocol-approval-allowability-check covers institutional IRB /
IACUC / IBC approval, a distinct regulatory regime.

cost-documentation-check:
output_contract:
format: json_object
scope: repo_local_single_requirement_finding_contract
notes: >
Repo-local single-requirement allowability finding for the cost
documentation check (2 CFR 200.403(g)). Emits the shared
cost-allowability finding object.
triad_integration:
evaluation_datasets: []
harness_notes: >
Validate JSON output against schema.json. Canonical invocation
surface is prompt.md. Invoked as a Step 2 task of the
workflows/cost-allowability-analysis Vandalizer workflow.
udm_alignment:
status: repo_local_single_requirement_finding_contract
notes: >
Aligns to sponsored-project cost-allowability semantics; the
finding object is a prompt-library contract shared across the
cost-allowability check components, not a shared UDM schema.

protocol-approval-allowability-check:
output_contract:
format: json_object
scope: repo_local_single_requirement_finding_contract
notes: >
Repo-local single-requirement allowability finding for the
protocol approval allowability check, covering institutional IRB
(45 CFR 46), IACUC (PHS Policy / 9 CFR), and IBC (NIH Guidelines
for Recombinant or Synthetic Nucleic Acid Molecules / 42 CFR 73)
oversight. Emits the shared cost-allowability finding object.
triad_integration:
evaluation_datasets: []
harness_notes: >
Validate JSON output against schema.json. Canonical invocation
surface is prompt.md. Invoked as a Step 2 task of the
workflows/cost-allowability-analysis Vandalizer workflow; its
applicability is gated by the regulated-activity-classifier
output.
udm_alignment:
status: repo_local_single_requirement_finding_contract
notes: >
Aligns to research-compliance semantics; the finding object is
a prompt-library contract shared across the cost-allowability
check components, not a shared UDM schema.
related_components:
- slug: regulated-activity-classifier
relationship: gated_by
notes: The classifier's regime flags determine whether this check applies.
- slug: cost-prior-approval-check
relationship: sibling_distinct_regime
notes: >
Covers institutional IRB / IACUC / IBC approval;
cost-prior-approval-check covers federal sponsor prior
approval, a distinct regulatory regime.

cost-selected-item-check:
output_contract:
format: json_object
scope: repo_local_single_requirement_finding_contract
notes: >
Repo-local single-requirement allowability finding for the
selected items of cost check (2 CFR 200.421-200.476). Routes an
expense to its governing selected-item section and emits the
shared cost-allowability finding object.
triad_integration:
evaluation_datasets: []
harness_notes: >
Validate JSON output against schema.json. Canonical invocation
surface is prompt.md. Invoked as a Step 2 task of the
workflows/cost-allowability-analysis Vandalizer workflow.
udm_alignment:
status: repo_local_single_requirement_finding_contract
notes: >
Aligns to sponsored-project cost-allowability semantics; the
finding object is a prompt-library contract shared across the
cost-allowability check components, not a shared UDM schema.

cost-allowability-determination:
output_contract:
format: markdown_review
scope: repo_local_human_readable_determination_contract
notes: >
Repo-local human-readable Markdown allowability determination
for a single expense. Synthesizes the upstream single-requirement
check findings into one decision (Allowable, Potential issue,
Missing info, or Not allowable). No JSON output schema.
triad_integration:
evaluation_datasets: []
harness_notes: >
Canonical invocation surface is prompt.md. Score the Markdown
response against expected.md golden cases for the overall
decision, the conservative-decision rule (any not_allowable
finding forces an overall Not allowable), per-check coverage, the
compliance-oversight flag, and non-fabrication. Invoked as the
Step 3 output task of the workflows/cost-allowability-analysis
Vandalizer workflow.
udm_alignment:
status: repo_local_human_readable_determination_contract
notes: >
Aligns to sponsored-project cost-allowability semantics; the
human-readable determination shape is maintained only in
prompt-library and is not a shared UDM schema.
related_components:
- slug: regulated-activity-classifier
relationship: upstream_compliance_signal
notes: >
The determination surfaces a compliance-oversight flag when the
protocol-approval check, gated by the classifier, returns
anything other than not_applicable.
10 changes: 10 additions & 0 deletions components/award-allowability-terms-extraction/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Changelog

All notable changes to this component. Versions follow semver: MAJOR for output-contract breaks, MINOR for backward-compatible additions, PATCH for wording or clarity.

## [0.1.0] — 2026-05-21

- Initial experimental release.
- Structured award-terms record covering period of performance, approved budget categories, caps and exclusions, federal prior-approval triggers, indirect-cost treatment, compliance-approval requirements, and special conditions.
- `prior_approval_triggers` (federal sponsor prior approval) and `compliance_approval_requirements` (institutional IRB / IACUC / IBC approvals) are kept as separate fields because they are distinct regulatory regimes.
- No eval cases yet — status `experimental` until at least one golden extraction is added under `evals/cases/`.
41 changes: 41 additions & 0 deletions components/award-allowability-terms-extraction/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Award Allowability Terms Extraction

Extracts the federal award terms that govern cost allowability — period of performance, approved budget categories, caps and exclusions, sponsor prior-approval triggers, indirect-cost treatment, and institutional compliance-approval requirements — into one structured record. It is an input-normalization step of the federal cost-allowability analysis workflow.

**Current version:** 0.1.0
**Category:** extraction
**Domain:** research-administration
**Status:** experimental
**Manifestations:** prompt
**Output contract:** [`schema.json`](schema.json)
**Contract scope:** repo-local

## Inputs

A federal award notice, agreement, or terms-and-conditions document, as pasted text, an attachment, or a URL.

## Outputs

A single JSON object — see [`schema.json`](schema.json) — capturing the award-side constraints on allowability. Missing scalars are `null`; missing lists are empty arrays. The component records terms only; it does not review an expense.

## Contract scope

Repo-local. The record is a prompt-library normalization contract consumed by the downstream cost-allowability check components. It deliberately separates `prior_approval_triggers` (federal sponsor prior approval, 2 CFR 200.407-style) from `compliance_approval_requirements` (institutional IRB / IACUC / IBC approvals), because the two are distinct regulatory regimes. It is not a shared AI4RA-UDM schema.

## Triad integration

- **Evaluation datasets:** none yet — repo-local synthetic coverage planned.
- **Harness notes:** canonical manifestation is `prompt.md`; validation surface is `schema.json`. Invoked as a Step 1 task of the [`cost-allowability-analysis`](https://github.com/AI4RA/prompt-library/tree/main/workflows/cost-allowability-analysis) workflow.
- **Shared UDM relationship:** aligned to sponsored-project award and budget semantics; does not define or depend on a shared UDM schema.

## Manifestations

- [`prompt.md`](prompt.md) — canonical, LLM-agnostic prompt

## Evals

See [`evals/`](evals/).

## Provenance

Created 2026-05-21 as an input-normalization component of the federal cost-allowability analysis component set.
13 changes: 13 additions & 0 deletions components/award-allowability-terms-extraction/evals/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Evals — award-allowability-terms-extraction

Each case lives under `cases/<case-slug>/` with at minimum `metadata.yaml`, `input-source.md`, `expected.json`, and optional `notes.md`. Run artifacts go under `runs/` (gitignored).

## Planned cases

- **NIH award with human-subjects terms** — exercises a populated `compliance_approval_requirements` array.
- **NSF award with foreign-travel prior-approval term** — exercises `prior_approval_triggers`.
- **Award with a dollar-capped budget category** — exercises `caps_and_exclusions` and a category `restrictions` value.

## `validated_against_version`

Every case must declare the component version that its `expected.json` was validated against.
Loading
Loading