-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
89 lines (68 loc) · 3.42 KB
/
Copy pathMakefile
File metadata and controls
89 lines (68 loc) · 3.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# App Makefile
# These commands will work once the Expo project is created
.PHONY: dev test build build-web build-preview lint clean setup help interview interview-demo interview-setup interview-test feedback restart resume yappybara-install yappybara-install-plugin yappybara-launch
help: ## Show this help
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
setup: ## First-time project setup (run this once)
npx create-expo-app@latest . --template tabs
npm install @supabase/supabase-js
@echo ""
@echo "Project created! Now run: make dev"
dev: ## Start the app (opens in browser + works with Expo Go on your phone)
npx expo start
test: ## Run tests
npm test -- --watchAll=false
build-web: ## Build the web version
npx expo export --platform web
build-preview: ## Create a preview build for testing on your phone
npx eas build --platform all --profile preview
build-prod: ## Create a production build for app stores
npx eas build --platform all --profile production
lint: ## Check code for problems
npx expo lint
clean: ## Clean build caches
npx expo start --clear
rm -rf node_modules/.cache .expo
reset: ## Full reset (reinstall everything)
rm -rf node_modules
npm install
npx expo start --clear
interview-setup: ## Set up the voice interview app (one-time)
cd interview-app && npm install
@echo ""
@echo "Done! Run 'make interview' to start."
feedback: ## Send feedback about the interview (usage: make feedback MSG="too verbose")
@curl -s -X POST http://localhost:3456/api/dad-feedback \
-H 'Content-Type: application/json' \
-d '{"feedback":"$(MSG)"}' | node -e "process.stdin.on('data',d=>{const r=JSON.parse(d);console.log(r.ok?' Logged!':' Error: '+r.error)})"
restart: ## Restart the interview server (transparent — the kid won't notice)
@curl -s -X POST http://localhost:3456/api/restart \
-H 'Content-Type: application/json' | node -e "process.stdin.on('data',d=>{const r=JSON.parse(d);console.log(r.ok?' Restarting...':' Error: '+r.error)})"
resume: ## Resume from last archived conversation (run before 'make interview')
@if [ -f interview-app/.conversation-backup.json ]; then \
echo " Conversation backup exists — Bart will auto-recover on startup."; \
echo " Just run 'make interview'."; \
else \
LATEST=$$(ls -dt archive/interview-* 2>/dev/null | head -1) && \
if [ -z "$$LATEST" ]; then echo " No archived interviews found."; exit 1; fi && \
cp "$$LATEST/transcript.md" interview-app/.resume-context.md && \
echo " Loaded context from $$LATEST" && \
echo " Now run 'make interview' — Bart will remember the conversation."; \
fi
interview-test: ## Run interview app tests
@cd interview-app && node --test test.js
interview: ## Start the voice interview app (uses Claude Max subscription)
@chmod +x interview-app/run.sh
@interview-app/run.sh
interview-demo: ## Start kid-safe demo mode (no Claude login required)
@cd interview-app && YAPPY_MODE=demo node server.js
yappybara-install: ## One-command local install (set YAPPY_INSTALL_PLUGIN=1 to add Claude plugin)
@if [ "$${YAPPY_INSTALL_PLUGIN:-0}" = "1" ]; then \
./scripts/install-yappybara.sh --with-plugin; \
else \
./scripts/install-yappybara.sh; \
fi
yappybara-install-plugin: ## Install Yappybara Claude plugin from this repo marketplace
@./scripts/install-claude-plugin.sh
yappybara-launch: ## Fast launcher for local demo mode
@$(MAKE) interview-demo