refactor: Remove hooks - SessionEnd/PreCompact not useful for notifications
Hooks execute after Claude Code exits, so output is not visible. Removed: setup command, install-hooks.sh, hooks.json, session-end-reminder.sh Bump version to 2.2.0 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -11,7 +11,7 @@
|
|||||||
"name": "learn",
|
"name": "learn",
|
||||||
"source": "./plugins/learn",
|
"source": "./plugins/learn",
|
||||||
"description": "Domain-based memory with selective saving, signal detection, and memory hygiene",
|
"description": "Domain-based memory with selective saving, signal detection, and memory hygiene",
|
||||||
"version": "2.1.4",
|
"version": "2.2.0",
|
||||||
"keywords": ["learn", "memory", "patterns", "gotchas", "domains", "cleanup", "hygiene"]
|
"keywords": ["learn", "memory", "patterns", "gotchas", "domains", "cleanup", "hygiene"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "learn",
|
"name": "learn",
|
||||||
"description": "Claude Learn: Session analysis for patterns and gotchas with domain-based memory, selective saving, and memory hygiene",
|
"description": "Claude Learn: Session analysis for patterns and gotchas with domain-based memory, selective saving, and memory hygiene",
|
||||||
"version": "2.1.4",
|
"version": "2.2.0",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Romfast Team"
|
"name": "Romfast Team"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,62 +0,0 @@
|
|||||||
# /learn:setup - Install Learn Plugin Hooks
|
|
||||||
|
|
||||||
Instalează hooks-urile plugin-ului Learn în configurația Claude Code.
|
|
||||||
|
|
||||||
## Task
|
|
||||||
|
|
||||||
Verifică și instalează hooks-urile necesare pentru plugin-ul Learn în `~/.claude/settings.json`.
|
|
||||||
|
|
||||||
### Hooks de instalat:
|
|
||||||
|
|
||||||
1. **SessionEnd** - Reminder la sfârșitul sesiunii să rulezi `/learn:analyze`
|
|
||||||
2. **PreCompact** (auto) - Reminder înainte de auto-compact să salvezi lecțiile
|
|
||||||
|
|
||||||
### Pași:
|
|
||||||
|
|
||||||
1. Citește `~/.claude/settings.json`
|
|
||||||
2. Verifică dacă există deja secțiunea `hooks`
|
|
||||||
3. Adaugă sau actualizează hooks-urile pentru Learn plugin:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"hooks": {
|
|
||||||
"SessionEnd": [
|
|
||||||
{
|
|
||||||
"hooks": [
|
|
||||||
{
|
|
||||||
"type": "command",
|
|
||||||
"command": "echo 'Tip: Ruleaza /learn:analyze pentru a captura lectiile din sesiune'",
|
|
||||||
"timeout": 5
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PreCompact": [
|
|
||||||
{
|
|
||||||
"matcher": "auto",
|
|
||||||
"hooks": [
|
|
||||||
{
|
|
||||||
"type": "command",
|
|
||||||
"command": "echo 'Context plin! Ruleaza /learn:analyze ACUM pentru a salva lectiile inainte de compact!'",
|
|
||||||
"timeout": 5
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
4. Salvează fișierul actualizat
|
|
||||||
5. Confirmă instalarea cu succes
|
|
||||||
|
|
||||||
### Output:
|
|
||||||
|
|
||||||
Afișează:
|
|
||||||
- Ce hooks au fost instalate
|
|
||||||
- Dacă erau deja instalate (skip)
|
|
||||||
- Instrucțiuni pentru a verifica cu `/hooks`
|
|
||||||
|
|
||||||
### Notă:
|
|
||||||
|
|
||||||
Această comandă modifică `~/.claude/settings.json`. Hooks-urile vor fi active din următoarea sesiune Claude Code.
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"description": "Claude Learn hooks - session end reminders",
|
|
||||||
"hooks": {
|
|
||||||
"SessionEnd": [
|
|
||||||
{
|
|
||||||
"matcher": "*",
|
|
||||||
"hooks": [
|
|
||||||
{
|
|
||||||
"type": "command",
|
|
||||||
"command": "bash ${CLAUDE_PLUGIN_ROOT}/scripts/session-end-reminder.sh",
|
|
||||||
"timeout": 5
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,119 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Claude Learn - Install Hooks
|
|
||||||
# Adaugă hooks-urile Learn în ~/.claude/settings.json
|
|
||||||
|
|
||||||
SETTINGS_FILE="$HOME/.claude/settings.json"
|
|
||||||
|
|
||||||
# Colors
|
|
||||||
GREEN='\033[0;32m'
|
|
||||||
YELLOW='\033[1;33m'
|
|
||||||
CYAN='\033[0;36m'
|
|
||||||
RED='\033[0;31m'
|
|
||||||
NC='\033[0m'
|
|
||||||
|
|
||||||
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
||||||
echo -e "${CYAN} Claude Learn - Hook Installation${NC}"
|
|
||||||
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
||||||
|
|
||||||
# Check if settings file exists
|
|
||||||
if [ ! -f "$SETTINGS_FILE" ]; then
|
|
||||||
echo -e "${RED}Error: $SETTINGS_FILE not found${NC}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Backup
|
|
||||||
cp "$SETTINGS_FILE" "$SETTINGS_FILE.backup"
|
|
||||||
echo -e "${GREEN}✓${NC} Backup created: settings.json.backup"
|
|
||||||
|
|
||||||
# Check if hooks already exist
|
|
||||||
if python3 -c "import json; d=json.load(open('$SETTINGS_FILE')); exit(0 if 'hooks' in d else 1)" 2>/dev/null; then
|
|
||||||
echo -e "${YELLOW}⚠${NC} Hooks section already exists in settings.json"
|
|
||||||
echo -e " Checking for Learn hooks..."
|
|
||||||
|
|
||||||
# Check if SessionEnd already has our hook
|
|
||||||
HAS_LEARN=$(python3 -c "
|
|
||||||
import json
|
|
||||||
d = json.load(open('$SETTINGS_FILE'))
|
|
||||||
hooks = d.get('hooks', {})
|
|
||||||
session_end = hooks.get('SessionEnd', [])
|
|
||||||
for h in session_end:
|
|
||||||
inner_hooks = h.get('hooks', [])
|
|
||||||
for ih in inner_hooks:
|
|
||||||
cmd = ih.get('command', '')
|
|
||||||
if 'learn:analyze' in cmd:
|
|
||||||
print('yes')
|
|
||||||
exit(0)
|
|
||||||
print('no')
|
|
||||||
" 2>/dev/null)
|
|
||||||
|
|
||||||
if [ "$HAS_LEARN" = "yes" ]; then
|
|
||||||
echo -e "${GREEN}✓${NC} Learn hooks already installed!"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add hooks using Python
|
|
||||||
python3 << 'PYTHON_SCRIPT'
|
|
||||||
import json
|
|
||||||
import os
|
|
||||||
|
|
||||||
settings_file = os.path.expanduser("~/.claude/settings.json")
|
|
||||||
|
|
||||||
with open(settings_file, 'r') as f:
|
|
||||||
settings = json.load(f)
|
|
||||||
|
|
||||||
# Define Learn hooks (format: hooks array inside)
|
|
||||||
learn_session_end = {
|
|
||||||
"hooks": [
|
|
||||||
{
|
|
||||||
"type": "command",
|
|
||||||
"command": "echo 'Tip: Ruleaza /learn:analyze pentru a captura lectiile din sesiune'",
|
|
||||||
"timeout": 5
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
learn_pre_compact = {
|
|
||||||
"matcher": "auto",
|
|
||||||
"hooks": [
|
|
||||||
{
|
|
||||||
"type": "command",
|
|
||||||
"command": "echo 'Context plin! Ruleaza /learn:analyze ACUM pentru a salva lectiile inainte de compact!'",
|
|
||||||
"timeout": 5
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Initialize hooks if not exists
|
|
||||||
if 'hooks' not in settings:
|
|
||||||
settings['hooks'] = {}
|
|
||||||
|
|
||||||
# Add SessionEnd hook
|
|
||||||
if 'SessionEnd' not in settings['hooks']:
|
|
||||||
settings['hooks']['SessionEnd'] = []
|
|
||||||
settings['hooks']['SessionEnd'].append(learn_session_end)
|
|
||||||
|
|
||||||
# Add PreCompact hook
|
|
||||||
if 'PreCompact' not in settings['hooks']:
|
|
||||||
settings['hooks']['PreCompact'] = []
|
|
||||||
settings['hooks']['PreCompact'].append(learn_pre_compact)
|
|
||||||
|
|
||||||
# Write back
|
|
||||||
with open(settings_file, 'w') as f:
|
|
||||||
json.dump(settings, f, indent=2)
|
|
||||||
|
|
||||||
print("Hooks added successfully!")
|
|
||||||
PYTHON_SCRIPT
|
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo -e "${GREEN}✓${NC} SessionEnd hook installed"
|
|
||||||
echo -e "${GREEN}✓${NC} PreCompact hook installed"
|
|
||||||
echo ""
|
|
||||||
echo -e "${CYAN}Hooks-urile vor fi active din următoarea sesiune Claude Code.${NC}"
|
|
||||||
echo -e "Verifică cu: ${YELLOW}/hooks${NC}"
|
|
||||||
else
|
|
||||||
echo -e "${RED}Error installing hooks${NC}"
|
|
||||||
# Restore backup
|
|
||||||
mv "$SETTINGS_FILE.backup" "$SETTINGS_FILE"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Claude Learn - Session End Reminder
|
|
||||||
# This script runs at session end and reminds the user to save lessons
|
|
||||||
|
|
||||||
# Colors for terminal output
|
|
||||||
YELLOW='\033[1;33m'
|
|
||||||
CYAN='\033[0;36m'
|
|
||||||
NC='\033[0m' # No Color
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
||||||
echo -e "${CYAN}💡 Tip: Rulează ${YELLOW}/learn:analyze${CYAN} pentru a captura lecțiile din sesiune${NC}"
|
|
||||||
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
||||||
echo ""
|
|
||||||
Reference in New Issue
Block a user