39 lines
1.1 KiB
Bash
Executable File
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
|