npx claudepluginhub joshuarweaver/cascade-communication --plugin wuliang142857-claude-task-notify## Context - DINGTALK_WEBHOOK_URL set: !`[ -n "$DINGTALK_WEBHOOK_URL" ] && echo "yes" || echo "no"` - DINGTALK_SECRET set: !`[ -n "$DINGTALK_SECRET" ] && echo "yes" || echo "no"` - Current project: !`basename "$PWD"` - Hostname: !`hostname` ## Your task Send a test notification to DingTalk to verify the configuration is working. Steps: 1. Check if `DINGTALK_WEBHOOK_URL` and `DINGTALK_SECRET` are configured. If not, tell user to configure them in `~/.claude/settings.json` and stop. 2. If configured, send a test message using the DingTalk webhook: 3. Check the response and tell user:...
/testRuns pytest tests for CLI harness on local path or GitHub repo, verifies CLI resolution, and updates TEST.md with results if all pass.
/testRuns TDD workflow: writes failing tests for new features or bugs (Prove-It pattern), implements code to pass them, refactors, and verifies full test suite.
/testExecutes unit, integration, or e2e tests with coverage analysis, quality metrics, failure diagnostics, and optional watch mode or auto-fixes.
/testGenerates test strategy overview, unit and integration test code, coverage analysis, execution plan, and maintenance roadmap for a specified component or feature.
/testLaunches Chrome for manual UI testing at given URL, monitors console errors during interaction, generates report with screenshots and logs on completion.
/testInvokes the testing-coach agent to provide guidance on screen reader, keyboard navigation, and automated testing for the given request.
[ -n "$DINGTALK_WEBHOOK_URL" ] && echo "yes" || echo "no"[ -n "$DINGTALK_SECRET" ] && echo "yes" || echo "no"basename "$PWD"hostnameSend a test notification to DingTalk to verify the configuration is working.
Steps:
Check if DINGTALK_WEBHOOK_URL and DINGTALK_SECRET are configured. If not, tell user to configure them in ~/.claude/settings.json and stop.
If configured, send a test message using the DingTalk webhook:
# Calculate signature
timestamp=$(date +%s%3N)
sign=$(echo -ne "${timestamp}\n${DINGTALK_SECRET}" | openssl dgst -sha256 -hmac "$DINGTALK_SECRET" -binary | base64 | sed 's/+/%2B/g; s/\//%2F/g; s/=/%3D/g')
# Build signed URL
signed_url="${DINGTALK_WEBHOOK_URL}×tamp=${timestamp}&sign=${sign}"
# Build message
PROJECT_NAME=$(basename "$PWD")
HOSTNAME=$(hostname)
MESSAGE="[Claude Task Notify - Test]
This is a test notification from Claude Code.
Project: ${PROJECT_NAME}
Host: ${HOSTNAME}
Time: $(date '+%Y-%m-%d %H:%M:%S')
If you see this message, the notification service is working correctly!"
# Send with jq for proper JSON escaping
PAYLOAD=$(jq -n --arg content "$MESSAGE" '{"msgtype": "text", "text": {"content": $content}}')
curl -s -X POST "$signed_url" \
-H 'Content-Type: application/json' \
-d "$PAYLOAD"