jellytau/scripts/generate-traceability-matrix.sh

39 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
#
# Generate traceability matrix in Markdown format
#
echo "# Requirements Traceability Matrix"
echo ""
echo "**Generated**: $(date '+%Y-%m-%d %H:%M:%S')"
echo ""
echo "| Requirement | Files Implementing | Status | Notes |"
echo "|-------------|--------------------|--------|-------|"
requirements=$(grep -E "^\| (UR|IR|DR|JA)-[0-9]+" README.md | sed -E 's/^\| ([A-Z]+-[0-9]+).*/\1/' | sort -u)
for req in $requirements; do
files=$(grep -rl "@req: $req" src-tauri/ src/ 2>/dev/null | \
sed 's|src-tauri/src/||; s|src/||' | \
paste -sd, -)
partial_files=$(grep -rl "@req-partial: $req" src-tauri/ src/ 2>/dev/null | wc -l)
planned=$(grep -rl "@req-planned: $req" src-tauri/ src/ 2>/dev/null | wc -l)
if [ -n "$files" ]; then
status="✅ Done"
notes=""
elif [ "$partial_files" -gt 0 ]; then
status="🔶 Partial"
notes="Platform-specific"
elif [ "$planned" -gt 0 ]; then
status="📋 Planned"
notes="Not implemented"
else
status="❌ Missing"
notes="No implementation"
fi
echo "| $req | ${files:-N/A} | $status | $notes |"
done