Add: LLM harness MANIFEST, CLAUDE entry point, LOADER, and templates
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
#!/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
|
||||
"$@"
|
||||
Reference in New Issue
Block a user