mirror of
https://github.com/luongnv89/claude-howto.git
synced 2026-08-08 00:08:36 +02:00
Internal accuracy pass against v2.1.220 — no missing upstream features, but broken example code, disagreeing counts, and metadata drift.
Functional fixes: pre-commit.sh now exits 2 so it actually blocks; dependency-check.sh reads file_path from stdin JSON instead of $1; database-mcp.json uses ${DATABASE_URL}; broken fences repaired; three command templates had invalid skill names.
Factual corrections: /fork and /subtask unswapped and /subtask added; /fewer-permission-prompts; permissions.defaultMode; dontAsk/auto unreversed; 31 hook events verified name-by-name; subagent depth 3; skill precedence enterprise > project > personal; /output-style removed not deprecated; permissionDecision gained defer.
Follow-up review fixed defects the pass left behind: zh/vi headers claiming 31 events above 25-name lists, a surviving hardcoded DB credential in the MCP README examples, an unbalanced fence swallowing a metadata footer, and non-canonical tool names. All four translated CATALOG summary tables were recounted so their arithmetic holds.
Full detail in CHANGELOG.md under v2.1.220-r2.
50 lines
1.2 KiB
Bash
50 lines
1.2 KiB
Bash
#!/bin/bash
|
|
# Auto-format code after writing
|
|
# Hook: PostToolUse (matcher: Write)
|
|
#
|
|
# Reads the target file path from stdin JSON and runs the appropriate formatter
|
|
# in-place on the file after Claude writes it.
|
|
#
|
|
# Compatible with: macOS, Linux, Windows (Git Bash)
|
|
|
|
# Read JSON input from stdin (Claude Code hook protocol)
|
|
INPUT=$(cat)
|
|
|
|
# Extract file_path using sed (compatible with all platforms)
|
|
FILE_PATH=$(echo "$INPUT" | sed -n 's/.*"file_path"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' | head -1)
|
|
|
|
if [ -z "$FILE_PATH" ] || [ ! -f "$FILE_PATH" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
# Detect file type and format accordingly
|
|
case "$FILE_PATH" in
|
|
*.js|*.jsx|*.ts|*.tsx)
|
|
if command -v prettier &> /dev/null; then
|
|
prettier --write "$FILE_PATH" 2>/dev/null
|
|
fi
|
|
;;
|
|
*.py)
|
|
if command -v black &> /dev/null; then
|
|
black "$FILE_PATH" 2>/dev/null
|
|
fi
|
|
;;
|
|
*.go)
|
|
if command -v gofmt &> /dev/null; then
|
|
gofmt -w "$FILE_PATH" 2>/dev/null
|
|
fi
|
|
;;
|
|
*.rs)
|
|
if command -v rustfmt &> /dev/null; then
|
|
rustfmt "$FILE_PATH" 2>/dev/null
|
|
fi
|
|
;;
|
|
*.java)
|
|
if command -v google-java-format &> /dev/null; then
|
|
google-java-format -i "$FILE_PATH" 2>/dev/null
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
exit 0
|