101 lines
2.5 KiB
Bash
Executable File
101 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# count-artifacts.sh - Count lines in skill artifacts
|
|
|
|
set -euo pipefail
|
|
|
|
SKILL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
echo "=== Artifact Line Count Report ==="
|
|
echo ""
|
|
|
|
total_lines=0
|
|
|
|
# SKILL.md
|
|
if [[ -f "$SKILL_DIR/SKILL.md" ]]; then
|
|
lines=$(wc -l < "$SKILL_DIR/SKILL.md")
|
|
total_lines=$((total_lines + lines))
|
|
echo "SKILL.md: $lines lines"
|
|
if [[ $lines -gt 40 ]]; then
|
|
echo " ⚠️ WARNING: Exceeds 40-line target ($(($lines - 40)) over)"
|
|
else
|
|
echo " ✅ Within 40-line target"
|
|
fi
|
|
echo ""
|
|
fi
|
|
|
|
# Examples
|
|
echo "Examples:"
|
|
for file in "$SKILL_DIR"/examples/*.md; do
|
|
if [[ -f "$file" ]]; then
|
|
lines=$(wc -l < "$file")
|
|
total_lines=$((total_lines + lines))
|
|
basename=$(basename "$file")
|
|
echo " $basename: $lines lines"
|
|
if [[ $lines -gt 150 ]]; then
|
|
echo " ⚠️ WARNING: Exceeds 150-line target ($(($lines - 150)) over)"
|
|
else
|
|
echo " ✅ Within 150-line target"
|
|
fi
|
|
fi
|
|
done
|
|
echo ""
|
|
|
|
# Templates
|
|
echo "Templates:"
|
|
for file in "$SKILL_DIR"/templates/*.md; do
|
|
if [[ -f "$file" ]]; then
|
|
lines=$(wc -l < "$file")
|
|
total_lines=$((total_lines + lines))
|
|
basename=$(basename "$file")
|
|
echo " $basename: $lines lines"
|
|
fi
|
|
done
|
|
echo ""
|
|
|
|
# Reference
|
|
echo "Reference:"
|
|
for file in "$SKILL_DIR"/reference/*.md; do
|
|
if [[ -f "$file" ]]; then
|
|
lines=$(wc -l < "$file")
|
|
total_lines=$((total_lines + lines))
|
|
basename=$(basename "$file")
|
|
echo " $basename: $lines lines"
|
|
fi
|
|
done
|
|
echo ""
|
|
|
|
# Case Studies
|
|
echo "Case Studies:"
|
|
for file in "$SKILL_DIR"/reference/case-studies/*.md; do
|
|
if [[ -f "$file" ]]; then
|
|
lines=$(wc -l < "$file")
|
|
total_lines=$((total_lines + lines))
|
|
basename=$(basename "$file")
|
|
echo " $basename: $lines lines"
|
|
fi
|
|
done
|
|
echo ""
|
|
|
|
echo "=== Summary ==="
|
|
echo "Total lines: $total_lines"
|
|
echo ""
|
|
|
|
# Compactness validation
|
|
compact_lines=0
|
|
if [[ -f "$SKILL_DIR/SKILL.md" ]]; then
|
|
compact_lines=$((compact_lines + $(wc -l < "$SKILL_DIR/SKILL.md")))
|
|
fi
|
|
for file in "$SKILL_DIR"/examples/*.md; do
|
|
if [[ -f "$file" ]]; then
|
|
compact_lines=$((compact_lines + $(wc -l < "$file")))
|
|
fi
|
|
done
|
|
|
|
echo "Compactness check (SKILL.md + examples):"
|
|
echo " Total: $compact_lines lines"
|
|
if [[ $compact_lines -le 190 ]]; then
|
|
echo " ✅ Meets compactness target (≤190 lines for SKILL.md ≤40 + examples ≤150)"
|
|
else
|
|
echo " ⚠️ Exceeds compactness target ($((compact_lines - 190)) lines over)"
|
|
fi
|