본문으로 건너뛰기
cccskills
무료GitHub에 공개

csv-lens

Activate for any ticket that touches a Supabase RPC, edge function, or TypeScript client function in src/lib/. Ensures both caller and callee are verified before state:ready-for-qa.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구Supabase
설치 방법 보기

포함된 파일(1)

  • SKILL.md4.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

CSV — Client-Service Contract Lens

Activate this lens when a ticket changes a Supabase database function (RPC), edge function, or the TypeScript client layer. Contract breaks at the boundary between SQL and TypeScript are the most common source of bugs that pass unit tests but fail in Tester's end-to-end verification.

When to Activate

Load this lens when the ticket changes any of the following:

  • A Supabase SQL function in a migration (CREATE OR REPLACE FUNCTION)
  • A Supabase edge function (supabase/functions/)
  • A TypeScript client wrapper (src/lib/supabase.ts, src/lib/adminApi.ts, src/lib/stripe.ts, or any src/lib/*.ts)
  • A data-fetching hook that calls supabase.rpc() or a Supabase edge function directly
  • A type definition that represents a Supabase response shape (src/types/database.ts or equivalent)

The Contract Checklist

For each changed contract surface, verify both sides before claiming done. Cross-layer claims require cross-layer proof — confirming one side only is not sufficient.

SQL side

CheckWhat to verify
Parameter names and typesSQL function parameter names and types match exactly what the TypeScript caller passes to supabase.rpc() or the edge function fetch
Return shapeSQL RETURNS type, RETURNS TABLE columns, or JSON response shape matches the TypeScript type that consumes the result
Error contractSQL raises an exception (RAISE EXCEPTION) on known failure conditions in a way TypeScript can classify — not returning null silently
Nullable fieldsSQL columns that can be NULL correspond to optional (?) fields in the TypeScript type — no silent null becoming undefined mismatch
RLSRow-level security policies on affected tables still permit the calling role's operations after the change

TypeScript caller side

CheckWhat to verify
No any shortcutsThe RPC response or edge function response is typed with a concrete type, not widened to any or unknown without explicit narrowing at the callsite
Error path handledThe .error branch from supabase.rpc() or the edge function fetch is handled — surfaced to the UI, thrown, or logged — not silently swallowed
Caller is reachableThe updated client function is actually called from the correct component or hook; no dead code path where the old contract remains in use
Types compileIf a shared type in src/types/ was updated, all consumers compile without @ts-ignore or as any suppressions
Auth headerIf the edge function requires the user's JWT, the caller passes Authorization: Bearer <token> correctly

Naming the Contract Surface

Before implementation, name the specific contract surface this ticket touches:

Contract surface: [supabase.rpc('function_name') | supabase/functions/name | src/lib/file.ts:functionName]
Direction of change: [SQL only | TypeScript only | both sides]

A ticket that only touches the TypeScript side (no SQL change) still needs the TypeScript checklist — it may introduce a type mismatch against an unchanged SQL contract.

Pre-Handoff Gate

Before moving the ticket to state:ready-for-qa, post the following confirmation on the GitHub issue:

CSV verified:
- Contract surface: [name]
- SQL side:         [parameter shape ✓ | return shape ✓ | error contract ✓ | n/a]
- TypeScript side:  [typed correctly ✓ | error handled ✓ | caller reachable ✓ | types compile ✓]

If the ticket only touches one side, note which side was verified and why the other is unaffected. Tester will attempt to exercise the contract end-to-end; a contract that looks correct in isolation can still fail when both sides interact.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Universal guardrails loaded by every agent. Defines Verify Before Reporting (VBR), Write-Ahead Log (WAL), and the security baseline. Always-on, role-independent.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Agistra/agistra.dev52026년 10월 19일 업데이트

Use when: architecture mode, architect this, ADR, C4, PlantUML, system boundary, design decision, PRD gap, high ambiguity, multiple technical approaches, security architecture, data architecture, integration risk, implementability gap, story ticket, or epic ticket.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Agistra/agistra.dev52026년 10월 19일 업데이트

Use when: assumptions audit, audit assumptions, check for hidden assumptions, plan/ticket has ambiguous scope edges, pre-flight before finalizing a ticket, unstated assumptions, or 'what am I assuming'. Surfaces unstated assumptions, ambiguous scope edges, and untested preconditions in a finished plan/ticket/ADR before it is handed to Builder. Optional pass — Architect judges when to apply it; not a mandatory gate on every ticket.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Agistra/agistra.dev52026년 10월 19일 업데이트

Use when: Tester needs UI state evidence for VBR, or Builder needs to verify an integration wire is observable end-to-end. Powered by agent-browser MCP — token-efficient browser automation (200–400 tokens/page).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Agistra/agistra.dev52026년 10월 19일 업데이트

Use when drafting a bug or defect ticket, reviewing one someone else wrote, or deciding whether a reported problem is ready to file. Keeps what the reporter actually saw separate from what the agent later found out, so a reader can tell which lines are testimony and which are collected proof. Trigger phrases: 'file a bug', 'write up this defect', 'triage this report', 'is this ticket ready to file', 'what did the reporter actually see'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Agistra/agistra.dev52026년 10월 19일 업데이트

Conducts multi-axis code review. Use before merging any change. Use when reviewing code written by yourself, another agent, or a human. Use when you need to assess code quality across multiple dimensions before it enters the main branch.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Agistra/agistra.dev52026년 10월 19일 업데이트

Agistra의 스킬 모두 보기

이 스킬의 문제 신고