-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchitfix-auto.sh
More file actions
executable file
Β·186 lines (153 loc) Β· 7.37 KB
/
chitfix-auto.sh
File metadata and controls
executable file
Β·186 lines (153 loc) Β· 7.37 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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
#!/bin/bash
# ChittyFix Auto - Automatic Fix with Agent Enhancement
# Automatically invokes chittycheck-enhancer agent to fix compliance violations
set -euo pipefail
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
MAGENTA='\033[0;35m'
NC='\033[0m'
# Configuration
FIX_TARGET="${1:-all}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CHITTYCHECK_SCRIPT="${SCRIPT_DIR}/chittycheck-enhanced.sh"
# Fallback to absolute path if running via symlink
if [ ! -f "$CHITTYCHECK_SCRIPT" ]; then
CHITTYCHECK_SCRIPT="/Users/nb/.claude/projects/-/chittychat/chittycheck-enhanced.sh"
fi
echo -e "${CYAN}π§ CHITTYFIX AUTO - Automatic Compliance Fix with Agent${NC}"
echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ"
echo ""
# Step 1: Run pre-fix validation
echo -e "${BLUE}[1/4] Pre-Fix Validation...${NC}"
echo ""
BEFORE_OUTPUT=$(bash "$CHITTYCHECK_SCRIPT" 2>&1) || true
BEFORE_SCORE=$(echo "$BEFORE_OUTPUT" | grep "Compliance Score:" | grep -oE '[0-9]+%' | tr -d '%' || echo "0")
echo " Current Compliance: ${BEFORE_SCORE}%"
echo ""
# Step 2: Identify fix targets
echo -e "${BLUE}[2/4] Identifying Fix Targets...${NC}"
echo " Target: ${FIX_TARGET}"
echo ""
# Extract specific failure types
ROGUE_ID_FAIL=$(echo "$BEFORE_OUTPUT" | grep -E "Rogue ID Pattern Detection.*β|No rogue ID generation patterns.*β" || echo "")
SECURITY_FAIL=$(echo "$BEFORE_OUTPUT" | grep -E "SECURITY VALIDATION" -A 20 | grep "β" || echo "")
SERVICE_FAIL=$(echo "$BEFORE_OUTPUT" | grep -E "ChittyOS Core Service|Internal Service Integration" -A 30 | grep "β" || echo "")
# Count issues by category
ROGUE_COUNT=$(echo "$ROGUE_ID_FAIL" | grep -c "β" || echo "0")
SECURITY_COUNT=$(echo "$SECURITY_FAIL" | grep -c "β" || echo "0")
SERVICE_COUNT=$(echo "$SERVICE_FAIL" | grep -c "β" || echo "0")
echo " Issue Summary:"
echo " - Rogue ID Patterns: ${ROGUE_COUNT}"
echo " - Security Issues: ${SECURITY_COUNT}"
echo " - Service Issues: ${SERVICE_COUNT}"
echo ""
# Step 3: Invoke chittycheck-enhancer agent
echo -e "${BLUE}[3/4] Invoking chittycheck-enhancer agent...${NC}"
echo ""
# Create detailed fix prompt based on target
case "$FIX_TARGET" in
id|rogue)
FIX_DESCRIPTION="Fix ChittyID rogue generation patterns (Β§36 violations)"
;;
security|sec)
FIX_DESCRIPTION="Fix security issues (hardcoded secrets, direct AI calls)"
;;
services|svc)
FIX_DESCRIPTION="Fix service connectivity and configuration"
;;
all|*)
FIX_DESCRIPTION="Fix all compliance violations"
;;
esac
AGENT_PROMPT="ChittyFix requested: ${FIX_TARGET}
Current compliance: ${BEFORE_SCORE}%
Issue breakdown:
- Rogue ID Patterns: ${ROGUE_COUNT} failures
- Security Issues: ${SECURITY_COUNT} failures
- Service Issues: ${SERVICE_COUNT} failures
Task: ${FIX_DESCRIPTION}
Please run chittycheck, analyze failures, implement fixes, and verify improvements."
# Check if running in interactive mode
if [ -t 0 ]; then
# Interactive terminal - guide user
echo -e "${MAGENTA}ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ${NC}"
echo -e "${MAGENTA}β ChittyFix requires chittycheck-enhancer agent β${NC}"
echo -e "${MAGENTA}β β${NC}"
echo -e "${MAGENTA}β Invoke in Claude Code: β${NC}"
echo -e "${MAGENTA}β β${NC}"
echo -e "${MAGENTA}β @agent-chittycheck-enhancer β${NC}"
echo -e "${MAGENTA}β β${NC}"
echo -e "${MAGENTA}β Fix Target: ${FIX_TARGET} β${NC}"
echo -e "${MAGENTA}β Description: ${FIX_DESCRIPTION}${NC}"
echo -e "${MAGENTA}β β${NC}"
echo -e "${MAGENTA}β The agent will: β${NC}"
echo -e "${MAGENTA}β 1. Run chittycheck validation β${NC}"
echo -e "${MAGENTA}β 2. Identify specific violations β${NC}"
echo -e "${MAGENTA}β 3. Apply targeted fixes β${NC}"
echo -e "${MAGENTA}β 4. Re-validate and report β${NC}"
echo -e "${MAGENTA}ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ${NC}"
echo ""
# Show what will be fixed
echo -e "${CYAN}Fix Plan:${NC}"
if [ "$ROGUE_COUNT" -gt 0 ] && { [ "$FIX_TARGET" = "all" ] || [ "$FIX_TARGET" = "id" ] || [ "$FIX_TARGET" = "rogue" ]; }; then
echo " β Replace local ID generation with ChittyID service calls"
echo " β Implement SERVICE OR FAIL principle"
fi
if [ "$SECURITY_COUNT" -gt 0 ] && { [ "$FIX_TARGET" = "all" ] || [ "$FIX_TARGET" = "security" ] || [ "$FIX_TARGET" = "sec" ]; }; then
echo " β Remove hardcoded secrets"
echo " β Route AI calls through ChittyRouter"
fi
if [ "$SERVICE_COUNT" -gt 0 ] && { [ "$FIX_TARGET" = "all" ] || [ "$FIX_TARGET" = "services" ] || [ "$FIX_TARGET" = "svc" ]; }; then
echo " β Fix service endpoints and configuration"
echo " β Update environment variables"
fi
echo ""
echo -e "${YELLOW}Waiting for agent invocation...${NC}"
echo ""
# Wait for user to invoke agent
read -p "Press Enter after agent completes fixes, or Ctrl+C to cancel... " -r
echo ""
# Step 4: Post-fix validation
echo -e "${BLUE}[4/4] Post-Fix Validation...${NC}"
echo ""
AFTER_OUTPUT=$(bash "$CHITTYCHECK_SCRIPT" 2>&1) || true
AFTER_SCORE=$(echo "$AFTER_OUTPUT" | grep "Compliance Score:" | grep -oE '[0-9]+%' | tr -d '%' || echo "0")
# Calculate improvement
IMPROVEMENT=$((AFTER_SCORE - BEFORE_SCORE))
echo -e "${CYAN}Fix Results:${NC}"
echo " Before: ${BEFORE_SCORE}%"
echo " After: ${AFTER_SCORE}%"
if [ "$IMPROVEMENT" -gt 0 ]; then
echo -e " ${GREEN}Improvement: +${IMPROVEMENT}%${NC}"
elif [ "$IMPROVEMENT" -lt 0 ]; then
echo -e " ${RED}Regression: ${IMPROVEMENT}%${NC}"
else
echo -e " ${YELLOW}No change${NC}"
fi
echo ""
if [ "$AFTER_SCORE" -ge 80 ]; then
echo -e "${GREEN}π COMPLIANCE ACHIEVED!${NC}"
echo -e "${GREEN} Score: ${AFTER_SCORE}% >= 80%${NC}"
exit 0
elif [ "$IMPROVEMENT" -gt 0 ]; then
echo -e "${YELLOW}β οΈ Compliance improved but below threshold${NC}"
echo -e "${YELLOW} Score: ${AFTER_SCORE}% < 80%${NC}"
echo ""
echo "Run chittyfix-auto.sh again to continue fixing remaining issues"
exit 1
else
echo -e "${RED}β No improvement detected${NC}"
echo " Manual intervention may be required"
exit 1
fi
else
# Non-interactive mode
echo -e "${RED}β ChittyFix requires interactive mode${NC}"
echo ""
echo "Run in Claude Code and invoke: @agent-chittycheck-enhancer"
exit 1
fi