refactor: move all remaining files to orig/ directory
Completed clean root directory structure: - Root now contains only: .git, .env, docs/, orig/ - Moved all remaining files and directories to orig/: - Config files (.claude, .dockerignore, .drone.yml, etc.) - All .env variants (except active .env) - Git config (.gitconfig, .github, .gitignore, etc.) - Tool configs (.golangci.yml, .revive.toml, etc.) - Documentation (*.md files, @prompts) - Build files (Dockerfiles, Makefile, go.mod, go.sum) - Docker compose files - All source directories (scripts, tests, tools, etc.) - Runtime directories (logs, monitoring, reports) - Dependency files (node_modules, lib, cache) - Special files (--delete) - Removed empty runtime directories (bin/, data/) V2 structure is now clean: - docs/planning/ - V2 planning documents - orig/ - Complete V1 codebase preserved - .env - Active environment config (not in git) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
237
orig/scripts/implementation-checker.sh
Executable file
237
orig/scripts/implementation-checker.sh
Executable file
@@ -0,0 +1,237 @@
|
||||
#!/bin/bash
|
||||
|
||||
# implementation-checker.sh - Script to find placeholder, mock, and erroneous implementations
|
||||
# Usage: ./scripts/implementation-checker.sh [output_dir]
|
||||
# If output_dir is not provided, defaults to logs/
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Default output directory
|
||||
OUTPUT_DIR="${1:-logs}"
|
||||
|
||||
# Create output directory if it doesn't exist
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
|
||||
# Output files
|
||||
LOG_FILE="$OUTPUT_DIR/implementation_check.log"
|
||||
TODO_FILE="TODOs.md"
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
GREEN='\033[0;32m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo "🔍 Implementation Checker Script"
|
||||
echo "==============================="
|
||||
echo "Output directory: $OUTPUT_DIR"
|
||||
echo ""
|
||||
|
||||
# Function to print section headers
|
||||
print_section() {
|
||||
echo -e "${YELLOW}=== $1 ===${NC}"
|
||||
}
|
||||
|
||||
# Function to print success messages
|
||||
print_success() {
|
||||
echo -e "${GREEN}✓ $1${NC}"
|
||||
}
|
||||
|
||||
# Function to print warning messages
|
||||
print_warning() {
|
||||
echo -e "${YELLOW}⚠ $1${NC}"
|
||||
}
|
||||
|
||||
# Function to print error messages
|
||||
print_error() {
|
||||
echo -e "${RED}✗ $1${NC}"
|
||||
}
|
||||
|
||||
# Check if ripgrep is installed
|
||||
if ! command -v rg &> /dev/null; then
|
||||
print_error "ripgrep (rg) is not installed. Please install it first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
print_section "Checking for placeholder, mock, and erroneous implementations"
|
||||
|
||||
# Create fresh log file
|
||||
echo "FILE LIST:" > "$LOG_FILE"
|
||||
|
||||
# Search patterns
|
||||
PATTERNS="placeholder|simple|simplified|mock|emulated|simulated|hallucinated|erroneous|todo|not implemented|niy|stub|fallback|sophisticated.*calculation|placeholder.*implementation|fallback.*implementation|simplified.*calculation|crude.*approximation|rough.*estimate|quick.*hack|bullshit|fucking|damn|darn"
|
||||
|
||||
# File types to search (excluding test files, vendor, bindings, etc.)
|
||||
FILE_TYPES="--type go --type yaml --type json --type md"
|
||||
|
||||
# Globs to exclude based on .gitignore and .dockerignore
|
||||
EXCLUDE_GLOBS=(
|
||||
"--glob=!test/*"
|
||||
"--glob=!tests/*"
|
||||
"--glob=!vendor/*"
|
||||
"--glob=!bindings/*"
|
||||
"--glob=!logs/*"
|
||||
"--glob=!data/*"
|
||||
"--glob=!backup/*"
|
||||
"--glob=!backups/*"
|
||||
"--glob=!bin/*"
|
||||
"--glob=!coverage.*"
|
||||
"--glob=!*.log"
|
||||
"--glob=!*.db"
|
||||
"--glob=!*.test"
|
||||
"--glob=!go.work"
|
||||
"--glob=!go.mod"
|
||||
"--glob=!go.sum"
|
||||
"--glob=!*.swp"
|
||||
"--glob=!*.swo"
|
||||
"--glob=!*.DS_Store"
|
||||
"--glob=!Thumbs.db"
|
||||
)
|
||||
|
||||
echo "Searching for patterns: $PATTERNS"
|
||||
echo "Excluding directories: test, tests, vendor, bindings, logs, data, backup, backups, bin"
|
||||
echo ""
|
||||
|
||||
# Find files with suspicious patterns
|
||||
print_section "Finding Files with Suspicious Patterns"
|
||||
|
||||
FILES_WITH_PATTERNS=$(rg ${FILE_TYPES} ${EXCLUDE_GLOBS[@]} -i -l "$PATTERNS" ./ 2>/dev/null || true)
|
||||
|
||||
if [ -n "$FILES_WITH_PATTERNS" ]; then
|
||||
echo "$FILES_WITH_PATTERNS" | sort -u | tee -a "$LOG_FILE"
|
||||
FILE_COUNT=$(echo "$FILES_WITH_PATTERNS" | wc -l)
|
||||
print_warning "Found $FILE_COUNT files with suspicious patterns"
|
||||
else
|
||||
echo "No files with suspicious patterns found" | tee -a "$LOG_FILE"
|
||||
print_success "No suspicious files found"
|
||||
fi
|
||||
|
||||
echo "" | tee -a "$LOG_FILE"
|
||||
|
||||
# Find specific patterns with context
|
||||
print_section "Detailed Pattern Matches"
|
||||
|
||||
echo "TOFIX:" >> "$LOG_FILE"
|
||||
|
||||
# Get detailed matches with context
|
||||
rg ${FILE_TYPES} ${EXCLUDE_GLOBS[@]} -i -A 6 -B 6 "$PATTERNS" ./ 2>/dev/null | \
|
||||
grep -v -E "^[0-9]\|^--$" | \
|
||||
tee -a "$LOG_FILE" || true
|
||||
|
||||
# Count total matches
|
||||
TOTAL_MATCHES=$(rg ${FILE_TYPES} ${EXCLUDE_GLOBS[@]} -i -c "$PATTERNS" ./ 2>/dev/null | paste -sd+ | bc 2>/dev/null || echo "0")
|
||||
|
||||
print_section "Summary"
|
||||
echo "Total pattern matches found: $TOTAL_MATCHES"
|
||||
echo "Check $LOG_FILE for detailed results"
|
||||
|
||||
# Create/update TODOs.md file
|
||||
print_section "Generating TODOs.md"
|
||||
|
||||
{
|
||||
echo "# Implementation Issues and TODOs"
|
||||
echo ""
|
||||
echo "This file was automatically generated by scripts/implementation-checker.sh"
|
||||
echo "Last updated: $(date)"
|
||||
echo ""
|
||||
|
||||
if [ "$TOTAL_MATCHES" -gt 0 ]; then
|
||||
echo "## Summary"
|
||||
echo "- Total files with issues: $(echo "$FILES_WITH_PATTERNS" | wc -l)"
|
||||
echo "- Total pattern matches: $TOTAL_MATCHES"
|
||||
echo ""
|
||||
|
||||
echo "## Files with Issues"
|
||||
echo ""
|
||||
if [ -n "$FILES_WITH_PATTERNS" ]; then
|
||||
echo "$FILES_WITH_PATTERNS" | sort -u | while read -r file; do
|
||||
echo "- [$file]($file)"
|
||||
done
|
||||
else
|
||||
echo "No files with issues found"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "## Detailed Matches"
|
||||
echo ""
|
||||
echo "### Pattern Matches with Context"
|
||||
echo ""
|
||||
|
||||
# Get matches in a more readable format
|
||||
rg ${FILE_TYPES} ${EXCLUDE_GLOBS[@]} -i -A 3 -B 3 "$PATTERNS" ./ 2>/dev/null | \
|
||||
grep -v -E "^[0-9]\|--$" | \
|
||||
sed 's/^/ /' || true
|
||||
|
||||
echo ""
|
||||
echo "## Categories of Issues"
|
||||
echo ""
|
||||
echo "### Placeholder Implementations"
|
||||
echo ""
|
||||
rg ${FILE_TYPES} ${EXCLUDE_GLOBS[@]} -i -A 2 -B 2 "placeholder" ./ 2>/dev/null | \
|
||||
grep -v -E "^[0-9]\|--$" | \
|
||||
sed 's/^/ /' || true
|
||||
|
||||
echo ""
|
||||
echo "### Mock Implementations"
|
||||
echo ""
|
||||
rg ${FILE_TYPES} ${EXCLUDE_GLOBS[@]} -i -A 2 -B 2 "mock" ./ 2>/dev/null | \
|
||||
grep -v -E "^[0-9]\|--$" | \
|
||||
sed 's/^/ /' || true
|
||||
|
||||
echo ""
|
||||
echo "### Simplified/Incomplete Implementations"
|
||||
echo ""
|
||||
rg ${FILE_TYPES} ${EXCLUDE_GLOBS[@]} -i -A 2 -B 2 "simplified\|simple\|stub\|fallback" ./ 2>/dev/null | \
|
||||
grep -v -E "^[0-9]\|--$" | \
|
||||
sed 's/^/ /' || true
|
||||
|
||||
echo ""
|
||||
echo "### TODO Items"
|
||||
echo ""
|
||||
rg ${FILE_TYPES} ${EXCLUDE_GLOBS[@]} -i -A 2 -B 2 "todo" ./ 2>/dev/null | \
|
||||
grep -v -E "^[0-9]\|--$" | \
|
||||
sed 's/^/ /' || true
|
||||
|
||||
echo ""
|
||||
echo "### Not Implemented Errors"
|
||||
echo ""
|
||||
rg ${FILE_TYPES} ${EXCLUDE_GLOBS[@]} -i -A 2 -B 2 "not implemented" ./ 2>/dev/null | \
|
||||
grep -v -E "^[0-9]\|--$" | \
|
||||
sed 's/^/ /' || true
|
||||
|
||||
echo ""
|
||||
echo "### Profanity or Negative Comments"
|
||||
echo ""
|
||||
rg ${FILE_TYPES} ${EXCLUDE_GLOBS[@]} -i -A 2 -B 2 "bullshit\|fucking\|damn\|darn" ./ 2>/dev/null | \
|
||||
grep -v -E "^[0-9]\|--$" | \
|
||||
sed 's/^/ /' || true
|
||||
else
|
||||
echo "## No Issues Found"
|
||||
echo ""
|
||||
echo "No placeholder, mock, or erroneous implementations were detected."
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "## Recommendations"
|
||||
echo ""
|
||||
echo "1. Review all placeholder implementations and replace with proper code"
|
||||
echo "2. Replace mock implementations with real implementations where needed"
|
||||
echo "3. Remove or address all TODO items"
|
||||
echo "4. Fix all 'not implemented' errors"
|
||||
echo "5. Remove profanity and improve code comments"
|
||||
echo "6. Enhance simplified implementations with proper functionality"
|
||||
echo ""
|
||||
echo "Generated by implementation-checker.sh on $(date)"
|
||||
} > "$TODO_FILE"
|
||||
|
||||
print_success "Created/updated $TODO_FILE with $TOTAL_MATCHES matches"
|
||||
|
||||
echo ""
|
||||
print_section "Done"
|
||||
echo "Results saved to:"
|
||||
echo "- $LOG_FILE (detailed log)"
|
||||
echo "- $TODO_FILE (organized TODO list)"
|
||||
echo ""
|
||||
echo "Review these files to identify and fix placeholder, mock, and erroneous implementations."
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user