#!/bin/bash # LLM Harness Universal Loader # Loads minimal necessary context for agent tasks # Follows PSR-4 / module loading principle set -e HARNESS_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" MANIFEST="${HARNESS_ROOT}/MANIFEST.md" # Color output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # ============================================================================ # CORE FUNCTIONS # ============================================================================ get_agent_for_task() { local task="$1" if [[ ! -f "$MANIFEST" ]]; then echo -e "${RED}Error: MANIFEST.md not found${NC}" return 1 fi # Parse JSON from MANIFEST (simplified - would use jq in production) echo "Task: $task → Check MANIFEST.md for assignment" } get_model_for_task() { local task="$1" echo "Model assignment from MANIFEST.md" } load_project_harness() { local project="$1" local harness_file="${HARNESS_ROOT}/../${project}/HARNESS.md" if [[ ! -f "$harness_file" ]]; then echo -e "${RED}Error: ${project}/HARNESS.md not found${NC}" return 1 fi echo -e "${GREEN}✓ Loaded: ${project}/HARNESS.md${NC}" cat "$harness_file" | head -50 } load_module() { local project="$1" local module="$2" local module_path="${HARNESS_ROOT}/../${project}/modules/${module}" if [[ ! -d "$module_path" ]]; then echo -e "${RED}Error: Module ${project}/modules/${module} not found${NC}" return 1 fi echo -e "${GREEN}✓ Loading module: ${project}/${module}${NC}" # Load module files in order [[ -f "${module_path}/APPROACH.md" ]] && echo "• APPROACH.md" [[ -f "${module_path}/CHECKLIST.md" ]] && echo "• CHECKLIST.md" [[ -f "${module_path}/SPEC.md" ]] && echo "• SPEC.md" echo "" } brief_agent() { local agent="$1" local task="$2" local project="$3" echo -e "${YELLOW}=== Agent Brief ===${NC}" echo "Agent: $agent" echo "Task: $task" echo "Project: $project" echo "" echo "Loading context..." # Load agent entry point local agent_file="${HARNESS_ROOT}/${agent^^}.md" if [[ -f "$agent_file" ]]; then echo -e "${GREEN}✓ Agent instructions loaded${NC}" fi } # ============================================================================ # USAGE # ============================================================================ if [[ $# -eq 0 ]]; then echo "LLM Harness Loader" echo "" echo "Usage:" echo " source LOADER.sh" echo " get_agent_for_task " echo " load_project_harness " echo " load_module " echo " brief_agent " echo "" echo "Example:" echo " brief_agent claude-code architecture gravl" exit 0 fi # Execute command "$@"