commit 7a6af5ae6103da2bbc40d36ba69cef84b5a34220 Author: Zhongwei Li Date: Sat Nov 29 18:19:22 2025 +0800 Initial commit diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..3276abe --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "hook-todo-collector", + "description": "Collect all TODO and FIXME comments from your project", + "version": "1.2.0", + "author": { + "name": "Dev GOM", + "url": "https://github.com/Dev-GOM/claude-code-marketplace" + }, + "hooks": [ + "./hooks" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..8c8b9cd --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# hook-todo-collector + +Collect all TODO and FIXME comments from your project diff --git a/hooks/hooks.json b/hooks/hooks.json new file mode 100644 index 0000000..788feac --- /dev/null +++ b/hooks/hooks.json @@ -0,0 +1,59 @@ +{ + "description": "Scans your entire project and collects all TODO, FIXME, HACK, XXX, NOTE, and BUG comments", + "version": "1.2.0", + "author": "Dev GOM", + "lastUpdated": "2025-10-20", + "hooks": { + "SessionStart": [ + { + "description": "Initialize TODO Collector configuration", + "priority": 10, + "enabled": true, + "hooks": [ + { + "type": "command", + "command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/init-config.js", + "description": "Creates user configuration file if it doesn't exist", + "timeout": 5000, + "continueOnError": true, + "suppressOutput": false + } + ] + } + ], + "PostToolUse": [ + { + "description": "Track modified files for TODO scanning", + "matcher": "Write|Edit|NotebookEdit", + "priority": 50, + "enabled": true, + "hooks": [ + { + "type": "command", + "command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/track-todos.js", + "description": "Records modified files for TODO comparison", + "timeout": 5000, + "continueOnError": true, + "suppressOutput": true + } + ] + } + ], + "Stop": [ + { + "description": "Scan and collect all TODO-style comments when session ends", + "priority": 90, + "enabled": true, + "hooks": [ + { + "type": "command", + "command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/collect-todos.js", + "description": "Scans project for TODO, FIXME, HACK, BUG, XXX, NOTE comments and generates reports", + "timeout": 15000, + "continueOnError": true + } + ] + } + ] + } +} diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..120decb --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,45 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:Dev-GOM/claude-code-marketplace:plugins/hook-todo-collector", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "e3f38885fad7f26c8a08b85157d99131b51a9fc2", + "treeHash": "b7b559a62ce4d82b2a50fd9f1497f51ac189bb2d218b63803ee95c0a86c07fb8", + "generatedAt": "2025-11-28T10:10:15.454896Z", + "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": "hook-todo-collector", + "description": "Collect all TODO and FIXME comments from your project", + "version": "1.2.0" + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "7b7fb3426b8c853f082bb8965ce831c7fd6895e69a938c03b1c68cd9d2132ebb" + }, + { + "path": "hooks/hooks.json", + "sha256": "61a9d7fc23f32dad73fbcfda51733507fcc82b13cb853b885efcad55bb59ff6e" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "de821fc969446ed5b3d00de75aa2cc7d58a158e4e6359a3d2a6e976c60fe7659" + } + ], + "dirSha256": "b7b559a62ce4d82b2a50fd9f1497f51ac189bb2d218b63803ee95c0a86c07fb8" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file