Przejdź do treści
Biblioteka skilli
Programowanie · Przegląd i audyt

adversarial-tanstack

/adversarial-tanstack

Ocenia zmiany w aplikacjach TanStack Start i TypeScript w werdykcie zalicz lub odrzuć: granice klient-serwer, uwierzytelnianie i typy.

Repozytorium
dot-skills ↗
Licencja
MIT
Ostatnia zmiana repozytorium
15.08.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
28
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 15.08.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Ocenia zmiany w aplikacjach TanStack Start i TypeScript w werdykcie zalicz lub odrzuć: granice klient-serwer, uwierzytelnianie i typy.

Oryginalny opis (EN)

Use this skill to gate TanStack Start plus TypeScript web-app changes with a pass/fail adversarial review — a single blind reviewer subagent judges a diff or file set against 22 decidable rules covering client/server boundary leaks, server-function and server-route usage, auth and security, SSR data loading, boundary type safety, and compiler config. Trigger it before merging TanStack Start work, when asked to gate, adversarially review, or pass/fail a Start or TanStack codebase, or as a final check on agent-authored Start features. It renders verdicts only and never fixes the work; for teachi

Jak działa

  1. When to Apply
  2. Review Protocol
  3. Verdict Format
  4. Rule Categories
  5. Reference Files
Sekcje z nagłówków SKILL.md, w oryginale · 53 linii, 746 słów
Podgląd SKILL.md
---
name: adversarial-tanstack
description: Use this skill to gate TanStack Start plus TypeScript web-app changes with a pass/fail adversarial review — a single blind reviewer subagent judges a diff or file set against 22 decidable rules covering client/server boundary leaks, server-function and server-route usage, auth and security, SSR data loading, boundary type safety, and compiler config. Trigger it before merging TanStack Start work, when asked to gate, adversarially review, or pass/fail a Start or TanStack codebase, or as a final check on agent-authored Start features. It renders verdicts only and never fixes the work; for teaching-style review feedback use a distillation skill instead.
---

# Adversarial TanStack Gate

A merge gate for TanStack Start + TypeScript web-app changes — a pass/fail gate: a single blind reviewer subagent judges the work against this gate's rules with an adversarial mandate, and the work passes only when every rule is PASS or N/A. This skill renders verdicts; it never fixes the work.

Rules are pinned to `@tanstack/react-start` 1.168+ (v1 RC, July 2026) and TypeScript 5.8–6.x semantics.

## When to Apply

- A TanStack Start feature, route, or server function is about to merge and needs an objective PASS/FAIL, not advisory feedback.
- An agent (Claude, Codex) authored Start app code and you want an independent check its author bias cannot rubber-stamp.
- A diff touches the client/server boundary — env vars, loaders, server functions, auth — where a wrong PASS ships secrets or unauthorized data access.
- Auditing an existing Start codebase file set against the current v1 RC API surface (stale `.inputValidator()`, removed `createServerFileRoute`).

Do not apply to non-Start React apps (most `serverfn`/`boundary`/`ssr` rules will return N/A and the gate degenerates to a TypeScript check) or when the user wants explanations and refactors rather than a verdict.

## Review Protocol

Follow these steps exactly — the gate's value is that every review runs the same way.

1. **Identify the target.** Pin down exactly what is under review (a diff, a set of files, a PR) and note the ref/paths so the review runs against an unambiguous, fixed target. Always include `tsconfig.json`, `src/router.tsx`, and `src/start.ts` (if present) in the target paths — several rules are decided by those files even when the diff does not touch them.
2. **Load the rules.** Read [references/_sections.md](references/_sections.md) and every rule file in `references/` (all `boundary-*.md`, `serverfn-*.md`, `sec-*.md`, `ssr-*.md`, `types-*.md`, `tscfg-*.md` files).
3. **Compose the reviewer prompt.** Fill [references/reviewer-prompt.md](references/reviewer-prompt.md) with the rules and the target. The composed prompt must be fully self-contained — a reviewer sees no conversation history, so nothing may refer to context outside the prompt.
4. **Dispatch one blind reviewer.** Launch a single Task subagent whose entire input is the composed prompt — no conversation context, no commentary alongside it.
5. **Render fail-closed.** The reviewer's structured output is the verdict — there is no merge step. Overall verdict is PASS only when every rule is PASS or N/A; any single FAIL fails the gate. Never average, weigh severity, or waive a rule — a "minor" FAIL is a FAIL.
6. **Render the verdict.** Fill [assets/templates/verdict.md](assets/templates/verdict.md). On FAIL, aggregate the reviewer's "missing for PASS" suggestions into the fix list, each with its location, ordered by category importance. Every rule whose final result is FAIL must appear in the fix list with a change concrete enough to apply as written — if the reviewer's suggestion only restates the violation, derive the fix from the rule's Correct example before rendering.

