runtime backup
This commit is contained in:
117
plans/self-reflection-skill.md
Normal file
117
plans/self-reflection-skill.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# Self-reflection skill — plán
|
||||
|
||||
Stav: navrženo, čeká na schválení implementace
|
||||
Datum: 2026-08-31
|
||||
|
||||
## Cíl
|
||||
|
||||
Skill pravidelně prochází vlastní historii tahů (`sessions/*.jsonl`) a vytěžuje z ní
|
||||
opakující se chybové vzory (retry smyčky, runaway loops, wrong tool choice, plán bez
|
||||
provedení). Nálezy reportuje; **nic nikdy nemodifikuje** mimo vlastní sandbox.
|
||||
|
||||
## Motivace (z diskuze)
|
||||
|
||||
- 532 session souborů / 16 MB / ~22,5k záznamů — mrtvá váha, nikdo je nečte.
|
||||
- Lessons-learned dnes vznikají jen ručně (v tuře, kdy si chybu uvědomím) —
|
||||
session log zachytí chyby i ty, které jsem nevědomky opakoval.
|
||||
- `develop/` je doména Claude Code — self-reflection si drží vlastní store a
|
||||
`develop/` vůbec neokousává.
|
||||
- Ověřený recept z develop/history: opakované selhání = měkká instrukce v SKILL.md,
|
||||
kterou reference popírá; fix = tvrdá STOP brána. Sebe-reflexe by měla takové
|
||||
slabosti odhalovat *navrhovat* opravu, nikdy ji neaplikovat.
|
||||
|
||||
## Architektura — read-only, tvrdá hranice
|
||||
|
||||
Skill **nikdy nic nezapisuje** mimo vlastní sandbox. Žádné edity SKILL.md,
|
||||
AGENTS.md, SOUL.md, develop/ — ani gates. LLM závěry mohou být chybné a autonomní
|
||||
zápis by mohl pokazit celé chování agenta (rozhodnutí uživatele z diskuze).
|
||||
|
||||
**Píše pouze:**
|
||||
- `results/<date>_self-reflection-*.md` — plný report včetně návrhů patchů
|
||||
- `skills/self-reflection/state.json` — cursor (timestamp posledního zpracování)
|
||||
- souhrn na Telegram (pattern compact-memory-auto)
|
||||
|
||||
**Čte:**
|
||||
- `sessions/*.jsonl` (inkrementálně od cursoru)
|
||||
- `develop/` (jen pro deduplikaci proti známým lekcím)
|
||||
- vlastní `state.json`
|
||||
|
||||
## Průběh jednoho runu
|
||||
|
||||
1. **Skript (bez LLM):** diff cursor → nové soubory; odfiltrovat šum podle prefixů
|
||||
názvů (`compact-memory-auto_*`, `dream:*`, `cli_*` testy) a krátké session
|
||||
(< 5 zpráv). První run navíc prefiltruje backlog: mechanické signály
|
||||
(stejný tool+argumenty ≥2× za sebou, error → identický retry, dlouhý reasoning
|
||||
bez tool callu, opakované čtení stejného souboru) → kandidáti pro LLM.
|
||||
Skript dělá jen mechanickou triáž/rank, žádné quality judgements.
|
||||
2. **Agent tah:** přečte kandidáty, klasifikuje vzory:
|
||||
- tool retry smyčka (re-run bez diagnózy)
|
||||
- runaway loop (opakované čtení, edit↔lint smyčka)
|
||||
- wrong tool choice (`exec cat` místo `read_file` apod.)
|
||||
- plán bez provedení (multistep požadavek → odpověď bez tool callu)
|
||||
Deduplikuje proti `develop/` a vlastním minulým reportům.
|
||||
3. **Report:** dated soubor do `results/`; návrhy oprav jako hotové patche
|
||||
(old_text → new_text) čekající na schválení. Souhrn na Telegram.
|
||||
4. **Cursor:** posune `state.json`.
|
||||
|
||||
## Schvalování
|
||||
|
||||
- Návrhy patchů leží v reportu. Aplikace až na explicitní „proveď" /
|
||||
„aplíkuj návrh N z posledního reportu" — pak patch aplikuju já v normálním
|
||||
tuře (kontext, ověření, diff).
|
||||
- Interface = přirozený jazyk, žádná nová mechanika.
|
||||
|
||||
## Spouštění
|
||||
|
||||
- **První run:** jednorázově přes backlog 532 starých souborů (s plnou
|
||||
prefiltrací). Archeologie, ale může odhalit dlouhodobé vzory.
|
||||
- **Dál:** inkrementálně. `cron` tool job, týdně, náhodná hodina, message
|
||||
„spusť self-reflection skill na nové sessions". Analýza potřebuje LLM tah
|
||||
→ agent turn, ne standalone shell skript.
|
||||
- Increment za den je malý; týdenní dávka (~30–70 session) je akorát.
|
||||
|
||||
## Otevřené otázky
|
||||
|
||||
- Schválení implementace jako celku.
|
||||
- Detailní podoba skriptu (signály, prahy) — vyřeší se při implementaci.
|
||||
|
||||
---
|
||||
|
||||
## Záznam diskuze (2026-08-31)
|
||||
|
||||
**Východisko:** otázka „dokážeš se učit ze své vlastní historie?" → průzkum dat
|
||||
skillů (SQLite db: 55 připomínek/589 doručení, 29 bookmarků, 12 flight searchů;
|
||||
develop/history.md 117 záznamů; sessions/ 532 souborů nikdy nezpracovávaných).
|
||||
|
||||
**Nálezy z průzkumu:**
|
||||
1. Opakující se selhání má naučený recept (hard STOP gate v SKILL.md), ale
|
||||
není systematicky aplikovaný — 19 zmínek smyček/zaseknutí v develop/history.
|
||||
2. Dream slabě deduplikuje — fakt o `nanobot-version-check` jobu ~7× znovu
|
||||
v history.jsonl během jednoho týdne.
|
||||
3. Připomínková data: špičky doručení 8–11 h a 19–20 h; témata zdraví /
|
||||
chata+chlívek / administrativa.
|
||||
4. Největší nevyužitá surovina: `sessions/` — 530+ session souborů, korpus
|
||||
reálných tahů včetně chyb.
|
||||
|
||||
**Uživatel:** „knowledge je teď importováno a dělá ho Claude Code a ne ty;
|
||||
ale to, že bys sám dělal vlastní korekci, zní dobře."
|
||||
|
||||
**Uživatel k prefiltraci:** „jak skript pozná, co má zahodit?" → dohoda:
|
||||
skript dělá jen mechanickou triáž podle metadat (prefixy, počty zpráv,
|
||||
opakování tool calls), quality judgements jsou výlučně LLM tahu. U inkrementálního
|
||||
režimu je prefiltrace skoro zbytečná — smysl má jen pro první backlog run.
|
||||
|
||||
**Uživatel:** „měl by to být skill? pravidelně procházel historii a zhodnocoval
|
||||
co zlepšit, jak, kam?" → dohoda: skill `self-reflection`, cursor pattern
|
||||
(jako Dream `.dream_cursor`), weekly cron agent turn, report do results/,
|
||||
návrhy patchů jako hotové diff bloky.
|
||||
|
||||
**Klíčové rozhodnutí uživatele:** „skill rozhodně NIKDY sám nic nemodifikuje,
|
||||
ani skilly ani nic jiného — LLM závěry mohou být chybné a pak by to podělalo
|
||||
celé chování agenta. Jak to schvalovat, je věc jiná."
|
||||
→ Varianty A (autonomní gates) se ruší. Skill je striktně read-only mimo
|
||||
vlastní sandbox. Schvalování: návrhy čekají v reportu, aplikace na explicitní
|
||||
povel v normálním tuře.
|
||||
|
||||
**Poslední otevřená otázka:** první run přes backlog vs. čistý inkrementální
|
||||
start. Návrh agenta: backlog jako první run (s prefiltrací), dál inkrementálně.
|
||||
Reference in New Issue
Block a user