tools-count-sloc
Present a summary of the code base including lines of source code and complexity metrics.
Files2
View on GitHubSKILL.md.claude/skills/tools-count-sloc/SKILL.md
GitHubCount lines of source code and present complexity metrics for the codebase.
Input
Optional argument: a subdirectory to scope the analysis (e.g. components/dispatcher/v0). Defaults to the repository root.
Steps
- Determine the target directory:
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
if [[ -n "$ARGUMENTS" ]]; then
TARGET="$REPO_ROOT/$ARGUMENTS"
if [[ ! -d "$TARGET" ]]; then
echo "Error: directory not found: $TARGET" >&2
exit 1
fi
else
TARGET="$REPO_ROOT"
fi
- Ensure
tokeiis installed (it's a fast, accurate SLOC counter written in Rust):
if ! command -v tokei &>/dev/null; then
echo "Installing tokei..."
cargo install tokei --quiet
fi
- Run tokei for the SLOC summary, excluding build artifacts and vendored dependencies:
tokei "$TARGET" --exclude deps/spdk-build --exclude target --sort code
- Run the complexity analysis script to produce per-component metrics:
SCRIPT="$(git rev-parse --show-toplevel)/.claude/skills/tools-count-sloc/complexity.sh"
bash "$SCRIPT" "$TARGET"
Present the results to the user in a clear summary with:
- Total lines of code (by language)
- Breakdown by component/directory
- Complexity indicators (files with highest function counts, deepest nesting)
- Comparison of code vs tests vs comments ratios
Write out the presented results to SUMMARY.md file. Interactively allow user to specify a different directory.