If the same rule flips verdicts across re-reviews of an unchanged target, or a human reads the evidence and overrides the verdict, that is a decidability bug in the rule — record it in [gotchas.md](gotchas.md) and sharpen the rule; do not override the gate.

## Verdict Format

The reviewer returns, per rule: `PASS | FAIL | N/A`, evidence (`file:line` or a quote — required for PASS as well as FAIL), and for every FAIL, the fix that flips the rule to PASS once applied — the named change plus its location, never a restatement of the violation. The final report follows [assets/templates/verdict.md](assets/templates/verdict.md).

## Rule Categories

| # | Category | Prefix | Covers |
|---|----------|--------|--------|
| 1 | Client/Server Boundary | `boundary-` | Env vars in server contexts only, loader isomorphism, public-prefix discipline |
| 2 | Server Functions & Routes | `serverfn-` | Input validators, POST for mutations, current v1 RC APIs, static imports |
| 3 | Auth & Security | `sec-` | Auth at the handler, CSRF with custom start config, cache privacy, cookie flags, enumeration |
| 4 | SSR & Data Loading | `ssr-` | Per-request router/QueryClient, useSuspenseQuery for loader data, deterministic render |
| 5 | Type Safety at Boundaries | `types-` | Schema-parse external data, exhaustive switches, escape-hatch audit, non-null assertions |
| 6 | Compiler Configuration | `tscfg-` | strict + noUncheckedIndexedAccess, erasableSyntaxOnly, verbatimModuleSyntax off (Start-specific) |

## Reference Files

| File | Description |
|------|-------------|
| [references/reviewer-prompt.md](references/reviewer-prompt.md) | Self-contained prompt template for the blind reviewer |
| [assets/templates/verdict.md](assets/templates/verdict.md) | Verdict report template |
| [references/_sections.md](references/_sections.md) | Category definitions and ordering |
| [metadata.json](metadata.json) | Version and source references |
Pliki w paczce (28)
  • SKILL.md 6 KB
  • gotchas.md 2 KB
  • metadata.json 1 KB
  • assets/templates/verdict.md 1 KB
  • references/_sections.md 2 KB
  • references/boundary-client-env-prefix.md 1 KB
  • references/boundary-env-server-context.md 2 KB
  • references/boundary-loader-no-secrets.md 1 KB
  • references/reviewer-prompt.md 3 KB
  • references/sec-auth-at-handler.md 2 KB
  • references/sec-csrf-with-custom-start.md 1 KB
  • references/sec-no-account-enumeration.md 2 KB
  • references/sec-private-cache-control.md 2 KB
  • references/sec-session-cookie-flags.md 1 KB
  • references/serverfn-current-api.md 2 KB
  • references/serverfn-post-mutations.md 1 KB
  • references/serverfn-static-imports.md 1 KB
  • references/serverfn-validate-input.md 1 KB
  • references/ssr-deterministic-render.md 2 KB
  • references/ssr-per-request-instances.md 2 KB
  • references/ssr-suspense-for-loader-data.md 1 KB
  • references/tscfg-erasable-syntax.md 2 KB
  • references/tscfg-no-verbatim-module-syntax.md 1 KB
  • references/tscfg-strict-baseline.md 1 KB
  • references/types-exhaustive-switch.md 2 KB
  • references/types-justified-nonnull.md 1 KB
  • references/types-no-escape-hatches.md 2 KB
  • references/types-parse-external-data.md 2 KB

Wersje

W bazie nie ma innych skilli o nazwie adversarial-tanstack.

Migawka bazy z 13.11.2026 · wersja paczki ccedf1877fdf (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100adversarial-zod
    Ocenia schematy Zod 4 w TypeScript i TanStack Start w werdykcie zalicz lub odrzuć, wyłapując ciche zmiany z Zod 3 i usunięte API.
  • 100adversarial-ts-patterns
    Ocenia użycie wzorców projektowych w kodzie TypeScript i React w werdykcie zalicz lub odrzuć: maszyny stanów, zbędne klasy i singletony.
  • 95tanstack-start-best-practices
    Podpowiada dobre praktyki TanStack Start: funkcje serwerowe, middleware, SSR, uwierzytelnianie i wdrożenie aplikacji fullstack.
  • 90tanstack-start-ssr
    Pomaga przy zmianach ekranów, tras i loaderów w TanStack Start, wyjaśniając, która część aplikacji obsługuje dane i serwerowe funkcje.
  • 100tanstack-start
    Pomaga budować aplikacje full-stack w React na TanStack Start (RC) z server functions, SSR i Cloudflare Workers, w tym migrować z Next.js i naprawiać błędy hydracji.
  • 100start-auth
    Dodaje uwierzytelnianie do aplikacji TanStack Start: ochronę tras, autoryzację funkcji serwerowych, sesje i zabezpieczenie CSRF.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.