-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the NOAA Global Workflow technical wiki. This knowledge base documents solutions, configurations, and insights for operating and developing the Global Forecast System workflow.
The Global Workflow development infrastructure has evolved to incorporate state-of-the-art RAG (Retrieval-Augmented Generation) and Graph Database technologies, enabling sophisticated agentic AI capabilities for GFS software management and error analysis.
-
README_PROVISIONING_V3.1_COMPLETE - Complete provisioning guide for the MCP RAG persistent infrastructure on ParallelWorks cloud platform. Covers ChromaDB 1.1.1 deployment, Node.js MCP server setup, LangFlow integration, and systemd service configuration for production-grade persistent storage architecture.
-
ENHANCED_INGESTION_ARCHITECTURE - Comprehensive design for Context7-inspired multi-source RAG ingestion across 50+ GFS submodules (3-5M LOC). Details the hybrid triple-store architecture combining ChromaDB (semantic search), Neo4j (graph relationships), and PostgreSQL (temporal data) for intelligent error diagnosis and code understanding.
-
CHROMADB_MIGRATION_COMPLETE - Technical documentation of ChromaDB 0.4.x to 1.1.1 migration, including API compatibility updates, Node.js client integration (chromadb@3.0.17), and resolution of embedding dimension mismatches for production stability.
The Challenge: The Global Forecast System represents one of the most complex software ecosystems in scientific computing:
- 50+ interconnected repositories (UFS, GDAS, GSI, GOCART, MOM6, CICE, WW3, etc.)
- 3-5 million lines of code across Fortran, Python, C/C++, and CMake
- Deep dependency chains spanning atmospheric dynamics → ocean coupling → data assimilation → post-processing
- Multi-component interactions that traditional documentation cannot capture
The Solution: Hybrid Graph + Vector RAG Architecture
Traditional vector-based RAG (ChromaDB alone) excels at semantic similarity but cannot answer structural questions:
- ❌ "What components are affected if I change FV3 dynamics?"
- ❌ "What's the dependency chain causing this compilation error?"
- ❌ "Which CMakeLists.txt needs to link the GSW library?"
- ❌ "Show me the call graph from model initialization to MPI communication"
Graph RAG (Neo4j + ChromaDB) enables these capabilities:
Error Analysis Workflow:
├─ Semantic Search (ChromaDB): Find similar errors and solutions
├─ Structural Analysis (Neo4j): Trace dependency chains and call graphs
├─ Temporal Context (PostgreSQL): Recent commits and regression patterns
└─ LLM Synthesis: Root cause + Fix instructions + Prevention recommendations
The MCP (Model Context Protocol) server provides LLM agents with:
- Deep Code Understanding: Not just text search, but comprehension of component interactions
- Error Diagnosis: 10x faster debugging by combining similar past errors with structural impact analysis
- Impact Prediction: "What breaks if I change X?" before making changes
- Knowledge Retention: Institutional expertise captured in graph relationships
- Cross-Component Reasoning: Trace errors through UFS → GSI → GDAS → GFS pipeline
Result: Transform debugging from "search documentation and guess" to "query knowledge graph and know."
- ✅ ChromaDB 1.1.1: Production vector database operational
- ✅ Node.js MCP Server: 17 tools for workflow management and RAG search
- ✅ LangFlow UI: Visual workflow builder for RAG pipelines
- 🚧 Neo4j Graph DB: Phase 0 POC approved, weekend implementation planned
- 📋 Enhanced Ingestion: Multi-source ingestion pipeline designed for 50+ repos
Next Milestone: Neo4j proof-of-concept demonstrating dependency graph queries that ChromaDB cannot answer.
-
PR673_Comprehensive_Analysis - Complete technical analysis of PR #673 which introduced error catching capability to NCEPLIBS-bufr. This 50+ page analysis covers the architectural design using setjmp/longjmp, implementation details across 51 files, code review insights, testing strategy, and operational impact for NOAA's weather forecasting infrastructure.
-
ERROR_CATCHING_IMPLEMENTATION_PLAN - Detailed 17-week implementation plan for extending error catching to 24 additional I/O routines following the PR #673 pattern. The plan divides work into 4 phases by complexity level, includes automated testing frameworks, CI/CD strategies, and comprehensive quality assurance checklists.
-
additional_io_routines_for_error_catching - Comprehensive inventory of 38 additional I/O routines organized into 7 complexity levels for systematic error catching implementation. This reference document provides technical details, implementation priorities, and success metrics for achieving complete API coverage in the BUFR library.
The CTest framework provides self-contained test cases for validating individual workflow components. Each test creates an isolated environment with staged inputs from nightly stable baseline runs, enabling independent testing and validation.
-
- 120-hour deterministic forecast validation (209 output files)
- 13 input files (atmosphere initial conditions)
- 18 output files (forecast history files)
- C48_ATM-gfs_fcst_seg0.yaml
-
C48_ATM-gfs_atmos_prod_f000-f002
- Atmosphere product generation test (f000, f001, f002)
- 5 input files (forecast history from f000, f001, f002)
- 12 output files (post-processed products)
- C48_ATM-gfs_atmos_prod_f000-f002.yaml
-
- 48-hour coupled atmosphere-ocean-ice-wave forecast
- Fixed coupled forecast test with proper restart staging
- 17 input files (13 atmosphere ICs + 3 restarts + 1 wave prep)
- 24 output files (18 atmos + 2 ocean + 2 ice + 2 wave)
- Key fix: Added
H_offset = '-6H'for staging restart files from previous cycle - C48_S2SW-gfs_fcst_seg0.yaml
-
C48_S2SW-gfs_ocean_prod_f006 - Ocean product generation at forecast hour 6
- 2 input files (ocean forecast at f006)
- 2 output files (ocean products)
- C48_S2SW-gfs_ocean_prod_f006.yaml
-
- Ice product generation at forecast hour 6
- 2 input files (ice forecast at f006)
- 2 output files (ice products)
- C48_S2SW-gfs_ice_prod_f006.yaml
- C48_S2SWA_gefs-gefs_fcst_mem001_seg0
- GEFS ensemble member 001 coupled forecast (48-hour segment)
- Implemented GEFS ensemble member 001 forecast test
- 17 input files with unique two-cycle pattern:
- 13 atmosphere ICs from current cycle (12Z)
- 3 restart files from previous cycle (06Z)
- 1 wave prep file from current cycle (12Z)
- 24 output files (ensemble forecast outputs)
- GEFS requires different source cycles for ICs vs restarts
- Special handling for
mem001/subdirectory structure
- C48_S2SWA_gefs-gefs_fcst_mem001_seg0.yaml
Framework Features:
- Self-contained test environments with isolated EXPDIR
- Input staging from
STAGED_CTESTS(stable nightly runs) - Consistent naming convention:
CASE-JOB.yaml - Comprehensive validation with input/output file verification
- GitLab-Pipeline-MultiHost-Architecture-for-Global‐Workflow
- Managing-Multiple-GitLab-Pipeline-Scripts
- Monitoring-your-HPC-CI-CD-infrastructure-with-GitLab
- Running-.after_script-Commands-on-a-Remote-Host:-Challenges-and-Solutions
- Configuring-the-Jenkins-Controller's-Node-default-configurations
- Increasing-the-number-of-executors-on-Jenkins-Master-(built‐in)-Node
- Scaling-Number-of-agents-on-a-Jenkins-Node
- Spreading-out-executors-on-RDHPCS-head-nodes
- SCM-Timeout-Fix
- Using-a-GitHub-Action-with-WebHooks-to-Dispatch-a-Jenkins-Job-for-a-Specific-PR-and-pass-it-Parameters
- Using-WebHooks-and-PR-Comments-to-Launch-a-Multi‐Branch-Jenkins-Job
- Setting-up-a-mirror-of-a-GitHub-Repo-using-GitLab-Community-Edition-Server
- Proposal-for-Creating-Dedicated-emc‐bot-Project-in-NWS-EMC-GitLab
- GitHub-MCP-Tools-installed-for-global‐workflow-software-development-and-how-they-work
- Global‐workflow-RAG-added-to-MCP-server
- RAG-enhanced-MCP-server-configured-and-all-8-tools-are-now-available
- MCP-RAG-Development-Status
- Differences-and-Similarities-between-MCP-(Model-Context-Protocol)-and-RAG-(Retrieval‐Augmented-Generation)-in-agentic-LLM-pipeline
- MASSIVE-IMPROVMENT
- Opps-‐-no-RAG-no-go
- Anthropic-Claude-Sonnet-4-has-the-big-picture-ahead-of-me
- Customizing-GitHub's-built‐in-Copilot's-PR-Feature
- Appreciated-Collaboration
- Thanks-Devin!!
- Thanks-Devin
- Rocoto-Example
- Tracking-UNKNOWN-states-in-Rocoto-and-suggested-updates
- "Resource-temporarily-unavailable"-when-using-rocotorun
- Fixing-the-Resource-Fork-Error-in-Rocoto-Check-Python-Script
- PID-created-and-release-on-each-call-to-rocotostat
- CROW-workflow-definition-explained
- Polymorphism-examples-in-CROW
- Undocumented-support-of-EcFlow-in-public-release-of-fv3gfs
- AQM‐Workflow-and-Global-Workflow-(Community-‐-Operations-version)-for-Generating-EcFlow
- How-are-IC-specified-for-Free-Forecast-Jobs
- Detailed-Analysis-of-HOMEDIR
- Prate_ave-in-atmospheric-sfc-history-files-accumulates-while-cycling
- Lingering-restart-files-can-cause-re‐ran-cases-to-fail
- Getting-bash-for-GitLab-Runners-to-be-a-login-shell
- Why-Admins-Configure-Role-Accounts-with-login_shell=off
- Is-VAST-like-PFS?
Most Viewed Topics:
- CI/CD Pipeline Architecture
- Rocoto Workflow Management
- MCP/RAG Integration
- Jenkins Configuration
- HPC System Setup
Latest Updates:
- MCP Server RAG Enhancement
- GitLab Multi-Host Architecture
- AI-Assisted Development Tools
This wiki is actively maintained. Last organized: October 2025