diff --git a/catalog/processmapping.json b/catalog/processmapping.json index 09417e1..1432eb1 100644 --- a/catalog/processmapping.json +++ b/catalog/processmapping.json @@ -199,6 +199,7 @@ "ActivityType": ["DATA_ENTRY", "REVIEW_APPROVAL", "SYSTEM_LOOKUP", "DOCUMENT_GENERATION", "COMMUNICATION", "DECISION_POINT", "CALCULATION_VALIDATION", "FILING_ARCHIVAL"], "FileType": ["VTT", "TXT", "DOCX", "MD"], "RedactionStatus": ["NOT_REDACTED", "PARTIALLY_REDACTED", "FULLY_REDACTED"], - "ProcessingStatus": ["RAW", "PARSED", "MAPPED"] + "ProcessingStatus": ["RAW", "PARSED", "MAPPED"], + "DocumentType": ["AWARD_NOTICE", "AWARD_MODIFICATION", "FUNDING_OPPORTUNITY", "BUDGET_DOCUMENT", "PROPOSAL_NARRATIVE", "SUBAWARD_DOCUMENT", "COMPLIANCE_RECORD", "SPONSOR_CORRESPONDENCE"] } } diff --git a/docs/domains/process-mapping.md b/docs/domains/process-mapping.md index 59323e9..f1886cf 100644 --- a/docs/domains/process-mapping.md +++ b/docs/domains/process-mapping.md @@ -13,7 +13,7 @@ The canonical source remains JSON-first. The application can run directly from r | **Canonical Process Maps** | 24 | | **Workflow Definitions** | 15 | | **Extraction Task Prompt Files** | 65 | -| **Controlled Value Groups** | 9 (70 codes) | +| **Controlled Value Groups** | 10 (78 codes) | | **Runtime Modes** | `json` (canonical), `insight_db` (optional projection) | | **Auth Model** | None | | **AI Integration** | None direct; stores workflow specifications for external extraction systems | diff --git a/docs/index.md b/docs/index.md index b851e54..87b23ed 100644 --- a/docs/index.md +++ b/docs/index.md @@ -29,7 +29,7 @@ See [Adopted Standard](standard/naming-conventions.md) for full details. | [StratPlan Tactics](domains/strategic-planning.md) | Strategic Planning | JSON canonical model + optional insight-db projection (10 tables) | None | | [ProcessMapping](domains/process-mapping.md) | Process Intelligence | 24 process maps + 15 workflows + optional `process_maps` projection | None | -The currently onboarded governance applications define 56 vocabulary groups and normalized enum domains totaling 315 controlled values. OpenERA, UCM Daily Register, and Audit Dashboard store those values in runtime tables; ProcessMapping keeps them in governed JSON reference data; StratPlan exposes normalized enums through its API. +The currently onboarded governance applications define 57 vocabulary groups and normalized enum domains totaling 323 controlled values. OpenERA, UCM Daily Register, and Audit Dashboard store those values in runtime tables; ProcessMapping keeps them in governed JSON reference data; StratPlan exposes normalized enums through its API. ## Data Landscape diff --git a/docs/vocabulary/index.md b/docs/vocabulary/index.md index baf0cf2..e056dfb 100644 --- a/docs/vocabulary/index.md +++ b/docs/vocabulary/index.md @@ -9,7 +9,7 @@ The UI Insight application portfolio uses a **federated vocabulary** approach: e | Research Admin | OpenERA | 21 | 142 | | Communications | UCM Daily Register | 10 | 37 | | Internal Audit | Audit Dashboard | 8 | 32 | -| Process Intelligence | ProcessMapping | 9 (JSON-managed) | 70 | +| Process Intelligence | ProcessMapping | 10 (JSON-managed) | 78 | | Strategic Planning | StratPlan Tactics | 8 (inline/code-normalized) | 34 | !!! info "StratPlan Tactics" diff --git a/scripts/check_governance_drift.py b/scripts/check_governance_drift.py index c50db72..1b799d1 100644 --- a/scripts/check_governance_drift.py +++ b/scripts/check_governance_drift.py @@ -192,8 +192,8 @@ def run_local_checks(checks: CheckRunner) -> None: total_groups = open_era_groups + ucm_groups + audit_groups + pm_groups + stratplan_groups total_values = open_era_values + ucm_values + audit_values + pm_values + stratplan_values - checks.require(total_groups == 56, "Total vocabulary group count is 56") - checks.require(total_values == 315, "Total vocabulary value count is 315") + checks.require(total_groups == 57, "Total vocabulary group count is 57") + checks.require(total_values == 323, "Total vocabulary value count is 323") checks.require_contains( ROOT / "README.md", @@ -247,7 +247,7 @@ def run_local_checks(checks: CheckRunner) -> None: ) checks.require_contains( ROOT / "docs/vocabulary/index.md", - "| Process Intelligence | ProcessMapping | 9 (JSON-managed) | 70 |", + "| Process Intelligence | ProcessMapping | 10 (JSON-managed) | 78 |", "vocabulary index ProcessMapping row", ) checks.require_contains( @@ -324,7 +324,7 @@ def run_remote_checks(checks: CheckRunner) -> None: ) pm_remote_values = len(processmapping_allowed["AllowedValues"]) checks.require( - pm_remote_groups == 9 and pm_remote_values == 70, + pm_remote_groups == 10 and pm_remote_values == 78, "ProcessMapping remote controlled-value counts match local governance registry", ) diff --git a/vocabularies/processmapping/allowed_values.json b/vocabularies/processmapping/allowed_values.json index 6b19647..bef65a3 100644 --- a/vocabularies/processmapping/allowed_values.json +++ b/vocabularies/processmapping/allowed_values.json @@ -1,8 +1,8 @@ { "application": "ProcessMapping", "description": "Governed JSON-managed controlled values for the ProcessMapping process intelligence repository", - "version": "1.0.0", - "last_updated": "2026-04-20", + "version": "1.1.0", + "last_updated": "2026-05-01", "value_groups": [ { "Value_Group": "ActivityType", @@ -50,6 +50,20 @@ { "Code": "EXTERNAL", "Label": "External", "Description": "An external entity (sponsor, subrecipient, vendor)" } ] }, + { + "Value_Group": "DocumentType", + "description": "Document classifications for materials referenced in process maps and workflows — award documents, funding announcements, budget forms, proposal narratives, subaward agreements, and sponsor correspondence", + "values": [ + { "Code": "AWARD_NOTICE", "Label": "Award Notice / Agreement", "Description": "Fully executed award agreements, federal notices of award, cooperative agreements, research terms and conditions, and related award-establishing documents" }, + { "Code": "AWARD_MODIFICATION", "Label": "Award Modification", "Description": "Post-award amendments including modifications, no-cost extensions, PI changes, rebudget approvals, and amendment letters" }, + { "Code": "FUNDING_OPPORTUNITY", "Label": "Funding Opportunity (FOA/NOFO/RFA)", "Description": "Funding opportunity announcements, notices of funding opportunity, requests for applications, program announcements, and program solicitations" }, + { "Code": "BUDGET_DOCUMENT", "Label": "Budget Form / Spreadsheet / Justification", "Description": "R&R and SF-424A budget forms, budget spreadsheets, budget justification narratives, and sponsor-specific budget pages (NIH modular, NSF detailed)" }, + { "Code": "PROPOSAL_NARRATIVE", "Label": "Proposal Narrative & Personnel Forms", "Description": "Proposal documents, project narratives, research plans, biosketches, current and pending support, and VERAS proposal forms with personnel listings" }, + { "Code": "SUBAWARD_DOCUMENT", "Label": "Subaward / Subrecipient Agreement", "Description": "Subaward agreements, subrecipient agreements, pass-through entity subaward documents, and subaward modifications" }, + { "Code": "COMPLIANCE_RECORD", "Label": "Compliance / Personnel Reference Record", "Description": "SFI disclosure confirmations, RST completion records, Banner NBAJOBS records, departmental personnel lists, and institutional policy references (APM)" }, + { "Code": "SPONSOR_CORRESPONDENCE", "Label": "Sponsor Correspondence & Guidance", "Description": "Sponsor correspondence, agency financial reporting guides, and other ad-hoc communications or guidance documents from the funding agency" } + ] + }, { "Value_Group": "FileType", "description": "Source transcript file formats accepted into governed transcript workflows",