Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:08:48 +08:00
commit 52ebac5229
9 changed files with 389 additions and 0 deletions

59
skills/tdg/scripts/tdg_phase.sh Executable file
View File

@@ -0,0 +1,59 @@
#!/bin/bash
###########################################
# Part of Test-Driven Generation plugin
###########################################
# TDD Phase Detection Script
# Detects the current TDD phase by checking commit messages for markers:
# - red: (failing test)
# - green: (passing test)
# - refactor: (code improvement)
# Get the most recent commit message
latest_commit=$(git log -1 --pretty=%B 2>/dev/null)
if [ $? -ne 0 ]; then
echo "unknown"
exit 1
fi
# Convert to lowercase for case-insensitive matching
commit_lower=$(echo "$latest_commit" | tr '[:upper:]' '[:lower:]')
# Check for phase markers in order of precedence
if echo "$commit_lower" | grep -q "^red:"; then
echo "red"
exit 0
elif echo "$commit_lower" | grep -q "^green:"; then
echo "green"
exit 0
elif echo "$commit_lower" | grep -q "^refactor:"; then
echo "refactor"
exit 0
else
# If no marker found in latest commit, check more commits
recent_commits=$(git log -10 --pretty=%B 2>/dev/null)
if [ $? -ne 0 ]; then
echo "unknown"
exit 1
fi
recent_lower=$(echo "$recent_commits" | tr '[:upper:]' '[:lower:]')
# Look for the most recent phase marker
if echo "$recent_lower" | grep -q "^red:"; then
echo "red"
exit 0
elif echo "$recent_lower" | grep -q "^green:"; then
echo "green"
exit 0
elif echo "$recent_lower" | grep -q "^refactor:"; then
echo "refactor"
exit 0
else
# No markers found in recent history
echo "unknown"
exit 0
fi
fi