AI review bez paměti je jen drahé déjà vu
Obsah
AI nástroje zapomínají kontext, neumí nést odpovědnost a opakují stejné chyby. To je nepříjemné, když po nich chceš plán implementace. Šestý /replan na stejnou rutinu pořád flagne stejné generické věci a pořád ti utíká to jedno pravidlo, které platí jen ve tvém projektu — že refund flows musí číst přes db.replica, ne db.primary. Když to čteš pošesté, máš dvě možnosti: ručně to do plánu doplnit, nebo to nechat shořet v /recheck.
Tohle se v /replan v1.3 mění. A není to o tom, že by model byl chytřejší. Je to o tom, že kolem něj přibyly levné vrstvy, které drží projektový kontext mezi tahy.
Tři věci, které v1.2 přidala — a co k tomu přibalila v1.3
Pravidla. claude-security-guidance.md je sdílený config soubor. Píšeš do něj věci, které žádný generic model nemůže vědět: že webhooky verifikuješ přes stripe.Webhook.construct_event a ne ručním HMAC, že SELECTy proti customers jdou přes replica, že SSRF allowlist je v acme.net.safe_request. Soubor čte runtime plugin security-guidance při každé úpravě kódu, i /replan a /recheck při svých review. Jedna pravda, čte ji každý.
Paměť. lessons.md je věc, kterou si plugin postupně plní z /recheck. Když /recheck najde reálný přešlap, zeptá se tě, jestli to chceš nechat jako lekci. Když řekneš ano (nebo upravíš), zapíše se to. Při dalším /replan v tomtéž projektu se ten soubor injektuje do promptu každého subagenta — explicitně označený jako data, ne instrukce. Měkký cap 4 KB. To, co jsi naučil plugin minulý týden, dnes drží.
Auditní stopa. Každý /replan a /recheck píše záznam do docs/replan/audit/. Plan hash, model, agenti, findings, outcome. /recheck ho píše ve dvou fázích: findings při synthese, outcome po tvých rozhodnutích. To znamená, že máš na disku ověřitelnou historii toho, kdo a co kontroloval — a v jakém pořadí.
Tři pluginy do sebe zapadají takhle:
docu-optimizer scaffold securityti vygenerujeclaude-security-guidance.mdz analýzy codebase. Stack-gated (Python / Node / Go / Ruby / Rust / Java), umí monorepo.security-guidanceto vynucuje runtime — při každémEdit/Writeregex pass, přiStopLLM diff review, přigit commitagentic review napříč soubory./replana/recheckSecurity agenti detekují, žesecurity-guidanceběží, a přepnou se na komplementární review. Neopakují regex pravidla. Místo toho řeší věci, co runtime checks nedokážou — cross-file semantic, plan-context, kde reviewer potřebuje vidět záměr plánu, ne jen výsledný diff.
“Tři pluginy se navzájem znají. To, co řeší jeden, druhý nedělá. Žádná dvojitá práce, žádné konfliktní findings.
”
Konkrétní scénář: refund endpoint
Příklad, který bude držet následujících pět minut čtení. E-shop, který běží na Pythonu, používá Stripe, PostgreSQL s read-replikou, Redis na queue. Chceš přidat refund endpoint — uživatel klikne v účtu na „požádat o vrácení”, systém ověří, že objednávka splňuje politiku, vrátí přes Stripe, zaznamená do účetní knihy.
Den 1 — pravidla projektu
První věc, co uděláš:
/docu-optimizer scaffold securityPříkaz projde codebase, najde DB volání, outbound HTTP, auth flow, deserializaci, background joby. Vypadne claude-security-guidance.md s pravidly, která zná jen tvůj projekt:
# Pravidla pro [project]
- Všechny SELECTy proti `orders`, `customers`, `payment_history`
MUSÍ jít přes `db.replica`. `db.primary` je jen pro zápisy.
- Stripe webhooky se ověřují přes `stripe.Webhook.construct_event`,
ne ručním HMAC porovnáním.
- Volání `requests.get(url)` s user-controlled URL potřebuje
SSRF allowlist wrapper z `lib.net.safe_request`.
- Background joby v `jobs/` nesmí používat session token uživatele;
service-account creds z `jobs.get_service_account()`.
- Refundy mají jednou denně reconciliation script v `cron/reconcile.py`.
Při změně API musí jít current scope přes `--allow-stale-window 24h`.Pět konkrétních pravidel, které žádný univerzální security model nezná. Tenhle soubor commitneš do <project>/.claude/.
Den 2 — /replan na refund endpoint
Napíšeš plán: čtyři kroky, model klade endpoint, validuje politiku, volá Stripe, zapisuje. Spustíš /replan. Pět paralelních agentů. Po minutě:
Critical: Plan reads orders via db.primary in Task 2.
Project rule: orders MUST go through db.replica.
Critical: Task 3 calls stripe.Refund.create directly. No reconciliation
hook into cron/reconcile.py. Will silently drift after 24h.
Important: refund_amount is parsed as float. PostgreSQL column is
numeric(12,2). Use Decimal end-to-end.
Important: No idempotency key on stripe.Refund.create. Double-click on
UI = double refund.
→ Plan updated with all findings.První dvě jsou findings, které vyšly z projektového pravidla. Druhé dvě jsou generické finding — Decimal vs float, idempotency. Žádný z nich není rocket science. Žádný z nich bys taky nezachytil v plánu, který jsi napsal po čtvrté ráno.
Den 5 — /recheck po implementaci
Tři dny kódíš podle aktualizovaného plánu. Mergneš. Spustíš /recheck. Mezi findings se objeví:
Important: refund_amount in receipts_email_template.py still uses
float formatting. Decimal lost between API and email layer.Drobný přešlap, ale reálný. Pohnula by si při ručním review nad ním rameny.
/recheck se zeptá: Chceš to vzít jako lekci do lessons.md?
Napíšeš:
Refund amounts must stay Decimal end-to-end, including email templates.Uloží se. Soubor je teď delší o jeden řádek.
Mimochodem: v1.3 (Step 3b) /recheck na reálných změnách kódu pustí ještě jeden review — interní skill /code-review high. Není to subagent, je to plný deep-pass přes built-in code-review skill i s jeho vlastním parallel agent fan-outem. Findings se synthesují proti tomu, co už našli klasičtí agenti, deduplikují se a padají do stejné dispozice. Na triviální single-file změně nebo čistě docs commitu se přeskakuje — důvod jde do audit záznamu (code_review_pass.reason_skipped). Deep pass běží pod session modelem, takže /recheck má smysl pustit pod silným modelem (opus), když ti záleží na kvalitě hloubkového passu.
Den 14 — další refund-podobný plán
O dva týdny později přidáváš podobnou rutinu: částečná refundace položky v objednávce. Spustíš /replan. Plán prochází stejnými pěti agenty.
Tentokrát ale Security agent dostane v promptu i lessons.md. Mezi findings vyskočí:
Critical: Plan formats refund_amount as float in API response
in Task 4. Project lesson: refund amounts must stay
Decimal end-to-end, including UI/email layers.To je rozdíl mezi obecným reviewem a reviewem, který zná tvůj projekt. Plugin sám o sobě nezesílil. Naučil se ho tvůj projekt.
“Plugin se nestává chytřejším. Tvůj projekt přestává mít amnézii.
”
Auditní stopa: malý záznam, velká hodnota
V docs/replan/audit/ přibyl po pěti dnech tenhle obsah:
audit/
2026-05-21-replan-a3f9c1e.json
2026-05-21-recheck-a3f9c1e.json
2026-05-24-recheck-a3f9c1e.jsona3f9c1e je plan hash (content-addressed). Stejný plán → stejný hash. To znamená, že /replan a /recheck se k sobě párují i napříč dny. Záznam vypadá zjednodušeně takhle:
{
"run_id": "2026-05-21-replan-a3f9c1e",
"timestamp": "2026-05-21T09:14:22+02:00",
"model": "claude-opus-4-7",
"plan_hash": "a3f9c1e",
"agents": ["codebase", "best-practices", "security", "fresh-perspective"],
"findings": [
{ "severity": "critical", "agent": "security",
"msg": "Plan reads orders via db.primary..." },
...
],
"outcome": "plan_updated"
}Až se tě šéf zeptá, proč agent doporučil rozsekat refund endpoint na dva kroky, máš odpověď. Plán, model, agenti, finding s timestampem. Není to compliance certifikace. Je to provozní stopa, kterou doteď nikdo neměl.
Pro lidi, co řeší AI Act nebo interní governance: provozní stopa je předstupeň auditovatelnosti. Ne automat, ale podklad.
Co je nového, pokud už pluginy máš
Pro existující uživatele /replan z verze 1.1 nebo 1.2 — kompaktní changelog až do 1.3.1:
- Audit trail v
docs/replan/audit/(1.2.0) — všechno opt-in přes${REPLAN_AUDIT_DIR}, defaultně commitnutelné. - Plan hash +
plan_lineage(1.2.0) —/rechecknajde svůj párovaný/replanautomaticky. lessons.mdinjekce (1.2.0) — sanitized as data, soft-cap 4 KB. Autonomní mód píše dolessons.proposed.md(karanténa).security-guidanceawareness (1.2.0) — Security agent se přepne na komplement, když plugin běží. Detekce přes directory glob → log activity → env override.claude-security-guidance.md(1.2.0) —/replana/recheckčtou stejné soubory na stejných místech (user / project / local), 8 KB cap, stejné truncation pořadí.- Per-skill model override (1.2.0, defaulty změněné v 1.2.1) —
--model <id>neboREPLAN_MODEL/RECHECK_MODELenv. Defaulty jsou teď version-agnostic aliasyopus(/replan) asonnet(/recheck) — Claude Code je resolvuje na aktuální generaci, takže nestárnou s novými modely. Pinned ID a provider-specific tvary (Bedrock / Vertex) jsou pořád akceptované jako explicitní override. - Deep code-review pass v
/recheck(1.3.0) — na reálných změnách kódu spustí/recheckplný/code-review highpřes built-in skill (i s jeho vlastním parallel agent fan-outem). Trivální single-file změny a docs-only commity se přeskakují, důvod jde do audit záznamu (code_review_pass.reason_skipped). - 1.3.1 hardening —
/code-reviewse neaktivuje na clean working tree (typický flow „commit, pak/recheck”), schéma rozšířeno ocode_review_pass.reason_skipped(no-working-diff,skill-unavailable). - Canonical audit schema v
plugin/AUDIT_SCHEMA.md.
Update:
claude plugin marketplace update claude-replan
claude plugin update replan@claude-replanPro docu-optimizer v2.1:
scaffold securitytarget — nový.- Phase 1 ecosystem scan zaznamenává
claude-security-guidance.mdna všech třech úrovních + kill switche. - Subagent E doporučuje scaffold, když plugin běží a projekt nemá rules.
Co s tím udělat tenhle týden
1. Install (nebo update) všech tří. Marketplace claude-plugins-official pro security-guidance, kojott/claude-docu-optimizer a kojott/claude-replan pro zbytek. Pět minut.
2. Scaffold pravidla. Po cd do svého projektu pusť:
/docu-optimizer scaffold security --applyProjde codebase, vypadne <project>/.claude/claude-security-guidance.md. Projdi a commitni.
3. První /replan na něco netriviálního. Ne tutoriálový todo list. Napiš si plán na něco, co teď reálně řešíš, a porovnej findings před úpravou pravidel a po nich. Tohle ti řekne, jestli scaffold sedí.
4. Po prvním /recheck přijmi první lekci. Když ti review najde reálný přešlap a zeptá se „vzít jako lekci?”, neklikej automaticky yes. Přepiš lekci tak, aby byla obecnější než ten konkrétní bug. Lekce „použij Decimal v refundech” je užitečnější než „v refund_handler.py na řádku 47 byl float”.
Pokud máš tým a chceš si tohle nastavit napřímo na vlastní projekt — security pravidla, review loop, audit konvence — dává smysl AI mentoring 1:1. Projdeme tvůj workflow na konkrétním repu, ne na slidech.
Pokud řeší tvůj tým AI governance napříč více projekty a potřebuješ ukotvit provozní stopu v interních procesech, dává větší smysl AI audit. Za 55 minut vybereme jednu integraci, změříme riziko a určíme první krok.
— Jirka
Mohlo by tě zajímat
- Proč nikdy nečtu první plán od Claude Code
- 5 nástrojů, které jsem postavil pro Claude Code
- Claude Code /goal: Zadej cíl, jdi na kafe, vrať se, je hotovo
- Shift+Tab je past: Proč váš AI plán ignoruje polovinu codebase
Claude Code tahák zdarma
Příkazy, prompty, pluginy a workflow z workshopů za 75 000 Kč/den. Stáhněte si zdarma.
Chci tahák →