Skip to content

Commit e2558c2

Browse files
leopu00claude
andcommitted
docs: bug #19 Capitano non sa weekly reset Kimi (dato + C-06)
Conversazione 13:45-13:50 UTC: - 13:45: utente "usage settimanale a che punto sta?" -> Capitano OK - 13:46: utente "quanto manca al reset settimanale?" -> Capitano "non ho il dato preciso nel log... se lo conosci tu, dimmelo" - 13:48: utente "indaga e trovalo - hai le skill" - 13:50: Capitano grep + trova "Reset settimanale: 17:11 UTC (tra ~3h 21m)" Doppia faccia: A. sentinel-data.jsonl logga weekly_usage ma NON weekly_reset_at (solo reset_at della finestra 5h). Bridge dovrebbe estrarre anche weekly reset da UI Kimi e includerlo nel JSON tick. B. Capitano dichiara "non ho il dato" senza tentare grep/find/read sources. Le skill check_usage.py + usage_record.py ce l'avevano. Fix: A) parser bridge + nuovo campo JSON. B) regola C-06 "indaga prima di dichiarare 'non lo so'" con 4 fallback obbligatori. Famiglia con #3, #9, #17 (Capitano riconosce ma non agisce). #11 (Mentor) come reference: mai dichiara "non lo so" — fa subito query. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 11d29ae commit e2558c2

1 file changed

Lines changed: 135 additions & 0 deletions

File tree

docs/internal/2026-05-17-team-strategy-bugs.md

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1123,6 +1123,140 @@ se opzione B + verifica skill `liveness-check` ancora valida).
11231123

11241124
---
11251125

