12 issue files documenting features needed to replace shell scripts: Claude Code hooks: - 001: core ai session (state management) - 002: core ai context (fact capture) - 003: core ai hook (command validation) - 004: core qa debug (debug statement detection) Data collection: - 005: core collect github (issues/PRs archive) - 006: core collect bitcointalk (forum threads) - 007: core collect market (CMC/CoinGecko) - 008: core collect papers (whitepapers) - 009: core collect excavate (project archaeology) - 010: core collect process (HTML→MD) - 011: core collect dispatch (event hooks) 000: Overview tracking issue These will be submitted to host-uk/core when rate limit resets. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
73 lines
1.8 KiB
Markdown
73 lines
1.8 KiB
Markdown
# feat(collect): Add event hook dispatch system
|
|
|
|
## Summary
|
|
|
|
Add `core collect dispatch` command to fire events during data collection, allowing modular hook handling.
|
|
|
|
## Required Commands
|
|
|
|
```bash
|
|
core collect dispatch <event> [args...] # Fire an event
|
|
core collect dispatch on_url_found <url> # URL discovered
|
|
core collect dispatch on_file_collected <file> <type> # File downloaded
|
|
core collect dispatch on_collection_complete # Batch finished
|
|
core collect hooks list # List registered hooks
|
|
core collect hooks register <event> <handler> # Register new hook
|
|
```
|
|
|
|
## Current Shell Script Being Replaced
|
|
|
|
- `claude/collection/dispatch.sh` - Hook dispatcher
|
|
|
|
## Events
|
|
|
|
| Event | Trigger | Args |
|
|
|-------|---------|------|
|
|
| `on_url_found` | URL discovered during collection | url |
|
|
| `on_file_collected` | File successfully downloaded | file, type |
|
|
| `on_collection_complete` | Job batch finishes | - |
|
|
|
|
## Hook Registration
|
|
|
|
Hooks defined in `hooks.json`:
|
|
```json
|
|
{
|
|
"hooks": {
|
|
"on_url_found": [
|
|
{
|
|
"name": "whitepaper-collector",
|
|
"pattern": "\\.pdf$",
|
|
"handler": "collect papers queue",
|
|
"priority": 10,
|
|
"enabled": true
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
## Pattern Matching
|
|
|
|
- Hooks can specify regex pattern for filtering
|
|
- Only matching events trigger the handler
|
|
- Multiple hooks can handle same event (priority ordering)
|
|
|
|
## Handler Types
|
|
|
|
1. **Core commands**: `collect papers queue`
|
|
2. **Shell scripts**: `./my-handler.sh`
|
|
3. **External binaries**: `/usr/local/bin/handler`
|
|
|
|
## Output Format
|
|
|
|
```json
|
|
{
|
|
"event": "on_url_found",
|
|
"args": ["https://example.com/paper.pdf"],
|
|
"handlers_fired": 2,
|
|
"results": [
|
|
{"handler": "whitepaper-collector", "status": "ok"},
|
|
{"handler": "archive-notifier", "status": "ok"}
|
|
]
|
|
}
|
|
```
|