- Update CI skill commands (status, fix, run, workflow) to detect Forge vs GitHub and use Forge API with curl + FORGE_TOKEN instead of gh CLI - Add detect-forge.sh script for CI provider detection from git remote - Add hooks.json with PreToolUse, PostToolUse, PreCompact, SessionStart hooks - Fix prefer-core.sh false positives: strip heredoc content before checking commands, tighten wildcard matching for mv/cp to only block bare wildcards - Update plugin.json: rename to "code", bump to v0.1.3, point URLs to Forge - Update block-docs.sh with improved blocking rules Co-Authored-By: Virgil <virgil@lethean.io>
37 lines
1.1 KiB
Bash
Executable file
37 lines
1.1 KiB
Bash
Executable file
#!/bin/bash
|
|
# Block creation of random .md files - keeps docs consolidated
|
|
|
|
read -r input
|
|
FILE_PATH=$(echo "$input" | jq -r '.tool_input.file_path // empty')
|
|
|
|
if [[ -n "$FILE_PATH" ]]; then
|
|
# Allow known documentation files
|
|
case "$FILE_PATH" in
|
|
*README.md|*CLAUDE.md|*AGENTS.md|*CONTRIBUTING.md|*CHANGELOG.md|*LICENSE.md)
|
|
echo "$input"
|
|
exit 0
|
|
;;
|
|
# Allow docs/ directory
|
|
*/docs/*.md|*/docs/**/*.md)
|
|
echo "$input"
|
|
exit 0
|
|
;;
|
|
# Allow Claude memory and plan files
|
|
*/.claude/*.md|*/.claude/**/*.md)
|
|
echo "$input"
|
|
exit 0
|
|
;;
|
|
# Allow plugin development (commands, skills)
|
|
*/commands/*.md|*/skills/*.md|*/skills/**/*.md)
|
|
echo "$input"
|
|
exit 0
|
|
;;
|
|
# Block other .md files
|
|
*.md)
|
|
echo '{"decision": "block", "message": "Use README.md or docs/ for documentation. Random .md files clutter the repo."}'
|
|
exit 0
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
echo "$input"
|