Files
antigravity-skills-reference/skills/loki-mode/demo/run-demo.sh

324 lines
7.6 KiB
Bash
Executable File

#!/bin/bash
# Loki Mode Demo Runner
# Usage: ./demo/run-demo.sh [simple-todo|full-stack]
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
DEMO_TYPE="${1:-simple-todo}"
# Colors
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
NC='\033[0m'
# Demo output helpers
banner() {
echo ""
echo -e "${CYAN}========================================${NC}"
echo -e "${CYAN} $1${NC}"
echo -e "${CYAN}========================================${NC}"
echo ""
}
step() {
echo -e "${GREEN}>>> $1${NC}"
sleep 1
}
info() {
echo -e "${BLUE} $1${NC}"
}
pause() {
echo -e "${YELLOW}[Press Enter to continue...]${NC}"
read -r
}
# Demo introduction
banner "LOKI MODE DEMO"
echo "Loki Mode - Multi-Agent Autonomous Startup System"
echo ""
echo "This demo will show:"
echo " - Autonomous project generation from PRD"
echo " - Multi-agent orchestration"
echo " - Kanban board task tracking"
echo " - Parallel code review system"
echo " - Quality gates enforcement"
echo ""
case "$DEMO_TYPE" in
simple-todo)
PRD_FILE="examples/simple-todo-app.md"
DEMO_NAME="Simple Todo App"
;;
full-stack)
PRD_FILE="examples/full-stack-demo.md"
DEMO_NAME="Full-Stack Bookmark Manager"
;;
*)
echo "Unknown demo type: $DEMO_TYPE"
echo "Usage: $0 [simple-todo|full-stack]"
exit 1
;;
esac
step "Demo: $DEMO_NAME"
step "PRD: $PRD_FILE"
pause
# Create demo workspace
banner "STEP 1: Setting Up Demo Workspace"
DEMO_WORKSPACE="/tmp/loki-demo-$(date +%s)"
step "Creating workspace: $DEMO_WORKSPACE"
mkdir -p "$DEMO_WORKSPACE"
cd "$DEMO_WORKSPACE"
info "Workspace ready"
pause
# Show PRD content
banner "STEP 2: Reviewing PRD"
step "PRD Contents:"
echo ""
cat "$PROJECT_DIR/$PRD_FILE"
echo ""
pause
# Initialize git
banner "STEP 3: Initialize Git Repository"
step "git init"
git init
git add -A 2>/dev/null || true
git commit -m "Initial commit" --allow-empty
info "Git initialized"
pause
# Show how to invoke Loki Mode
banner "STEP 4: Invoking Loki Mode"
step "To invoke Loki Mode, you would run:"
echo ""
echo -e "${CYAN} claude --dangerously-skip-permissions${NC}"
echo ""
echo "Then type:"
echo ""
echo -e "${CYAN} Loki Mode with PRD at $PRD_FILE${NC}"
echo ""
info "Loki Mode will then:"
info " 1. Read and analyze the PRD"
info " 2. Create .loki/ directory for state management"
info " 3. Generate tasks and add to queue"
info " 4. Spawn specialized agents"
info " 5. Execute RARV cycle until completion"
pause
# Show expected .loki structure
banner "STEP 5: Loki State Directory"
step "Creating sample .loki structure..."
mkdir -p .loki/{queue,state,memory/{episodic,semantic,skills},metrics/{efficiency,rewards},specs}
# Create sample orchestrator state
cat > .loki/state/orchestrator.json << 'EOF'
{
"currentPhase": "DEVELOPMENT",
"startedAt": "2026-01-06T10:00:00Z",
"metrics": {
"tasksCompleted": 12,
"tasksPending": 5,
"agentsSpawned": 8,
"reviewsPassed": 4
}
}
EOF
# Create sample queue
cat > .loki/queue/pending.json << 'EOF'
[
{
"id": "task-013",
"type": "eng-frontend",
"priority": 8,
"payload": {
"action": "Implement TodoList component",
"description": "Create React component to display todos"
}
},
{
"id": "task-014",
"type": "eng-backend",
"priority": 7,
"payload": {
"action": "Add DELETE endpoint",
"description": "Implement DELETE /api/todos/:id"
}
}
]
EOF
cat > .loki/queue/in-progress.json << 'EOF'
[
{
"id": "task-012",
"type": "eng-frontend",
"claimedBy": "agent-frontend-001",
"payload": {
"action": "Implement AddTodo form",
"description": "Create form component with validation"
}
}
]
EOF
# Create sample CONTINUITY.md
cat > .loki/CONTINUITY.md << 'EOF'
# CONTINUITY - Working Memory
## Current State
- **Phase:** DEVELOPMENT
- **Current Task:** task-012 (Implement AddTodo form)
- **Agent:** agent-frontend-001
## Progress Today
- [x] Bootstrap complete
- [x] Discovery complete
- [x] Architecture complete - OpenAPI spec created
- [x] Database schema implemented
- [x] Backend API endpoints (GET, POST, PUT)
- [ ] Frontend components (in progress)
- [ ] DELETE endpoint
- [ ] Integration tests
## Decisions Made
- Using SQLite for simplicity (per PRD)
- React Query for data fetching
- TailwindCSS for styling
## Mistakes & Learnings
- Initially forgot return type on Express handler
- Fix: Always add `: void` to handlers
- First test run failed due to missing dev dependency
- Fix: Check package.json before running tests
## Next Steps
1. Complete AddTodo form component
2. Implement TodoList component
3. Add DELETE endpoint
4. Run full test suite
EOF
step "Directory structure:"
find .loki -type f | head -20
info "CONTINUITY.md contains working memory"
info "Queue files track task states"
info "Orchestrator tracks overall progress"
pause
# Show kanban export
banner "STEP 6: Vibe Kanban Integration"
step "Exporting tasks to Vibe Kanban format..."
mkdir -p ~/.vibe-kanban/loki-demo
"$PROJECT_DIR/scripts/export-to-vibe-kanban.sh" ~/.vibe-kanban/loki-demo 2>/dev/null || true
info "Tasks exported to kanban board"
info "Run 'npx vibe-kanban' to view visual board"
pause
# Show agent spawning simulation
banner "STEP 7: Agent Orchestration"
step "Simulating agent spawning..."
echo ""
echo "Agent Pool Status:"
echo " [ACTIVE] agent-frontend-001 - Working on task-012"
echo " [IDLE] agent-backend-001 - Waiting for task"
echo " [ACTIVE] agent-qa-001 - Running tests"
echo ""
info "Agents work in parallel but respect dependencies"
info "Task queue prevents conflicts"
pause
# Show code review simulation
banner "STEP 8: Code Review System"
step "Launching 3-reviewer parallel review..."
echo ""
echo "Reviewers (Opus model):"
echo " [1/3] Code Quality - Checking patterns, SOLID principles"
echo " [2/3] Business Logic - Verifying requirements, edge cases"
echo " [3/3] Security - Scanning for vulnerabilities"
echo ""
sleep 2
echo "Review Results:"
echo " Code Quality: APPROVED (0 issues)"
echo " Business Logic: APPROVED (0 issues)"
echo " Security: APPROVED (0 issues)"
echo ""
echo " >>> All approved - Running Devil's Advocate check..."
sleep 1
echo " Devil's Advocate: APPROVED (found 1 Low severity suggestion)"
echo ""
info "Anti-sycophancy protocol prevents groupthink"
info "Blind review ensures independent analysis"
pause
# Show quality gates
banner "STEP 9: Quality Gates"
step "Running quality gates..."
echo ""
echo "Static Analysis:"
echo " ESLint: PASS (0 errors, 2 warnings)"
echo " TypeScript: PASS (strict mode)"
echo " CodeQL: PASS (no vulnerabilities)"
echo ""
echo "Test Coverage:"
echo " Unit Tests: 24/24 PASS (92% coverage)"
echo " Integration Tests: 8/8 PASS"
echo ""
echo "Quality Gate: PASSED"
echo ""
info "Critical/High/Medium issues BLOCK the pipeline"
info "Low/Cosmetic issues become TODO comments"
pause
# Final summary
banner "DEMO COMPLETE"
echo "Loki Mode Demo Summary:"
echo ""
echo " PRD: $DEMO_NAME"
echo " Workspace: $DEMO_WORKSPACE"
echo " Tasks Created: 17"
echo " Tasks Complete: 12"
echo " Agents Used: 8"
echo " Reviews Passed: 4"
echo ""
echo "To run Loki Mode for real:"
echo ""
echo -e " ${CYAN}claude --dangerously-skip-permissions${NC}"
echo -e " ${CYAN}> Loki Mode with PRD at $PRD_FILE${NC}"
echo ""
echo "Documentation: https://github.com/asklokesh/loki-mode"
echo ""
# Cleanup prompt
echo -e "${YELLOW}Demo workspace at: $DEMO_WORKSPACE${NC}"
echo -e "${YELLOW}Run 'rm -rf $DEMO_WORKSPACE' to clean up${NC}"