Hook SessionStart. Scansiona repos, API, messaggi, VPS. Report strutturato nel contesto.
Ogni sessione parte da zero. Repo, commit, server, messaggi. Spieghi tutto. Ogni volta.
Senza: “Stato di THIA?” Aspetti. “File non committati?” Aspetti. “VPS online?” Aspetti. “Messaggi?” Aspetti.
Si attiva ad ogni SessionStart. Scansiona, genera report, inietta nel contesto.
Scansiona tutti i repo git nella base: branch, commit, dirty files, ahead/behind rispetto al remote.
Controlla la salute delle API e del VPS con un curl all'endpoint health. Status, modello, uptime.
Legge i messaggi inter-nodo non letti. Telegram relay, bridge, notifiche dai collaboratori.
Genera un report leggibile che l'AI coder riceve nel contesto iniziale della sessione.
Lo stato viene salvato in system_state.md per riferimento anche dopo la sessione.
Principio: Un riflesso, non un dashboard. Il contesto arriva prima della domanda.
Dati strutturati. Testo nel contesto. Pronti per ragionare.
| Cosa scansiona | Informazione | Esempio output |
|---|---|---|
| Git repos | branch, commit hash, dirty files, ahead/behind | THIA: c6160e3 main | dirty:2 |
| VPS / API | status, modello attivo, uptime | online | gemini-3-flash | 2h32m |
| Messaggi | canale, mittente, anteprima testo | 1 unread: [telegram-relay] Op->TM1: ... |
| Warning | anomalie, divergenze, problemi | 3 repos ahead of remote |
Apri il progetto. L'AI coder dice:
Nessuna domanda. Primo secondo, già operativo.
Scarica il seed file.
Copia SEED-system-awareness.md nella root del tuo progetto.
L'AI coder legge il seed, genera lo script, configura l'hook. Scansiona.
# 1. Clone il repo d-nd-seed
git clone https://github.com/GrazianoGuiducci/d-nd-seed.git
cd d-nd-seed
./install.sh profiles/example.json
# 2. Oppure configura manualmente in .claude/settings.local.json
{
"hooks": {
"SessionStart": [
{
"matcher": "",
"hooks": [{
"type": "command",
"command": "bash .claude/hooks/system_awareness.sh"
}]
}
]
}
}
# 3. Crea lo script .claude/hooks/system_awareness.sh
#!/bin/bash
BASE_DIR="$(pwd)"
STATE_FILE=".claude/hooks/system_state.md"
echo "# System State - $(date)" > "$STATE_FILE"
# Scan git repos
for dir in */; do
if [ -d "$dir/.git" ]; then
cd "$dir"
BRANCH=$(git branch --show-current 2>/dev/null)
HASH=$(git rev-parse --short HEAD 2>/dev/null)
DIRTY=$(git status --porcelain | wc -l)
echo "$dir: $HASH $BRANCH | dirty:$DIRTY" >> "../$STATE_FILE"
cd "$BASE_DIR"
fi
done
# Check VPS health
HEALTH=$(curl -s --max-time 5 http://YOUR_VPS:3002/health)
echo "VPS: $HEALTH" >> "$STATE_FILE"
# Output to stdout (injected into context)
cat "$STATE_FILE"
# 4. Rendi eseguibile
chmod +x .claude/hooks/system_awareness.sh