Přeskočit na obsah

AI review bez paměti je jen drahé déjà vu

· 11 min čtení

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:

  1. docu-optimizer scaffold security ti vygeneruje claude-security-guidance.md z analýzy codebase. Stack-gated (Python / Node / Go / Ruby / Rust / Java), umí monorepo.
  2. security-guidance to vynucuje runtime — při každém Edit / Write regex pass, při Stop LLM diff review, při git commit agentic review napříč soubory.
  3. /replan a /recheck Security agenti detekují, že security-guidance běží, 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 security

Pří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.json

a3f9c1e 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) — /recheck najde svůj párovaný /replan automaticky.
  • lessons.md injekce (1.2.0) — sanitized as data, soft-cap 4 KB. Autonomní mód píše do lessons.proposed.md (karanténa).
  • security-guidance awareness (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) — /replan a /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> nebo REPLAN_MODEL / RECHECK_MODEL env. Defaulty jsou teď version-agnostic aliasy opus (/replan) a sonnet (/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í /recheck plný /code-review high př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-review se neaktivuje na clean working tree (typický flow „commit, pak /recheck”), schéma rozšířeno o code_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-replan

Pro docu-optimizer v2.1:

  • scaffold security target — nový.
  • Phase 1 ecosystem scan zaznamenává claude-security-guidance.md na 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 --apply

Projde 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


Sdílet

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 →

Související články

Claude Code /goal: Zadej cíl, jdi na kafe, vrať se, je hotovo

Nový slash command /goal v Claude Code 2.1.139 mění Claude v autonomního agenta, který běží napříč mnoha tahy, dokud není splněna ověřitelná podmínka. Praktická příručka — jak napsat dobrý cíl, kde to selže a kde se to vyplatí použít hned.

8 min čtení

Také o: Claude Code, AI agenti, produktivita

Proč nikdy nečtu první plán od Claude Code

První plán od AI je vždy děravý — vymyšlené funkce, chybějící edge casy. Jak používám /replan plugin pro Claude Code, abych dostal plán, kterému můžu věřit.

6 min čtení

Také o: Claude Code, code review, produktivita

Váš tým generuje kód, který nikdo nečte: Problém jménem workslop

58 % lidí tráví 3+ hodiny týdně opravami AI výstupů. 24,7 % AI kódu má bezpečnostní díry. Jak poznat workslop a co s tím.

6 min čtení

Také o: code review