Files
llm-harness/LOADER.sh
T

112 lines
2.8 KiB
Bash

#!/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 <task>"
echo " load_project_harness <project>"
echo " load_module <project> <module>"
echo " brief_agent <agent> <task> <project>"
echo ""
echo "Example:"
echo " brief_agent claude-code architecture gravl"
exit 0
fi
# Execute command
"$@"