From 6fc8cf477aac4c99379231f838e6177a7a64fbd8 Mon Sep 17 00:00:00 2001 From: lachtan Date: Thu, 10 Sep 2026 12:40:57 +0200 Subject: [PATCH] nanobot: 2026-09-10 12:40:57 --- cron/jobs.json | 12 ++- .../ai/artifacts/session-lifecycle-draft.md | 98 +++++++++++++++++++ projects/ai/memory.md | 7 ++ 3 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 projects/ai/artifacts/session-lifecycle-draft.md diff --git a/cron/jobs.json b/cron/jobs.json index 999c0f2..4ad85fa 100644 --- a/cron/jobs.json +++ b/cron/jobs.json @@ -112,8 +112,8 @@ "originMetadata": {} }, "state": { - "nextRunAtMs": 1789036580440, - "lastRunAtMs": 1789034780440, + "nextRunAtMs": 1789038380441, + "lastRunAtMs": 1789036580441, "lastStatus": "ok", "lastError": null, "runHistory": [ @@ -122,11 +122,17 @@ "status": "ok", "durationMs": 0, "error": null + }, + { + "runAtMs": 1789036580441, + "status": "ok", + "durationMs": 0, + "error": null } ] }, "createdAtMs": 1789032980437, - "updatedAtMs": 1789034780440, + "updatedAtMs": 1789036580441, "deleteAfterRun": false } ] diff --git a/projects/ai/artifacts/session-lifecycle-draft.md b/projects/ai/artifacts/session-lifecycle-draft.md new file mode 100644 index 0000000..54c04c9 --- /dev/null +++ b/projects/ai/artifacts/session-lifecycle-draft.md @@ -0,0 +1,98 @@ +# Session lifecycle — DRAFT (rozpracováno postupně, finální návod až po dohodě) + +## Body 1–5 (shoda zdrojů z researchu 10.9.) +Nový task = nová session; review ve fresh context; přenos mezi sessions artefakty; +po 2 neúspěšných opravách restart; compact = pojistka, ne plán. + +--- + +## 6. Vztahuje se „2 neúspěšné korekce → restart" i na plánování? + +**Ne na počet kol — na typ iterace.** U plánování se 6 kol může znamenat dvě +naprosto různé věci: + +**Konvergující iterace** (zdravá): +- každé kolo uzavře nová rozhodnutí a staré námitky se nevracejí +- context roste o decision history — přesně to, co pro plánování chceme +- ukončit ji = zahodit nashromážděné rozhodnutí, ne ušetřit + +**Kruhová iterace — anchor loop** (selhání): +- opakuji **stejnou** námitku, model kosmeticky přepracovává vlastní draft +- výstup nesleduje vstup; každá další korekce stejného typu nepřidává informaci + +**Signál je „stejná námitka podruhé", ne počet kol.** Zdůvodnění: + +1. Počet kol nedokáže odlišit konvergenci od smyčky — 6 kol konvergující + iterace je v pořádku, 3 kola smyčky jsou ztracený čas. +2. Stejná námitka podruhé je **důkaz**, že výstup nesleduje vstup. Třetí korekce + stejného typu nemá žádnou novou informační hodnotu — jen přidává tokeny + mrtvých pokusů, kterými se model dál ukotví. +3. V plánování chybí verifier. U kódu každý pokus narazí na realitu (build, + testy) a force korekci kurzu; u plánu je jediným „faktem" text, který model + sám napsal — reviduje se sám vůči sobě a kosmetika vypadá jako pokrok. + Proto je anchoring u plánování **silnější** než u kódu, ne slabší. + +**Praktika pro plánování:** + +1. Iterovat **v souboru plánu, ne v chatu.** Po každém kole se upraví soubor + (plán, tabulka scénářů); chat je jen médium. Soubor je single source of + truth — přežije kompakci i restart a nová session z něj může spustit + implementaci bez rekonstrukce z historie. + *(Naše extenze — Anthropic jen říká „plan file → fresh session na + implementaci"; iterovat přímo soubor plyne z mechaniky: soubor je imunní + vůči context rot.)* +2. Námitka podruhé → stop → **kostru navrhnu sám** (tabulka scénářů, skeleton, + rozhraní) a model ji doplňuje. Lesson z agent-to-human-tools.md: rozhraní + navrhuje člověk, protože model je anchorovaný na svůj první draft a není + schopen ho opustit. +3. Plán hotov → implementace **ve fresh session ze souboru plánu** + (Anthropic: „Once the spec is complete, start a fresh session to execute it.") + +## 7. „Přenos mezi sessions = artefakty" — jak to dělat snadno + +Artefakt není nová povinnost, ale věc, která v práci stejně existuje. Tři druhy: + +| Artefakt | Kdy vzniká | Co nese | Životnost | +|---|---|---|---| +| **Repo / kód / diff** | pořád | kompletní stav implementace | trvalá | +| **Spec / plan soubor** | při plánování | zadání, constrainty, done-when | do konce úkolu | +| **Handoff brief** | při ukončování session | rozhodnutí, vyloučené cesty, další krok | jednorázová | + +**Repo je hlavní artefakt.** Pro pokračování v kódu nepotřebuju vůbec nic +přenášet: nová session si přečte kód. Historie chatu nenese hodnotu navíc — +všechno, co v ní bylo smysluplného, je buď v kódu, nebo patří do briefu +(rozhodnutí a vyloučené cesty **nejsou** v kódu vidět, proto brief existuje). + +**Handoff brief — kdo ho píše: model, ne já.** Low-effort postup na hranici +session (před `/clear`, před ukončením práce): + +1. Jedna zpráva: „sepiš handoff: cíl, constrainty, padnutá rozhodnutí, + vyloučené přístupy a proč, soubory které se týkají, další krok." +2. Uložit do souboru (tmp/plán/noty), 30 s review. +3. `/clear`, nová session: „přečti ; úkol: ; hotovo když ." + +Moje práce: jedna věta + 30 sekund review. (Anthropic o /clear říká „you write +down what matters" — varianta s model-drafted briefem je naše zjednodušení; +caveat: model píše brief s plným kontextem, tedy ve slabším stavu, proto to +review. Zkrácená verze: klíčová rozhodnutí/vyloučené cesty si nadiktuju sám, +model doplní stav souborů.) + +**Proč to není zbytečná práce:** +- píše se **jednou na hranici session**, ne průběžně +- je to pár vět, ne dokumentační projekt +- po použití se brief zahodí; trvalé části odtékají do store, které stejně + vedu — rozhodnutí → memory.md, opakující se chyba → CLAUDE.md/AGENTS.md + (OpenAI: „when Codex makes the same mistake twice, update AGENTS.md") + +**Co se nedělá:** nepřesouvat historii chatu („prosím pokračuj"), nepsat +retrospektivy, neduplikovat do souborů, co už je v kódu/diffu. + +**Mapping na současné nástroje:** +- nanobot project skill už to dělá: memory.md = decision log, state.md = + handoff brief (activate = „přečti soubor a pokračuj") +- Claude Code: plan file v repu + CLAUDE.md pro trvalá pravidla +- Codex: AGENTS.md + skills + +## Otevřené otázky +- Kde přesně vede hranice „related task" — dokumentace k hotové feature? + Anthropic: může zůstat (reread by byl dražší), ale jde o stejný úkol. \ No newline at end of file diff --git a/projects/ai/memory.md b/projects/ai/memory.md index a69093d..6507e2c 100644 --- a/projects/ai/memory.md +++ b/projects/ai/memory.md @@ -33,3 +33,10 @@ Souvisí s požadavkem na „čistý refaktor": ověření, že se chování zve Špatný zdroj: techbytes.app „complete engineer's guide" = AI slop (generická marketingová vata bez reálného obsahu). Lesson: sekundární „complete guide [2026]" weby ignorovat. Shoda napříč zdroji: nová session při novém úkolu, review ve fresh context, po chybové smyčce restart s lepším promptem, přenos mezi sessions = artefakty (spec, AGENTS.md, NOTES.md), ne historie chatu. Návod teprve budeme skládat. +- 2026-09-10: Draft návodu session-lifecycle (draft, ne finál) — odpovědi na otázky uživatele: + +1. Plánování vs pravidlo „2 neúspěšné korekce": signál není počet kol, ale stejná námitka podruhé. Konvergující iterace (nová rozhodnutí, staré námitky se nevrací) je zdravá — decision history je přesně to, co plánování potřebuje. Anchor loop: opakuju stejnou námitku, model kosmeticky přepracovává vlastní draft. Důvod, proč anchoring u plánování silnější než u kódu: chybí externí verifier — jediným faktem je modelův vlastní text, reviduje sám sebe, kosmetika vypadá jako pokrok. Praktika: iterovat v souboru plánu ne v chatu (náš dodatek k Anthropic „spec → fresh session implementace"); stejná námitka 2× → stop → kostru navrhuje člověk (lesson z agent-to-human-tools). + +2. „Přenos = artefakty" konkretizace: 3 druhy — repo/diff (hlavní, nese celý stav implementace, nic přenášet nemusím), spec/plan soubor (při plánování), handoff brief (jen na hranici session: rozhodnutí + vyloučené cesty — to nejsou vidět v kódu). Brief píše MODEL na jednu žádost, já jen 30s review — moje práce jedna věta. Trvalé části odtékají do store, které stejně vedu (rozhodnutí → memory.md, opakovaná chyba → CLAUDE.md/AGENTS.md). Nepřenášet: historii chatu, retrospektivy, duplicity kódu. + +Draft uložen: projects/ai/artifacts/session-lifecycle-draft.md. Otevřená otázka: hranice „related task" (dokumentace k hotové feature — Anthropic nechává intuici).