Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:36:22 +08:00
commit 82f4e2da27
5 changed files with 98 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
{
"name": "test-plugin",
"description": "Minimal test plugin to reproduce hook output capture bug",
"version": "1.0.0",
"author": {
"name": "Test"
},
"hooks": [
"./hooks"
]
}

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# test-plugin
Minimal test plugin to reproduce hook output capture bug

20
hooks/entrypoints/stop.sh Executable file
View File

@@ -0,0 +1,20 @@
#!/bin/bash
# Simple Stop hook that blocks (forces continuation) - PLUGIN VERSION
# Read input from STDIN (Claude Code passes hook data as JSON)
read -r input
# Check if stop hook is already active (prevents infinite loop)
stop_hook_active=$(echo "$input" | jq -r '.stop_hook_active // false')
if [ "$stop_hook_active" = "true" ]; then
# Already triggered once, allow normal stop
echo '{"continue":true,"stopReason":"","suppressOutput":true}' >&1
exit 0
fi
# Output valid JSON response to STDERR (required when exit code is 2)
echo '{"continue":true,"stopReason":"","suppressOutput":true,"decision":"block","reason":"I notice I just used a reflexive agreement phrase. Let me provide a more substantive response:\n\nInstead of simply agreeing, let me analyze your point with specific technical reasoning, consider potential edge cases or alternative approaches, and offer constructive insights that build collaboratively on your observation."}' >&2
# Exit with code 2 to force continuation
exit 2

15
hooks/hooks.json Normal file
View File

@@ -0,0 +1,15 @@
{
"description": "Minimal test hook configuration to reproduce output capture bug",
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/entrypoints/stop.sh"
}
]
}
]
}
}

49
plugin.lock.json Normal file
View File

@@ -0,0 +1,49 @@
{
"$schema": "internal://schemas/plugin.lock.v1.json",
"pluginId": "gh:kylesnowschwartz/plugin-hook-debug:plugins/test-plugin",
"normalized": {
"repo": null,
"ref": "refs/tags/v20251128.0",
"commit": "5c72c29791246372a286f32eba9391d63bf634a5",
"treeHash": "db6ac4a14eddbb6a5fc4e7e3dd3d71be95a91bfe1f47dcdbe57201f663e08a54",
"generatedAt": "2025-11-28T10:20:02.408966Z",
"toolVersion": "publish_plugins.py@0.2.0"
},
"origin": {
"remote": "git@github.com:zhongweili/42plugin-data.git",
"branch": "master",
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
},
"manifest": {
"name": "test-plugin",
"description": "Minimal test plugin to reproduce hook output capture bug",
"version": "1.0.0"
},
"content": {
"files": [
{
"path": "README.md",
"sha256": "3c5a529b7cbfc5b9c3ec4a663f2e2afdc6d1c39f91bf75176351320a95cb812d"
},
{
"path": "hooks/hooks.json",
"sha256": "de8e63ae139943ad092bd3994d627e23ef0de4c5462703d6b9a82fdf2b3e065f"
},
{
"path": "hooks/entrypoints/stop.sh",
"sha256": "5b61b38c86addf3aea582b61b91d757f21673b68abc963cc93730e77a2f76946"
},
{
"path": ".claude-plugin/plugin.json",
"sha256": "369f896c55c9676c85778fb60151c0fd4be78ebed9e77fa206bd9aca04640e9a"
}
],
"dirSha256": "db6ac4a14eddbb6a5fc4e7e3dd3d71be95a91bfe1f47dcdbe57201f663e08a54"
},
"security": {
"scannedAt": null,
"scannerVersion": null,
"flags": []
}
}