Recenzja adwersaryjna: twórca nigdy nie sprawdza sam siebie
Drugi, wrogo nastawiony recenzent sprawdza zmianę, zanim ją scalisz albo wypuścisz, a jego werdykt może zatrzymać robotę.
Jakość, zaawansowany. Opublikowano
Co robi
Agent, który coś zbudował, ocenia to tą samą ramką, którą budował, więc nie widzi własnych luk. Ten skill wstawia osobnego recenzenta między „gotowe” a „zablokowane”. Agent zamraża zmianę, dzieli recenzję na sekcje i wysyła jednego recenzenta na sekcję równolegle, każdego z pełnym kontraktem: co się zmieniło, jakich decyzji trzeba przestrzegać, z czym porównać i co zwrócić. Recenzent zwraca jeden z trzech werdyktów. Najgorszy werdykt z sekcji decyduje o całości. Przy zmianach w płatnościach, logowaniu, separacji klientów, mutacjach stanu i migracjach agent dodatkowo wypełnia audyt niezmienników z siedmioma sekcjami, a każdy wektor ataku oznaczony jako otwarty lub częściowy blokuje wdrożenie.
Kiedy używać
Kiedy używać
- Mówisz agentowi „wypuść to”, „gotowe do recenzji” albo „co może pójść nie tak”.
- Zmiana dotyka rozliczeń, kredytów, zwrotów albo webhooków płatności.
- Zmieniasz logowanie, sesje, uprawnienia albo separację danych między klientami.
- Zapisujesz decyzję architektoniczną, schemat bazy albo plan migracji.
- Wdrażasz na produkcję coś, co widzą klienci.
Kiedy nie używać
- Poprawiasz literówkę, formatowanie albo link w dokumentacji.
- Piszesz notatkę, log statusu albo podsumowanie spotkania.
- Plan jest oznaczony jako szkic i nikt go jeszcze nie blokuje.
Tabela decyzyjna
| Sytuacja | Co robi skill |
|---|---|
| Zmiana w jednym obszarze, bez pieniędzy i logowania | Jeden recenzent, pełny kontrakt, werdykt przed blokadą |
| Zmiana dotyka kilku obszarów | Jeden recenzent na sekcję równolegle, decyduje najgorszy werdykt |
| Zmiana w płatnościach, logowaniu lub danych klientów | Recenzja plus audyt niezmienników z siedmioma sekcjami |
| Recenzent zwraca CRITICAL GAPS | Stop, naprawa, ponowna recenzja tylko naprawionej sekcji |
| Poprawka literówki w dokumentacji | Bramka się nie odpala |
Szablon
Metoda: kiedy bramka recenzji się odpala, kontrakt zlecenia dla recenzenta, recenzja w sekcjach i audyt niezmienników.
---
name: adversarial-review
description: Runs an independent, adversarial review gate before any major artifact, risky code change or production deploy is locked, and adds a seven-section invariant audit for money paths, auth, tenant boundaries, state mutation and schema migrations. Use it when the user says "ship it", "ready for review", "what could go wrong" or "before we merge", or when a change touches billing, login, permissions or shared data.
---
# Adversarial review gate
The agent that built something is the worst judge of it. It reads its own work with the same frame it
wrote it with, so the gaps it missed while building stay invisible while reviewing. This skill puts a
separate reviewer between "done" and "locked", gives that reviewer a hostile brief, and lets its verdict
stop the work.
Read `CONTEXT.md` next to this file before the first review. It names your reviewer, where reviews are
saved, and which parts of your product count as money, auth and tenant surfaces.
If `CONTEXT.md` is missing, or a field you need is blank, stop and ask the user for it in the user's
language before the first dispatch. Ask for one field at a time and say what it is for, for example:
EN "Add your money surfaces: which files, services or endpoints move or record money in your product?",
PL „Dodaj swoje miejsca, w których płyną pieniądze: które pliki, usługi albo endpointy liczą lub zapisują płatności?”.
Never guess a surface list from the code alone; confirm it with the user and write it into `CONTEXT.md`.
## Before you start / What you need
- **An AI coding agent that runs subagents in parallel** (required): Claude Code
(https://code.claude.com/docs/en/sub-agents), Codex CLI (https://developers.openai.com/codex/subagents)
or Cursor (https://cursor.com/docs/agent/subagents). Give each reviewer read, search and run-tests tools
only: in Claude Code and Cursor through the subagent definition, in Codex CLI with `--sandbox read-only`.
- **A second model as reviewer** (optional, recommended): any command-line tool from another vendor.
One public example is Codex CLI (https://developers.openai.com/codex/cli, source
https://github.com/openai/codex, Apache-2.0): install with `npm install -g @openai/codex`, run `codex`
once and sign in through its own login, then review with
`codex exec --sandbox read-only "<reviewer prompt>"`. Keep login details in the tool's own store,
never in the chat or the repository.
- **Node.js with npm** (optional, https://nodejs.org/en/download): only to install Codex CLI or fast-check.
- **Python with pip** (optional, https://www.python.org/downloads/): only to install Hypothesis.
- **Git** (required, https://git-scm.com/downloads): `git diff --stat <base>...HEAD` and
`git diff -U0 <base>...HEAD` give the file list and line ranges for step 1.
- **A property-testing library** (only for the invariant audit): Hypothesis for Python
(https://hypothesis.readthedocs.io, `pip install hypothesis`) or fast-check for JavaScript and
TypeScript (https://fast-check.dev, `npm install --save-dev fast-check`).
## Rule zero: the maker is never the checker
- The reviewer did not write the change. A second pass by the same agent in the same conversation is
not a review.
- Prefer a reviewer from a different model or tool, where available (see `CONTEXT.md`). A different
model family misses different things. If you only have one model, use a fresh session with no memory
of the build and a read-only tool set.
- The reviewer has no write access. Give it read, search and run-tests tools only. A reviewer that can
edit will fix what it finds, and then nobody has reviewed the fix.
- The reviewer stops after the verdict. Fixing is the maker's job.
## When the gate fires
Dispatch a review, without being asked, when any of these happen:
1. A decision record or architecture artifact is saved or locked: a design decision, a system map, a
schema, an API or action inventory, or any document moving from research into architecture.
2. A major rewrite of a locked rule set: a decision catalog rewrite, a revised decision list, a schema
migration plan.
3. A money-path code change: ledger, balances, charges, refunds, billing webhooks, usage metering.
4. An auth or security boundary change: tenant isolation, token verification, identity-provider
integration, row-level access policies, session handling.
5. A milestone ships: a first end-to-end version, or a release that adds a major capability.
6. A production deploy: any push that changes a customer-facing surface.
Also fire when the user asks for sign-off in any words, for example "ship it", "ready for review",
"what could go wrong" or "before we merge", or refers to merging or finalising a major artifact.
Add your own phrases to the "Trigger phrases" field in `CONTEXT.md`.
## When the gate does not fire
- Pure documentation fixes: typos, formatting, broken links.
- Notes, status logs, meeting summaries.
- Planning files explicitly marked as drafts and not yet locked.
- Conversation that produces no committed artifact.
- Routine script runs that change nothing structural.
## Step 1: freeze the change
List exactly what changed: file paths and line ranges for every new or modified block. No list, no
dispatch. A reviewer told to "check the project" skims everything and returns generalities.
## Step 2: section the review
One reviewer per section, all dispatched in parallel in a single message. Never one reviewer for
multi-part work: a lone reviewer thin-spreads across the whole surface and misses what a bounded
reviewer catches.
- Cut by domain or concern: frontend, API, billing, auth, webhooks, migrations, data integrity.
- For user-facing work, cut by user journey instead: the path a real person walks end to end.
- Name which section owns each seam between sections. The seams are where coverage goes missing.
- Write the sectioning plan down before dispatch: "Section A covers X, section B covers Y, the seam
between A and B belongs to A."
## Step 3: dispatch with the full contract
Every reviewer prompt contains all seven parts. Leave one out and the review is not valid.
1. **What changed**: exact file paths and line ranges for this section.
2. **Locked context**: every locked decision the artifact must respect (architecture decisions, infra
choices, the auth design, known facts about the data).
3. **Source-truth files**: the research, specs or extraction documents to cross-check fidelity against.
4. **Adversarial charter**: "Kill weak rules. Find missing constraints. Flag wishful enforcement (a rule
written down with nothing that checks it). Find stack incompatibilities. Point at every assumption
the author did not verify. Don't be polite. Don't praise."
5. **Output path**: save the review to the review folder from `CONTEXT.md` as
`review-<date>-<topic>-<section>.md`, and reply with the path plus a short summary.
6. **Structured verdict**: exactly one of `BORINGLY RELIABLE`, `CRITICAL GAPS`, `MAJOR REWRITE`.
7. **Sectioning plan**: how the work was split, which section this reviewer owns, and confirmation that
each section has exactly one reviewer.
Prompt skeleton:
```
Role: adversarial reviewer. You did not build this. You are not polite.
What changed: [paths + line ranges]
Locked context: [decisions this must respect]
Source of truth: [files to cross-check]
Your section: [boundary; review only this]
Sectioning plan: [all sections and who owns each seam]
Charter: kill weak rules, find missing constraints, flag wishful enforcement,
find stack incompatibilities, name every unverified assumption. No praise.
Return:
- Coverage map: what you actually inspected
- Findings: severity (CRITICAL / MAJOR / MINOR) + file:line each
- Verdict: BORINGLY RELIABLE | CRITICAL GAPS | MAJOR REWRITE
- If BORINGLY RELIABLE: three specific things you tried to break and could not.
Without these three, the verdict is void.
Save to: [review folder]/review-[date]-[topic]-[section].md
Reply: path + short summary.
Stop after the verdict. Do not fix anything.
```
## Step 4: synthesise
- The combined verdict is the **worst** section verdict. One `CRITICAL GAPS` anywhere blocks the lock,
even if every other section is clean.
- Merge the coverage maps. Any surface no section covered is itself a finding: dispatch a reviewer for it.
- Reconcile conflicting findings. Never drop one silently.
- Reject a `BORINGLY RELIABLE` that lists nothing the reviewer tried to break. A polite review is theatre.
## Step 5: act on the verdict
- `CRITICAL GAPS` or `MAJOR REWRITE`: do not proceed past the gate. Fix each finding concretely, then
re-dispatch a reviewer on the fixed section only. Repeat until that section returns `BORINGLY RELIABLE`.
- `BORINGLY RELIABLE` on every section: proceed to lock, merge or deploy. Keep the review files as the
audit trail and cite them from later decisions.
- Before fixing, open every cited `file:line` and confirm the finding yourself. Reviewers hallucinate
findings; "fixing" one breaks working code.
- Three fix-and-review rounds on one section mean the design is wrong, not the code. Step back to design.
## Invariant audit: money, auth, tenants, state, migrations
The review asks "does this hang together". The invariant audit asks "under hostile input, do the
invariants hold". Run both before locking any change in these areas (your product's concrete surfaces
are listed in `CONTEXT.md`):
- **Money path**: credit ledgers, balances, idempotency keys, charge, refund and dispute flows, billing
webhooks, spending limits, plan or permission-level changes.
- **Auth and session boundary**: token verification, identity-provider webhooks, session refresh and
rotation, multi-factor auth, password reset, OAuth callbacks, support impersonation, API credential
issuance and revocation.
- **Tenant boundary**: new admin actions, cross-tenant features, tenant deletion and right-to-erasure,
subscription-cancellation cascades, workspace switching.
- **State mutation**: any new create, update or delete endpoint on tenant-scoped data, background jobs
that mutate billing or tenant state, inbound webhook handlers, file uploads, rate-limit changes.
- **Schema migrations**: any migration touching tenant-scoped or money-bearing tables, new tenant-scoped
tables, index changes on hot tables.
It does not fire on documentation, formatting, non-auth styling, notes or status logs.
Fill `INVARIANT-AUDIT.template.md` (next to this file). All seven sections are mandatory:
1. **Abuse vectors**: "if an actor with this access does this action, they achieve this outcome". At least five per money-path
or auth change.
2. **Invariant locks**: properties that must hold for every tenant under every concurrent invocation
(balance never negative, one idempotency key produces one ledger entry, tenant A never reads tenant
B, a failed action never charges).
3. **Cross-feature linkage**: for each invariant, every other feature that touches the same state, and
whether this change breaks its assumptions.
4. **Property-based tests**: concrete properties, not examples, written for a property-testing library
such as Hypothesis (Python) or fast-check (TypeScript/JavaScript).
5. **Replay, concurrency and races**: duplicate webhook delivery, many concurrent requests on one
idempotency key, a job crashing mid-pipeline and then retrying.
6. **Failure modes**: database drop mid-transaction, job timeout, provider error, cache eviction before
retry, unreachable key endpoint, a rotated webhook signing credential.
7. **Counterfactual adversary pass**: "as a valid user on plan X, what is my highest-leverage attack
right now?" Each attack names the target invariant, entry point, chain of steps, and a status:
`blocked`, `partial` or `open`.
**Any vector marked `open` or `partial` blocks the lock.** Build the mitigation, re-run the audit on it,
and lock only when every vector is `blocked` or accepted with the residual risk written down and signed
off by a human. Save the audit to the audit folder from `CONTEXT.md` as
`invariant-audit-<date>-<feature>.md` and reference it from the lock.
Why this exists: a design review can pass while a double charge, a cross-tenant read or a replayed
webhook still slips through. Each of those is a top-severity incident.
## Failure modes of the gate itself
- **Same-agent review.** The builder "reviews" its own work in the same thread. Fix: a separate reviewer,
always.
- **One reviewer for everything.** Fix: section, and treat any uncovered surface as a finding.
- **Reviewer with write tools.** It repairs what it found and the repair goes unreviewed. Fix: read-only.
- **Vague brief.** No file list, no charter, no verdict format. Fix: the seven-part contract, every time.
- **Trusting an unchecked finding.** Fix: open the `file:line` before changing anything.
- **Locking past a gap** "because the other sections were fine". Fix: worst verdict wins.
Pozostałe pliki
CONTEXT.template.mdTwój recenzent, folder na recenzje oraz powierzchnie pieniędzy, logowania i danych klientów w Twoim produkcie.
# Adversarial review: your context
Copy this file to CONTEXT.md next to SKILL.md and fill in every blank. Never put passwords, access keys or card numbers here.
## Independent reviewer
(Which model, tool or agent reviews the work. Prefer a different model family from the one that builds. If you only have one, write "fresh session, read-only tools".)
Example: a second model from a different vendor, run through its command-line tool with read-only permissions.
Reviewer:
Tools it may use (read-only):
How to dispatch it in parallel (one per section):
## Trigger phrases
(Extra words, in any language you use, that mean "review this before it locks".)
Example: "good to merge?", "sprawdź przed wdrożeniem".
Trigger phrases:
## Where reviews and audits are saved
(A folder in your repository, so reviews live next to the code they judge.)
Example: audits/
Review folder:
Invariant audit folder:
## Locked context
(The decisions every reviewer must respect: architecture choices, hosting, auth design, data model. Link the files that record them.)
Example: decisions/ folder in the repo; auth uses a hosted identity provider; one database per region.
Locked decisions:
Source-of-truth documents (specs, research):
## Money surfaces in your product
(Files, services or endpoints that move, count or record money or credits.)
Example: billing/ module, payment-provider webhook handler, usage-credit ledger table.
## Auth and session surfaces
(Login, token checks, session handling, permission checks, admin impersonation.)
Example: middleware/auth, OAuth callback route, API credential issuance endpoint.
## Tenant boundary
(How one customer's data is separated from another's, and where that separation is enforced.)
Example: every table has a workspace_id column; access policies filter on it.
## Tables and jobs that mutate shared state
(Background jobs, webhook handlers, migrations on busy or money-bearing tables.)
Example: nightly invoice job, order webhook handler, orders table.
## Property-testing library
(The library your stack uses for property-based tests.)
Example: Hypothesis for the Python backend, fast-check for the TypeScript frontend.
## Who signs off accepted residual risk
(The human who may accept a partial mitigation in writing.)
Example: the technical founder.
INVARIANT-AUDIT.template.mdSzkielet audytu niezmienników z siedmioma obowiązkowymi sekcjami.
# Invariant audit: [feature]
Date: [YYYY-MM-DD]
Change under audit: [file paths + line ranges]
Trigger: [money path | auth/session | tenant boundary | state mutation | schema migration]
Auditor: [reviewer from CONTEXT.md; not the author of the change]
## 1. Abuse vectors (at least five for money-path or auth changes)
| # | Actor and access | Action | Outcome achieved |
|---|---|---|---|
| A1 | [e.g. logged-in user on the free plan] | [e.g. replays a checkout callback] | [e.g. gets paid credits twice] |
| A2 | | | |
| A3 | | | |
| A4 | | | |
| A5 | | | |
## 2. Invariant locks
Properties that hold for every tenant under every concurrent invocation.
| # | Invariant | Enforced by (constraint, lock, check) |
|---|---|---|
| I1 | [e.g. balance never goes negative] | [e.g. database check constraint + row lock] |
| I2 | [e.g. one idempotency key produces one ledger entry] | [e.g. unique index on the key] |
| I3 | [e.g. tenant A never reads tenant B] | |
| I4 | [e.g. a failed action never charges] | |
## 3. Cross-feature linkage
| Invariant | Other features touching the same state | Does this change break them? |
|---|---|---|
| I1 | | |
## 4. Property-based tests
Concrete properties for Hypothesis (Python) or fast-check (TypeScript/JavaScript). Properties, not examples.
- P1: for any sequence of charges and refunds, final balance equals the sum of ledger entries and is never below zero.
- P2: for any N concurrent requests sharing one idempotency key, exactly one ledger entry exists.
- P3: [your property]
## 5. Replay, concurrency and races
| Scenario | Expected behaviour | Tested? |
|---|---|---|
| Duplicate webhook delivery | | |
| N concurrent requests on one idempotency key | | |
| Job crashes mid-pipeline, then retries | | |
## 6. Failure modes
| Failure | Expected behaviour | Tested? |
|---|---|---|
| Database connection drops mid-transaction | | |
| Job timeout | | |
| Provider returns a server error | | |
| Cache evicted before retry | | |
| Key endpoint unreachable | | |
| Webhook signing credential rotated | | |
## 7. Counterfactual adversary pass
"As a valid user on plan [X], what is my highest-leverage attack right now?"
| Attack | Target invariant | Entry point | Chain | Status (blocked / partial / open) |
|---|---|---|---|---|
| | | | | |
## Verdict
- Open or partial vectors: [list; any entry here blocks the lock]
- Accepted residual risk: [vector, reason, who signed off, date]
- Lock allowed: [yes only when every vector is blocked or accepted in writing]
Czego potrzebujesz
An AI coding agent that runs subagents in parallel (Claude Code, Codex CLI or Cursor) (otwiera się w nowej karcie)
Każdy recenzent działa jako osobny pod-agent albo świeża sesja bez narzędzi zapisu, jeden na sekcję, wszyscy równolegle.
- Claude Code: zainstaluj według https://code.claude.com/docs/en/setup (otwiera się w nowej karcie). Pod-agenci są opisani na stronie podlinkowanej wyżej.
- Codex CLI: zainstaluj według https://developers.openai.com/codex/cli (otwiera się w nowej karcie). Pod-agenci są opisani na https://developers.openai.com/codex/subagents (otwiera się w nowej karcie).
- Cursor: zainstaluj z https://cursor.com/downloads (otwiera się w nowej karcie). Pod-agenci są opisani na https://cursor.com/docs/agent/subagents (otwiera się w nowej karcie).
- Daj recenzentowi tylko narzędzia do czytania, szukania i uruchamiania testów. W Claude Code i Cursor ustawiasz to w definicji pod-agenta, w Codex CLI flagą --sandbox read-only.
Codex CLI as a second-model reviewer (optional) (otwiera się w nowej karcie)
Recenzent z innej rodziny modeli wyłapuje inne błędy niż model, który budował. Pasuje dowolne narzędzie wiersza poleceń innego dostawcy; to jest jeden publiczny przykład.
- Zainstaluj: npm install -g @openai/codex albo instalatorem ze strony podlinkowanej wyżej. Kod źródłowy: https://github.com/openai/codex (otwiera się w nowej karcie).
- Uruchom codex raz i zaloguj się w oknie, które otworzy. Dane logowania zostają w magazynie narzędzia, nie wklejaj ich do czatu ani do repozytorium.
- Recenzję puszczaj tylko do odczytu: codex exec --sandbox read-only "<prompt recenzenta>".
- Wpisz to polecenie w CONTEXT.md w polu recenzenta.
Git (otwiera się w nowej karcie)
Krok zamrożenia zmiany potrzebuje dokładnej listy plików i zakresów linii, a tę daje diff z systemu kontroli wersji.
- Zainstaluj Git ze strony podlinkowanej wyżej.
- Zatwierdź zmianę na gałęzi, potem git diff --stat <gałąź bazowa>...HEAD daje listę plików, a git diff -U0 <gałąź bazowa>...HEAD zakresy linii.
Hypothesis (Python property-based testing, optional) (otwiera się w nowej karcie)
Potrzebny tylko do sekcji 4 audytu niezmienników, jeśli backend jest w Pythonie.
- W środowisku projektu: pip install hypothesis.
- Zapisz właściwości z sekcji 4 audytu jako testy i dopisz je do polecenia testów projektu.
fast-check (JavaScript and TypeScript property-based testing, optional) (otwiera się w nowej karcie)
Potrzebny tylko do sekcji 4 audytu niezmienników, jeśli kod jest w JavaScript albo TypeScript.
- W projekcie: npm install --save-dev fast-check.
- Zapisz właściwości z sekcji 4 audytu jako testy w swoim frameworku testowym.
Node.js with npm (optional) (otwiera się w nowej karcie)
Potrzebny tylko do instalacji Codex CLI albo fast-check.
- Zainstaluj wersję LTS ze strony podlinkowanej wyżej.
- Sprawdź instalację: node --version i npm --version.
Python with pip (optional) (otwiera się w nowej karcie)
Potrzebny tylko do instalacji Hypothesis dla backendu w Pythonie.
- Zainstaluj aktualną wersję ze strony podlinkowanej wyżej; pip jest w zestawie.
- Sprawdź instalację: python3 --version i python3 -m pip --version.
Instalacja
- Pobierz folder files i zmień nazwę CONTEXT.template.md na CONTEXT.md.
- Claude Code: wrzuć folder do .claude/skills/adversarial-review/ w projekcie albo do ~/.claude/skills/adversarial-review/ dla wszystkich projektów. Claude ładuje skill, gdy opis pasuje do zadania, albo gdy wpiszesz /adversarial-review.
- Codex: wklej treść SKILL.md do AGENTS.md w katalogu głównym repozytorium albo do ~/.codex/AGENTS.md.
- Cursor: dodaj SKILL.md jako regułę projektu albo wklej go do AGENTS.md.
- Inny agent: wklej SKILL.md do pliku instrukcji projektu lub promptu systemowego i trzymaj obok CONTEXT.md oraz szablon audytu.
- Wypełnij CONTEXT.md: recenzent, folder na recenzje, Twoje powierzchnie pieniędzy, logowania i danych klientów.
Działa, jeśli
- Po „wypuść to” agent najpierw wypisuje zmienione pliki z zakresami linii, zanim cokolwiek wdroży.
- Każdy recenzent dostaje prompt z siedmioma częściami kontraktu, łącznie z planem podziału na sekcje.
- W folderze recenzji pojawia się plik review-<data>-<temat>-<sekcja>.md na każdą sekcję.
- Każdy werdykt to dokładnie jedno z: BORINGLY RELIABLE, CRITICAL GAPS, MAJOR REWRITE.
- Werdykt BORINGLY RELIABLE zawiera trzy rzeczy, które recenzent próbował złamać.
- Przy zmianie w płatnościach powstaje plik invariant-audit-<data>-<funkcja>.md z co najmniej pięcioma wektorami ataku.
Wymagania
- Agent, który potrafi uruchomić osobnego pod-agenta albo drugą sesję z narzędziami tylko do odczytu.
- Najlepiej drugi model albo narzędzie od innego dostawcy jako recenzent.
- Repozytorium z folderem na recenzje i audyty.
- Dla audytu niezmienników: biblioteka testów opartych na właściwościach, np. Hypothesis albo fast-check.
Pytania
Czy recenzent może być tym samym modelem co budowniczy?
Może, jeśli działa w świeżej sesji bez pamięci budowy i bez narzędzi zapisu. Model z innej rodziny może wyłapać inne rzeczy.
Dlaczego recenzent nie może niczego naprawiać?
Recenzent z prawem zapisu naprawia to, co znalazł, i wtedy nikt nie sprawdza naprawy. Odbierz mu narzędzia zapisu w definicji agenta.
Co jeśli recenzent wymyśli błąd, którego nie ma?
Każde ustalenie musi mieć plik i linię. Otwierasz to miejsce i sprawdzasz sam, zanim cokolwiek zmienisz.
Po co dzielić recenzję na sekcje?
Jeden recenzent na dużej zmianie czyta wszystko po łebkach. Recenzent z jedną sekcją trzyma ją w pełnej uwadze, a obszar bez recenzenta widać od razu jako lukę.
Czym audyt niezmienników różni się od recenzji?
Recenzja pyta, czy projekt trzyma się kupy. Audyt pyta, czy pod wrogimi danymi, powtórzonymi webhookami i równoległymi żądaniami reguły typu „saldo nigdy ujemne” nadal obowiązują.
Gdzie to pasuje
Ten skill działa na końcu każdego przepływu budowy. Szablon równoległych agentów dzieli robotę na sekcje, a ten skill w ten sam sposób dzieli kontrolę. W szablonie build-through pełni rolę bramki przed wydaniem na produkcję.
Wszystkie skilleŹródła
- Hypothesis: property-based testing for Python (dostęp 2026-09-22)
- fast-check: property-based testing for JavaScript and TypeScript (dostęp 2026-09-22)
- Claude Code docs: skills (dostęp 2026-09-22)
- Codex docs: AGENTS.md (dostęp 2026-09-22)
- Cursor docs: rules (dostęp 2026-09-22)
Pytania o wdrożenie zadajesz na Discordzie.Dołącz za darmo