1126+
## 🐛 19. Capitano non sa reset finestra settimanale Kimi — dato non loggato + Capitano passivo sulla ricerca
1127+
1128+
**Sintomo** (sessione 13:45-13:50 UTC):
1129+
1130+
| Ora | Utente | Capitano |
1131+
|---|---|---|
1132+
| 13:45:57 | *"usage settimanale a che punto sta?"* | *"📊 Consumo settimanale kimi: 76%. Finestra corrente (13:11→18:11): 17% / 4.4h rimanenti."*|
1133+
| 13:46:51 | *"quanto manca al reset settimanale?"* | *"📅 Reset finestra giornaliera: 18:11 UTC (~4.4h). **Reset settimanale: non ho il dato preciso nel log. Weekly usage è a 76% e non ho rilevato un reset settimanale recente. Se lo conosci tu, dimmelo e lo traccio.**"*|
1134+
| 13:48:30 | *"indaga e trovalo - hai le skill per falro"* | (silenzio per ~2 min, poi grep nel codebase) |
1135+
| 13:50:12 || *"🚨 SCOPERTA — Reset settimanale kimi: **17:11 UTC** (tra ~3h 21m)! Cap principale (weekly): 76/100 — reset 17:11 UTC. Finestra 5h: 17/100 — reset 18:11 UTC."*|
1136+
1137+
Quindi: il dato esiste, le skill per recuperarlo esistono, ma il Capitano
1138+
di default risponde *"non ho il dato"* e si ferma. Solo dopo la spinta
1139+
dell'utente *"indaga e trovalo - hai le skill"* il Capitano cerca e
1140+
trova.
1141+
1142+
**Doppia faccia del bug**:
1143+
1144+
### A. Manca persistenza `weekly_reset_at` in `sentinel-data.jsonl`
1145+
1146+
Schema attuale di ogni tick:
1147+
```json
1148+
{
1149+
"ts": "2026-05-16T18:02:26.837365+00:00",
1150+
"usage": 27, // % finestra 5h ✅
1151+
"reset_at": "22:11", // HH:MM reset 5h ✅
1152+
"weekly_usage": 8, // % finestra settimanale ✅ ESISTE!
1153+
// ❌ MANCA: "weekly_reset_at": "17:11"
1154+
// ❌ MANCA: "weekly_reset_iso": "2026-05-17T17:11:00Z"
1155+
"throttle": 0,
1156+
"projection": 27.0,
1157+
"status": "SOTTOUTILIZZO",
1158+
...
1159+
}
1160+
```
1161+
1162+
Il bridge ha già `weekly_usage` (ottimo) ma non logga il timestamp di
1163+
reset weekly. Senza quel dato, la Sentinella e il Capitano possono
1164+
sapere "quanto sta bruciando" ma non "quanto manca al reset".
1165+
1166+
### B. Capitano non interroga proattivamente le skill di lookup
1167+
1168+
Il Capitano ha accesso a 2 skill che potevano dare la risposta subito:
1169+
- `/app/shared/skills/check_usage.py` (linee 205-216): regex su UI Kimi
1170+
che estrae il blocco weekly. Probabilmente fornisce `weekly_remaining_hours`.
1171+
- `/app/shared/skills/usage_record.py` (linee 200-235): API per
1172+
registrare/leggere usage incluse stime weekly.
1173+
1174+
Eppure alla domanda diretta *"quanto manca al reset settimanale?"* il
1175+
Capitano:
1176+
1. Cerca in `sentinel-data.jsonl` (il suo log abituale)
1177+
2. Non trova `weekly_reset_at`
1178+
3. **Si ferma** e dichiara *"non ho il dato preciso nel log"*
1179+
4. **NON tenta**: grep nelle skill, lettura sorgenti bridge, query UI Kimi diretta, calcolo retroattivo da quando `weekly_usage` è saltato a 0
1180+
1181+
Pattern già visto: bug **#17** (Capitano passivo davanti a code vuote),
1182+
bug **#3** (paralisi C-01), bug **#9** (apply non spedisce). Famiglia
1183+
comune: *Capitano riconosce limite, segnala all'utente, non scava da
1184+
solo*.
1185+
1186+
**Fix proposto** — 2 componenti coordinati:
1187+
1188+
### Fix A — Bridge aggiunge `weekly_reset_at` ai tick
1189+
1190+
In `agents/_skills/check_usage.py` (o `bridge.py`) la funzione che
1191+
parsea la UI Kimi deve estrarre anche il timestamp reset weekly e
1192+
includerlo nel JSON tick:
1193+
1194+
```python
1195+
def parse_kimi_usage(text: str) -> dict:
1196+
# ...existing parsing...
1197+
m_weekly_reset = re.search(
1198+
r"Weekly cap resets? at\s+(\d{2}:\d{2})\s+UTC",
1199+
text,
1200+
)
1201+
weekly_reset_at = m_weekly_reset.group(1) if m_weekly_reset else None
1202+
# OR calcolare da next-Monday-09:00 se Moonshot usa rolling weekly
1203+
return {
1204+
"weekly_usage": weekly_pct,
1205+
"weekly_reset_at": weekly_reset_at,
1206+
"weekly_reset_iso": iso_from_hhmm_next_match(weekly_reset_at),
1207+
...
1208+
}
1209+
```
1210+
1211+
Poi `sentinel-bridge.py` scrive `weekly_reset_at` e `weekly_reset_iso`
1212+
in ogni entry del `sentinel-data.jsonl`. Disponibile per Sentinella +
1213+
Capitano + visualizzazioni.
1214+
1215+
### Fix B — Regola C-06 Capitano: "indaga sempre prima di dichiarare 'non lo so'"
1216+
1217+
In `agents/capitano/capitano.md` aggiungere regola:
1218+
1219+
> *"**C-06 — Investiga prima di dichiarare 'non lo so'**. Quando l'utente
1220+
> chiede un dato di sistema (rate-budget, reset, stato agente, configurazione)
1221+
> e non lo trovi nei tuoi log abituali, prima di rispondere *"non ho il
1222+
> dato"* esegui almeno questi 4 fallback in ordine:*
1223+
> *1. `grep -rn '<keyword>' /app/shared/skills/ /app/agents/`*
1224+
> *2. `find /app /jht_home -name '*<keyword>*'`*
1225+
> *3. Leggi sorgenti bridge in `/app/launcher/` per capire dove
1226+
> quel dato viene calcolato*
1227+
> *4. Se ancora nulla, allora dichiara onestamente 'non lo trovo nei
1228+
> log né nei sorgenti, ecco cosa ho cercato:' con la lista dei tentativi"*
1229+
1230+
L'utente non dovrebbe mai dover scrivere *"indaga"* — il Capitano deve
1231+
indagare di default.
1232+
1233+
**Priorità**: media-alta. Il dato weekly è importante per planning
1234+
(quando posso accelerare?), e il pattern di passività è impattante a
1235+
livello di UX.
1236+
1237+
**Effort**:
1238+
- Fix A: piccolo (~10-20 righe nel parser bridge + 1 colonna in
1239+
`sentinel-data.jsonl`)
1240+
- Fix B: piccolo (regola prompt + ~3 esempi di fallback nel manuale
1241+
Capitano)
1242+
1243+
**Validazione**:
1244+
- Dopo Fix A: ogni nuovo entry in `sentinel-data.jsonl` ha `weekly_reset_at`.
1245+
- Dopo Fix B: la domanda *"quanto manca al reset settimanale?"* riceve
1246+
risposta corretta al primo turno, senza spinta utente.
1247+
1248+
**Riferimento conversazionale**: 13:45-13:50 UTC, sequenza 4 messaggi.
1249+
1250+
**Bug collegati**:
1251+
- **#17** (Capitano passivo davanti a code vuote): identica famiglia
1252+
"riconosce ma non agisce". #19 è la variante "non sa ma non cerca".
1253+
- **#3** (paralisi C-01): variante "ha l'autorizzazione ma teme di usarla".
1254+
- **#11** (Mentor stile reference): il Mentor in 6 risposte non ha mai
1255+
detto *"non ho il dato"* — quando non sapeva, faceva subito query
1256+
DB. Il Capitano potrebbe imparare quel pattern.
1257+
1258+
---
1259+
11261260
## 📋 Riepilogo priorità
11271261

11281262
| # | Bug | Priorità | Effort |
@@ -1135,6 +1269,7 @@ se opzione B + verifica skill `liveness-check` ancora valida).
11351269
| 16 |**Auto-report periodici + auto-grafici via Bridge orders** | **alta** | medio |
11361270
| 17 | **Capitano passivo davanti a code vuote** (C-05 auto-triage) | **alta** | piccolo-medio |
11371271
| 18 | **Dottore mai spawnato** (watchdog non lo include) | **alta** | piccolo-medio |
1272+
| 19 | **Capitano non sa weekly reset Kimi** (dato + C-06 indaga) | media-alta | piccolo |
11381273
| 3 | Capitano gerarchia utente > Sentinella | media | piccolo (prompt) |
11391274
| 4 | Performance band 85-95% rispettata | media | piccolo (post #2+#3) |
11401275
| 7 | Sync history conversazione su web | media | medio |

0 commit comments

Comments
 (0)