quiver-cli 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/template/.agents/skills/agent-browser/SKILL.md +1 -0
- package/template/.agents/skills/apps/skybridge/SKILL.md +2 -0
- package/template/.agents/skills/data/prisma-cli/SKILL.md +25 -7
- package/template/.agents/skills/data/prisma-cli/references/agent-safety.md +27 -0
- package/template/.agents/skills/data/prisma-cli/references/complete.md +22 -0
- package/template/.agents/skills/data/prisma-cli/references/db-push.md +2 -0
- package/template/.agents/skills/data/prisma-cli/references/init.md +3 -0
- package/template/.agents/skills/data/prisma-cli/references/mcp.md +2 -1
- package/template/.agents/skills/data/prisma-cli/references/migrate-dev.md +1 -1
- package/template/.agents/skills/data/prisma-cli/references/migrate-reset.md +2 -0
- package/template/.agents/skills/data/prisma-client-api/SKILL.md +1 -1
- package/template/.agents/skills/data/prisma-client-api/references/constructor.md +13 -0
- package/template/.agents/skills/data/prisma-client-api/references/raw-queries.md +4 -0
- package/template/.agents/skills/design/impeccable/SKILL.md +5 -5
- package/template/.agents/skills/design/impeccable/reference/android.md +6 -0
- package/template/.agents/skills/design/impeccable/reference/animate.md +3 -0
- package/template/.agents/skills/design/impeccable/reference/bolder.md +3 -1
- package/template/.agents/skills/design/impeccable/reference/craft-floor.md +2 -0
- package/template/.agents/skills/design/impeccable/reference/critique.md +23 -5
- package/template/.agents/skills/design/impeccable/reference/degraded/asset-producer.md +15 -68
- package/template/.agents/skills/design/impeccable/reference/degraded/finish-reviewer.md +13 -12
- package/template/.agents/skills/design/impeccable/reference/distill.md +1 -1
- package/template/.agents/skills/design/impeccable/reference/doctor.md +1 -0
- package/template/.agents/skills/design/impeccable/reference/document.md +1 -1
- package/template/.agents/skills/design/impeccable/reference/extract.md +1 -1
- package/template/.agents/skills/design/impeccable/reference/hooks.md +17 -11
- package/template/.agents/skills/design/impeccable/reference/init.md +9 -3
- package/template/.agents/skills/design/impeccable/reference/ios.md +6 -0
- package/template/.agents/skills/design/impeccable/reference/new-work.md +69 -29
- package/template/.agents/skills/design/impeccable/reference/overdrive.md +1 -1
- package/template/.agents/skills/design/impeccable/reference/polish.md +13 -5
- package/template/.agents/skills/design/impeccable/reference/quieter.md +1 -1
- package/template/.agents/skills/design/impeccable/reference/routing.md +1 -1
- package/template/.agents/skills/design/impeccable/reference/visualize.md +21 -22
- package/template/.agents/skills/design/impeccable/scripts/build-phase.mjs +1022 -0
- package/template/.agents/skills/design/impeccable/scripts/comp-diff.mjs +391 -0
- package/template/.agents/skills/design/impeccable/scripts/comp-spec.mjs +513 -0
- package/template/.agents/skills/design/impeccable/scripts/concept-seed.mjs +297 -41
- package/template/.agents/skills/design/impeccable/scripts/context-signals.mjs +10 -19
- package/template/.agents/skills/design/impeccable/scripts/context.mjs +124 -9
- package/template/.agents/skills/design/impeccable/scripts/critique-storage.mjs +279 -19
- package/template/.agents/skills/design/impeccable/scripts/data/font-index-failures.json +121 -0
- package/template/.agents/skills/design/impeccable/scripts/data/font-index.json +1 -0
- package/template/.agents/skills/design/impeccable/scripts/detect.mjs +9 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/browser/injected/index.mjs +192 -11
- package/template/.agents/skills/design/impeccable/scripts/detector/cli/main.mjs +10 -16
- package/template/.agents/skills/design/impeccable/scripts/detector/design-system.mjs +339 -11
- package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns-browser.js +1482 -722
- package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns.mjs +1 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/browser/detect-url.mjs +64 -2
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/regex/detect-text.mjs +580 -29
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +62 -7
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/detect-html.mjs +31 -7
- package/template/.agents/skills/design/impeccable/scripts/detector/node/file-system.mjs +23 -22
- package/template/.agents/skills/design/impeccable/scripts/detector/registry/antipatterns.mjs +18 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/rules/checks.mjs +471 -370
- package/template/.agents/skills/design/impeccable/scripts/detector/shared/color.mjs +474 -2
- package/template/.agents/skills/design/impeccable/scripts/detector/shared/constants.mjs +17 -2
- package/template/.agents/skills/design/impeccable/scripts/doctor.mjs +14 -21
- package/template/.agents/skills/design/impeccable/scripts/embed-prompt.mjs +81 -48
- package/template/.agents/skills/design/impeccable/scripts/font-match.mjs +457 -0
- package/template/.agents/skills/design/impeccable/scripts/generate-image.mjs +219 -12
- package/template/.agents/skills/design/impeccable/scripts/hook-admin.mjs +93 -15
- package/template/.agents/skills/design/impeccable/scripts/hook-before-edit.mjs +41 -19
- package/template/.agents/skills/design/impeccable/scripts/hook-lib.mjs +507 -117
- package/template/.agents/skills/design/impeccable/scripts/hook.mjs +10 -9
- package/template/.agents/skills/design/impeccable/scripts/lib/concept-catalog.mjs +40 -1
- package/template/.agents/skills/design/impeccable/scripts/lib/design-parser.mjs +120 -82
- package/template/.agents/skills/design/impeccable/scripts/lib/font-fingerprint.mjs +564 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/font-index.mjs +130 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/hero-checks.mjs +246 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/image-metrics.mjs +306 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/impeccable-config.mjs +41 -59
- package/template/.agents/skills/design/impeccable/scripts/lib/is-generated.mjs +5 -2
- package/template/.agents/skills/design/impeccable/scripts/lib/live-path-globs.mjs +37 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/open-system-browser.mjs +26 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/png.mjs +281 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/raster.mjs +194 -0
- package/template/.agents/skills/design/impeccable/scripts/lib/roll-selection.mjs +26 -19
- package/template/.agents/skills/design/impeccable/scripts/lib/staleness-deep.mjs +31 -3
- package/template/.agents/skills/design/impeccable/scripts/lib/staleness.mjs +93 -17
- package/template/.agents/skills/design/impeccable/scripts/lib/surface-briefs.mjs +9 -11
- package/template/.agents/skills/design/impeccable/scripts/live/browser-script-parts.mjs +31 -2
- package/template/.agents/skills/design/impeccable/scripts/live/project-ignores.mjs +139 -0
- package/template/.agents/skills/design/impeccable/scripts/live/svelte-ast.mjs +10 -2
- package/template/.agents/skills/design/impeccable/scripts/live/svelte-component.mjs +26 -2
- package/template/.agents/skills/design/impeccable/scripts/live/sveltekit-adapter.mjs +15 -27
- package/template/.agents/skills/design/impeccable/scripts/live/tanstack-adapter.mjs +4 -25
- package/template/.agents/skills/design/impeccable/scripts/live/ui-surfaces.mjs +75 -0
- package/template/.agents/skills/design/impeccable/scripts/live-accept.mjs +21 -37
- package/template/.agents/skills/design/impeccable/scripts/live-browser-ignores.js +242 -0
- package/template/.agents/skills/design/impeccable/scripts/live-browser.js +62 -23
- package/template/.agents/skills/design/impeccable/scripts/live-commit-manual-edits.mjs +68 -112
- package/template/.agents/skills/design/impeccable/scripts/live-copy-edit-agent.mjs +132 -15
- package/template/.agents/skills/design/impeccable/scripts/live-inject.mjs +2 -42
- package/template/.agents/skills/design/impeccable/scripts/live-poll.mjs +5 -4
- package/template/.agents/skills/design/impeccable/scripts/live-server.mjs +56 -19
- package/template/.agents/skills/design/impeccable/scripts/live.mjs +12 -37
- package/template/.agents/skills/design/impeccable/scripts/pin.mjs +8 -5
- package/template/.agents/skills/design/impeccable/scripts/serve-question.mjs +1006 -155
- package/template/.agents/skills/design/shadcn/rules/chat.md +26 -0
- package/template/.agents/skills/hono/SKILL.md +17 -3
- package/template/.agents/skills/integrations/langfuse/SKILL.md +8 -4
- package/template/.agents/skills/integrations/langfuse/references/cli.md +1 -1
- package/template/.agents/skills/integrations/langfuse/references/create-dataset.md +35 -0
- package/template/.agents/skills/integrations/langfuse/references/error-analysis.md +9 -10
- package/template/.agents/skills/integrations/langfuse/references/judge-calibration.md +8 -6
- package/template/.agents/skills/integrations/langfuse/references/sdk-upgrade.md +34 -0
- package/template/.agents/skills/integrations/langfuse/references/setting-up-evals.md +65 -0
- package/template/.agents/skills/integrations/langfuse/references/skill-feedback.md +20 -40
- package/template/.agents/skills/integrations/langfuse/references/user-feedback.md +4 -30
- package/template/.agents/skills/integrations/langfuse/references/v4-project-migration.md +3 -1
- package/template/.agents/skills/supabase/CHANGELOG.md +7 -0
- package/template/.agents/skills/supabase/SKILL.md +5 -1
- package/template/.agents/skills/writing/humanizer/LICENSE +21 -0
- package/template/.agents/skills/writing/humanizer/README.md +209 -0
- package/template/.agents/skills/writing/humanizer/SKILL.md +173 -338
- package/template/.agents/upstreams.json +21 -22
- package/template/.agents/skills/design/impeccable/scripts/live/ui-core.mjs +0 -180
|
@@ -208,6 +208,32 @@ write a `useStickToBottom` hook, a `ResizeObserver`, or manual `scrollTop` math.
|
|
|
208
208
|
and scrolls back on click. `direction="end"` (default) or `direction="start"`.
|
|
209
209
|
It is a self-managing control, so don't gate it behind your own scroll-position
|
|
210
210
|
state.
|
|
211
|
+
- **Open a saved transcript without a flash.** `defaultScrollPosition` applies
|
|
212
|
+
after mount. When it is `"end"` or `"last-anchor"`, the viewport has
|
|
213
|
+
`data-pending-scroll` until that position is applied. The styled viewport
|
|
214
|
+
hides. For `"end"` on first paint when messages are in the server HTML, copy
|
|
215
|
+
this script into the page, not into the primitive. Skip it for `"last-anchor"`
|
|
216
|
+
and for client-fetched messages. Keep `suppressHydrationWarning` on the
|
|
217
|
+
viewport. Pass a `nonce` if you use a Content Security Policy.
|
|
218
|
+
|
|
219
|
+
```tsx
|
|
220
|
+
const scrollToEndScript = `(function () {
|
|
221
|
+
var viewport = document.getElementById("messages")
|
|
222
|
+
if (!viewport) {
|
|
223
|
+
return
|
|
224
|
+
}
|
|
225
|
+
viewport.scrollTop = viewport.scrollHeight
|
|
226
|
+
viewport.removeAttribute("data-pending-scroll")
|
|
227
|
+
})()`
|
|
228
|
+
|
|
229
|
+
<MessageScroller>
|
|
230
|
+
<MessageScrollerViewport id="messages" suppressHydrationWarning>
|
|
231
|
+
<MessageScrollerContent>{/* transcript */}</MessageScrollerContent>
|
|
232
|
+
</MessageScrollerViewport>
|
|
233
|
+
<script dangerouslySetInnerHTML={{ __html: scrollToEndScript }} />
|
|
234
|
+
<MessageScrollerButton />
|
|
235
|
+
</MessageScroller>
|
|
236
|
+
```
|
|
211
237
|
|
|
212
238
|
For a "thinking…" indicator while the model generates, apply the `shimmer`
|
|
213
239
|
utility to text. Don't author a custom keyframe animation. See
|
|
@@ -5,7 +5,15 @@ description: Use when building Hono web applications or when the user asks about
|
|
|
5
5
|
|
|
6
6
|
# Hono Skill
|
|
7
7
|
|
|
8
|
-
Build Hono web applications. This skill provides inline API knowledge for AI. Use `npx hono request` to test endpoints.
|
|
8
|
+
Build Hono web applications. This skill provides inline API knowledge for AI. Use `npx hono request` to test endpoints.
|
|
9
|
+
|
|
10
|
+
## Latest Documentation
|
|
11
|
+
|
|
12
|
+
For details beyond this inline reference, fetch the latest documentation from https://hono.dev. Get the index of doc pages from `https://hono.dev/llms.txt`, then fetch a page with the `Accept: text/markdown` header to receive it as Markdown:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
curl -H "Accept: text/markdown" https://hono.dev/docs/helpers/cookie
|
|
16
|
+
```
|
|
9
17
|
|
|
10
18
|
## Hono CLI Usage
|
|
11
19
|
|
|
@@ -231,11 +239,17 @@ import { timing } from 'hono/timing'
|
|
|
231
239
|
import { cache } from 'hono/cache'
|
|
232
240
|
import { bearerAuth } from 'hono/bearer-auth'
|
|
233
241
|
import { jwt } from 'hono/jwt'
|
|
242
|
+
import { jwk } from 'hono/jwk'
|
|
234
243
|
import { csrf } from 'hono/csrf'
|
|
235
244
|
import { ipRestriction } from 'hono/ip-restriction'
|
|
236
245
|
import { bodyLimit } from 'hono/body-limit'
|
|
246
|
+
import { timeout } from 'hono/timeout'
|
|
237
247
|
import { requestId } from 'hono/request-id'
|
|
238
248
|
import { methodOverride } from 'hono/method-override'
|
|
249
|
+
import { methodNotAllowed } from 'hono/method-not-allowed'
|
|
250
|
+
import { languageDetector } from 'hono/language'
|
|
251
|
+
import { some, every, except } from 'hono/combine'
|
|
252
|
+
import { contextStorage, getContext } from 'hono/context-storage'
|
|
239
253
|
import { trailingSlash, trimTrailingSlash } from 'hono/trailing-slash'
|
|
240
254
|
|
|
241
255
|
// Registration
|
|
@@ -372,7 +386,7 @@ app.get('/', (c) => {
|
|
|
372
386
|
|
|
373
387
|
### jsxRenderer Middleware
|
|
374
388
|
|
|
375
|
-
Use `jsxRenderer` middleware for layouts.
|
|
389
|
+
Use `jsxRenderer` middleware for layouts. For details, see https://hono.dev/docs/middleware/builtin/jsx-renderer
|
|
376
390
|
|
|
377
391
|
### Async Components
|
|
378
392
|
|
|
@@ -529,7 +543,7 @@ import { upgradeWebSocket } from 'hono/cloudflare-workers' // or other adapter
|
|
|
529
543
|
|
|
530
544
|
Available helpers: Accepts, Adapter, ConnInfo, Cookie, css, Dev, Factory, html, JWT, Proxy, Route, SSG, Streaming, Testing, WebSocket.
|
|
531
545
|
|
|
532
|
-
For details,
|
|
546
|
+
For details, see `https://hono.dev/docs/helpers/<helper-name>` (fetch with `Accept: text/markdown`).
|
|
533
547
|
|
|
534
548
|
### Factory
|
|
535
549
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: langfuse
|
|
3
|
-
description:
|
|
3
|
+
description: >-
|
|
4
|
+
Interact with Langfuse and access its documentation: tracing, monitoring, creating datasets, running experiments, and evaluating AI applications. Use when needing to (1) query or modify Langfuse data, (2) look up Langfuse documentation, concepts, integration guides, a feature or SDK usage, or (3) do any AI engineering task (AI observability, prompt engineering/management, evaluation and evaluator management, experimentation, dataset management, evaluation-driven CI/CD, feedback collection). Invoke it for tasks in this scope even when Langfuse is not configured or explicitly mentioned.
|
|
4
5
|
allowed-tools:
|
|
5
6
|
- WebFetch(domain:langfuse.com)
|
|
6
7
|
- Bash(curl *langfuse.com/*)
|
|
@@ -24,7 +25,7 @@ Follow these principles for ALL Langfuse work:
|
|
|
24
25
|
|
|
25
26
|
1. **Documentation First**: NEVER implement based on memory. Always fetch current docs before writing code (Langfuse updates frequently) See the section below on how to access documentation.
|
|
26
27
|
2. **CLI for Data Access**: Use `langfuse-cli` when querying/modifying Langfuse data. See the section below on how to use the CLI.
|
|
27
|
-
3. **Best Practices by Use Case**:
|
|
28
|
+
3. **Best Practices by Use Case**: Read the relevant reference below use-case-specific guidelines before asking the user for more details or implementing.
|
|
28
29
|
4. **Use latest Langfuse versions**: Unless the user specified otherwise or there's a good reason, always use the latest version of Langfuse SDKs/APIs. Even if you're only creating a plan for another agent to execute, be explicit about the exact version to use.
|
|
29
30
|
5. **If you guide the user through UI** and are unsure about a label or location, inspect the user’s screenshots or ask to see the relevant screen. Do not assume UI labels have the exact same names as API, SDK, or CLI fields.
|
|
30
31
|
|
|
@@ -32,14 +33,17 @@ Follow these principles for ALL Langfuse work:
|
|
|
32
33
|
## Use case specific references
|
|
33
34
|
|
|
34
35
|
- instrumenting an existing function/application: references/instrumentation.md
|
|
36
|
+
- creating or getting to a good (evaluation) dataset to measure quality or test for regressions in AI systems: references/create-dataset.md
|
|
35
37
|
- migrating prompts from a codebase into Langfuse: references/prompt-migration.md
|
|
36
38
|
- creating a prompt or changing any part of an existing prompt, including small edits and debugging/tuning: references/prompt-engineering.md
|
|
39
|
+
- setting up evals when the user needs to identify gaps across signal capture, monitoring, and evaluator metrics ("I have traces, how do I set up evals?"): references/setting-up-evals.md
|
|
37
40
|
- capturing user feedback (thumbs, ratings, implicit signals) as scores on traces: references/user-feedback.md
|
|
38
41
|
- further tips on using the Langfuse CLI: references/cli.md
|
|
42
|
+
- upgrading or migrating Langfuse SDKs and preserving application instrumentation attributes: references/sdk-upgrade.md
|
|
39
43
|
- upgrading legacy trace-level or dataset-item evaluators to observation-level or experiment evaluators: references/trace-evaluator-upgrade.md. Use the [evaluator migration guide](https://langfuse.com/faq/all/llm-as-a-judge-migration) as the primary reference.
|
|
40
|
-
- preparing
|
|
44
|
+
- preparing a Langfuse project for the v4 platform migration: references/v4-project-migration.md
|
|
41
45
|
- judge calibration (LLM-as-a-Judge reliability, simple accuracy checks, advanced split-based validation, confusion matrices, and metric ingestion): references/judge-calibration.md
|
|
42
|
-
- systematic error analysis
|
|
46
|
+
- systematic error analysis when requested directly or eval setup still lacks concrete failure modes after agent-led trace inspection: references/error-analysis.md
|
|
43
47
|
- setting up CI/CD experiment gates with `langfuse/experiment-action`: references/ci-cd.md
|
|
44
48
|
- submitting feedback about this skill: references/skill-feedback.md
|
|
45
49
|
|
|
@@ -56,5 +56,5 @@ export LANGFUSE_BASE_URL=https://cloud.langfuse.com
|
|
|
56
56
|
- Prefer `observations` over `legacy-observations-v1s` — `observations` is the modern high-performance endpoint (cursor pagination, selective field groups); `legacy-observations-v1s` is the deprecated v1
|
|
57
57
|
- Prefer `metrics` over `legacy-metrics-v1s` for the same reason
|
|
58
58
|
- Prefer `scores` over `legacy-score-v1s` for list/get operations
|
|
59
|
-
-
|
|
59
|
+
- Always query via `observations`, not `traces`, even when the user phrases the request in terms of traces — the `traces` endpoints are outdated (add `--trace-id` to scope to a known trace). See the [Observations API docs](https://langfuse.com/docs/api-and-data-platform/features/observations-api) for the v1 → v2 mapping.
|
|
60
60
|
- Pagination: legacy v1 endpoints use `--limit` and `--page`; modern endpoints (`observations`, `metrics`, `scores`) use cursor-based pagination — pass `--limit`, then thread `meta.cursor` from the response into the next request's `--cursor`
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: langfuse-dataset-construction
|
|
3
|
+
description: Collaborative Langfuse dataset creation workflow. Use when the user needs to create, design, seed, reshape, review, or upload a Langfuse dataset or dataset version; especially when they need a minimal but complete dataset, e.g. for quality checks or avoiding regression.
|
|
4
|
+
metadata:
|
|
5
|
+
required_access:
|
|
6
|
+
- LANGFUSE_PROJECT_INTERFACE
|
|
7
|
+
- LANGFUSE_PROJECT_SCRIPT
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Langfuse Dataset Construction
|
|
11
|
+
|
|
12
|
+
## Primary Guide
|
|
13
|
+
|
|
14
|
+
Follow the [Langfuse Academy datasets guide](https://langfuse.com/academy/datasets) as the human-readable source of truth for dataset design; fetch current docs before implementation.
|
|
15
|
+
|
|
16
|
+
Use CLI schema/help discovery for current Langfuse API mechanics.
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
Guide the user through dataset creation as an interview, proposal, approval, implementation loop:
|
|
21
|
+
|
|
22
|
+
1. Read the primary guide and relevant current Langfuse docs.
|
|
23
|
+
2. Clarify the problem the user is facing, interviewing them if context is thin, to decide the goal, release, or evaluation decision the dataset should support.
|
|
24
|
+
3. Inspect available context: the user's goal, the application path or codebase when available, existing datasets, traces, prompts, scores, monitors, user feedback, tickets, expert examples, existing eval and dataset assets.
|
|
25
|
+
4. Interview the user on available sources beyond production traces.
|
|
26
|
+
5. For each step going forward, propose a direction and get the user's approval, specifically:
|
|
27
|
+
- Dataset distribution dimensions (propose and get user input).
|
|
28
|
+
- Item schema: input, expected output, metadata (propose and get user input).
|
|
29
|
+
6. Generate the first minimal draft of items against the approved schema and distribution, then present it for approval.
|
|
30
|
+
7. Heavily prompt the user to review expected outputs, as AI-generated expected outputs cannot be considered ground truth. Send a link with instructions to review.
|
|
31
|
+
|
|
32
|
+
## Critical Rules
|
|
33
|
+
- Do not create, upsert, reshape, or upload a live Langfuse dataset until the user has approved the dataset goal, source mix, item schema, and first minimal draft, unless the user already gave those details and explicitly asked for immediate mutation.
|
|
34
|
+
- Design the smallest complete dataset version that can serve the goal. Prefer a minimal reviewable v0 over broad coverage. A first draft is usually 5-12 high-signal items unless the user asks for a different size.
|
|
35
|
+
- Keep `input`, `expectedOutput`, and `metadata` responsibilities separate. Put additional information, notes, and comments into `metadata`, not into `input` or `expectedOutput`.
|
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
name: langfuse-error-analysis
|
|
3
3
|
description: Deep-dive error analysis of an LLM pipeline or AI application using Langfuse traces.
|
|
4
4
|
Use this skill whenever the user wants to understand why their AI system is producing
|
|
5
|
-
bad outputs, where their pipeline is failing, how to categorise
|
|
6
|
-
|
|
5
|
+
bad outputs, where their pipeline is failing, or how to categorise and label failures
|
|
6
|
+
into a taxonomy and decide what to prioritise fixing. Also trigger for "review my
|
|
7
7
|
traces", "my outputs look wrong", "help me debug my LLM app", "I want to analyse
|
|
8
|
-
errors", "build a failure taxonomy", "what's going wrong with my pipeline"
|
|
9
|
-
request to systematically inspect, annotate, or score Langfuse traces. If the user
|
|
10
|
-
is trying to understand or improve the quality of an AI system's outputs, use this skill.
|
|
8
|
+
errors", "build a failure taxonomy", or "what's going wrong with my pipeline".
|
|
11
9
|
metadata:
|
|
12
10
|
required_access:
|
|
13
11
|
- LANGFUSE_PROJECT_INTERFACE
|
|
@@ -27,12 +25,13 @@ Read it in full. It defines the authoritative 5-step process (sample selection
|
|
|
27
25
|
|
|
28
26
|
**2. Guide the user through this step by step**
|
|
29
27
|
|
|
30
|
-
You as a coding agent and the user go through this together to perform a full error analysis with their data in
|
|
28
|
+
You as a coding agent and the user go through this together to perform a full error analysis with their data in Langfuse. Set up the scores, representative sample, and annotation queue for the user, and provide direct UI links wherever their action is required. Be proactive and explain what is happening in plain language without reciting internal step numbers or jargon.
|
|
31
29
|
|
|
32
30
|
## Rules CRITICAL
|
|
33
|
-
Perform interactions with the user's Langfuse instance yourself rather than telling the user to do them
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
- Perform interactions with the user's Langfuse instance yourself rather than telling the user to do them.
|
|
32
|
+
- The user performs the open-coding review and supplies human labels; do not do this on their behalf.
|
|
33
|
+
- Where a step needs the user's judgment or input, pause and ask before acting.
|
|
34
|
+
- Use charts where possible to display data.
|
|
36
35
|
|
|
37
36
|
---
|
|
38
37
|
|
|
@@ -74,7 +73,7 @@ When a category warrants a prompt fix, always offer the user two options:
|
|
|
74
73
|
|
|
75
74
|
### Setup evaluators
|
|
76
75
|
|
|
77
|
-
When a category warrants an evaluator
|
|
76
|
+
When a category warrants an evaluator, build it following `references/setting-up-evals.md`.
|
|
78
77
|
|
|
79
78
|
|
|
80
79
|
### Common gotchas
|
|
@@ -192,8 +192,10 @@ Before trusting the judge on production traffic:
|
|
|
192
192
|
3. **Metric recomputation check**: recompute aggregate stats from row-level
|
|
193
193
|
flags and compare.
|
|
194
194
|
4. **TPR/TNR review**: inspect both directions for class-direction bias.
|
|
195
|
-
5. **
|
|
196
|
-
|
|
195
|
+
5. **Acceptance criteria**: before the held-out test, agree on thresholds for
|
|
196
|
+
the relevant metrics based on the costs of false positives and false
|
|
197
|
+
negatives and whether the judge informs monitoring or automation. Do not
|
|
198
|
+
infer "ship" from a universal cutoff.
|
|
197
199
|
|
|
198
200
|
## 7) Report format
|
|
199
201
|
|
|
@@ -223,10 +225,10 @@ scores to the experiment traces and run-level scores to the dataset run.
|
|
|
223
225
|
Use manual REST score creation only as a fallback when not using the SDK
|
|
224
226
|
experiment runner, or for local smoke tests. See
|
|
225
227
|
[Scores via SDK](https://langfuse.com/docs/evaluation/evaluation-methods/scores-via-sdk)
|
|
226
|
-
and the [Scores API reference](https://langfuse.com/docs/api)
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
228
|
+
and the [Scores API reference](https://langfuse.com/docs/api) for the current
|
|
229
|
+
payload shape. Before using the CLI for score creation, inspect its current
|
|
230
|
+
schema and action help instead of assuming resource names, arguments, or
|
|
231
|
+
capabilities from a known package version.
|
|
230
232
|
|
|
231
233
|
Score names to emit:
|
|
232
234
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: langfuse-sdk-upgrade
|
|
3
|
+
description: Upgrade Langfuse SDKs and application instrumentation while preserving trace attributes across observations. Use for Python or JS/TS SDK migrations, including the application side of a v4 platform migration.
|
|
4
|
+
metadata:
|
|
5
|
+
required_access:
|
|
6
|
+
- CODEBASE
|
|
7
|
+
- LANGFUSE_PROJECT_SCRIPT
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Langfuse SDK upgrade
|
|
11
|
+
|
|
12
|
+
## Sources of truth
|
|
13
|
+
|
|
14
|
+
Determine every installed Langfuse SDK major version, then fetch each applicable leaf guide in full before editing:
|
|
15
|
+
|
|
16
|
+
- [SDK upgrade paths](https://langfuse.com/docs/observability/sdk/upgrade-path)
|
|
17
|
+
- [Python v3 to v4](https://langfuse.com/docs/observability/sdk/upgrade-path/python-v3-to-v4)
|
|
18
|
+
- [JS/TS v4 to v5](https://langfuse.com/docs/observability/sdk/upgrade-path/js-v4-to-v5)
|
|
19
|
+
- [Instrumentation and attribute propagation](https://langfuse.com/docs/observability/sdk/instrumentation#add-attributes)
|
|
20
|
+
- [Sessions and session-level metrics](https://langfuse.com/docs/observability/features/sessions)
|
|
21
|
+
- [Direct OpenTelemetry ingestion](https://langfuse.com/integrations/native/opentelemetry)
|
|
22
|
+
|
|
23
|
+
Follow every intermediate guide when the installed version is more than one major behind. Use the current docs for implementation details; do not copy examples from this file.
|
|
24
|
+
|
|
25
|
+
## Workflow
|
|
26
|
+
|
|
27
|
+
1. Inventory every SDK, integration package, direct OpenTelemetry exporter, initialization site, instrumentation wrapper, lockfile, worker, script, and test that can emit Langfuse data.
|
|
28
|
+
2. Find every source of correlating attributes, including `session_id`/`sessionId`, `user_id`/`userId`, tags, metadata, version, environment, and trace name. Search for the values and surrounding application concepts, not only removed SDK method names.
|
|
29
|
+
3. Apply every relevant item from the exact version-specific guides. Preserve each correlating attribute by establishing its documented propagation scope before any observation-producing call that must inherit it.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## Completion report
|
|
33
|
+
|
|
34
|
+
Report the versions before and after, changed instrumentation paths, attribute sources and propagation scopes, validation performed, inspected trace or session, and any remaining blocked verification.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: langfuse-setting-up-evals
|
|
3
|
+
description: Set up evaluation by finding gaps across signal capture, monitoring, and evaluator metrics, then addressing the right one first.
|
|
4
|
+
metadata:
|
|
5
|
+
required_access:
|
|
6
|
+
- LANGFUSE_PROJECT_INTERFACE
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Setting up evals
|
|
10
|
+
|
|
11
|
+
- **Act as executor and teacher.** Do the work and, above all, explain why the approach fits the user's goal and data.
|
|
12
|
+
- **Teach decision-making, not configuration.** Explain the reasoning, tradeoffs, and limitations—not sampling rates, targets, score types, or other setup details. The response must leave the user able to repeat or change the approach and make future decisions without you.
|
|
13
|
+
|
|
14
|
+
Always read [Choosing what to evaluate](https://langfuse.com/academy/evaluate/choosing-what-to-evaluate) and [Evaluation](https://langfuse.com/academy/evaluate). Use their guidance to interpret their project, but do not return it as a generic setup plan.
|
|
15
|
+
|
|
16
|
+
If the user has a precise metric, skip to **Build the evaluator**. Otherwise, do not assume that choosing evaluator metrics is the next step.
|
|
17
|
+
|
|
18
|
+
## Find the measurement gap
|
|
19
|
+
|
|
20
|
+
Before advising:
|
|
21
|
+
|
|
22
|
+
- Inspect enough representative traces to present concrete findings of your own before asking about metrics.
|
|
23
|
+
- Inventory existing datasets, evaluators, traces, etc. as context; do not assume they should be reused or represent a current priority. Treat their importance as unconfirmed until the user agrees.
|
|
24
|
+
- Identify what is already surfaced through trace errors, logged data, existing scores, or other monitoring; what is available but not monitored; what important user or product signals are not captured; and what genuinely requires an evaluator.
|
|
25
|
+
- Do not ask the user for information you can inspect.
|
|
26
|
+
- If project access is unavailable, say so instead of substituting a generic plan.
|
|
27
|
+
|
|
28
|
+
Do not add an evaluator that duplicates an existing error or logged signal. For example, do not evaluate valid JSON when invalid JSON already produces a trace error.
|
|
29
|
+
|
|
30
|
+
Treat trace errors and logged failures as existing coverage. Unless the user wants operational monitoring, do not let them displace the search for subtler qualitative signals that are not yet captured. Do not propose alerts, paging, or release gates before asking how the measurement should be used.
|
|
31
|
+
|
|
32
|
+
Do not propose evaluating a known failure with an owner and a planned one-time fix unless the user wants to track whether it recurs.
|
|
33
|
+
|
|
34
|
+
If formal error analysis is the right next step, explain why and ask whether the user wants to do it. If they agree, run it following `references/error-analysis.md`, and do not start metric selection until the analysis is complete.
|
|
35
|
+
|
|
36
|
+
## Define the metric set
|
|
37
|
+
|
|
38
|
+
Existing project materials inform the questions you'll ask; it does not determine what the user values.
|
|
39
|
+
|
|
40
|
+
When forming tentative recommendations:
|
|
41
|
+
|
|
42
|
+
- Start with direct evidence of user or product outcomes, recurring failures visible in traces or user reactions, and important signals the application is not yet capturing.
|
|
43
|
+
- Prefer quick wins: signals that are application-specific, actionable, reasonably reliable to start measuring. A good example signal is user (dis)satisfaction.
|
|
44
|
+
- Recommend metrics only for problems evidenced in current data. A behavior being common or theoretically risky is not a reason to run an evaluator.
|
|
45
|
+
- For live evaluation, recommend only metrics that can be scored from the available live data without ground truth; never suggest a metric that requires knowing the correct answer, expected outcome, or ideal resolution.
|
|
46
|
+
- Do not propose generic starting metrics such as `helpfulness`, `quality`, `relevance`, `hallucination`, `groundedness`, `task completion`, `task success`, or `reliability`.
|
|
47
|
+
- Before presenting any metric, verify that it can actually be measured using the available data and Langfuse's supported evaluator inputs. If not, identify what must be captured instead.
|
|
48
|
+
- Explain why each recommendation deserves attention before the alternatives, then ask the user whether that priority matches their goals.
|
|
49
|
+
|
|
50
|
+
When specific failures or hard requirements are known and metric selection is the next task, ask focused, dependent questions about which ones matter and what decisions their measurement should support. Give a recommendation grounded in the project, leave the decision to the user, and wait for their answer.
|
|
51
|
+
|
|
52
|
+
Do not treat any metric as selected, choose evaluator types, ask implementation questions, or implement anything until the user has answered and explicitly confirmed the metric set.
|
|
53
|
+
|
|
54
|
+
## Build the evaluator
|
|
55
|
+
|
|
56
|
+
For evaluator functionality, use the unstable API endpoints.
|
|
57
|
+
|
|
58
|
+
Follow [Writing good evaluators](https://langfuse.com/academy/evaluate/writing-evaluators) to choose the evaluator type; do not always default to an LLM-as-a-judge.
|
|
59
|
+
|
|
60
|
+
- Before creating the evaluator, verify its target filter by fetching the observations it actually matches. Confirm the set is exactly what you intend—no duplicates that would be scored (and billed) twice.
|
|
61
|
+
- Prioritize a clean score name: it is the metric that lands on every observation, so name it after what is measured (`refusal`), not after the evaluator (`refusal judge`). Keep any evaluator-mechanism wording out of the score name.
|
|
62
|
+
- Explain why the chosen evaluation method measures the intended behavior, what evidence it relies on, what it cannot tell the user, and when another method would be better.
|
|
63
|
+
- When methods have significant trade-offs and none is clearly superior, explain the options and let the user decide before implementation.
|
|
64
|
+
- Only if an LLM-as-a-judge is the best fit, calibrate it on real examples before treating it as ready(`references/judge-calibration.md`). You can do this by running an experiment on a dataset where the prompt being tested is the LLM-as-a-judge prompt.
|
|
65
|
+
- Share a link to the evaluator.
|
|
@@ -1,55 +1,35 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: langfuse-skill-feedback
|
|
3
|
-
description: Submit feedback about the Langfuse skill to its maintainers
|
|
3
|
+
description: Submit feedback about the Langfuse skill to its maintainers. Use when the skill's instructions are wrong, outdated, missing something, or could be improved.
|
|
4
4
|
metadata:
|
|
5
5
|
required_access:
|
|
6
|
-
-
|
|
6
|
+
- LANGFUSE_PROJECT_INTERFACE
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Skill Feedback
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Use this only for feedback about the skill itself, not Langfuse the product or a user's application data.
|
|
12
12
|
|
|
13
|
-
1.
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
1. Draft concise feedback using the following structure:
|
|
14
|
+
- **Describe your idea or feedback** (required)
|
|
15
|
+
A clear description of what went wrong or what could be improved. Include:
|
|
16
|
+
- What the user was trying to do (as `goal`)
|
|
17
|
+
- What the skill did vs what was expected
|
|
18
|
+
- Any specific instructions that were incorrect or missing
|
|
16
19
|
|
|
17
|
-
|
|
20
|
+
- **What would the ideal outcome look like?** (optional)
|
|
21
|
+
What the correct behavior or guidance should be.
|
|
18
22
|
|
|
19
|
-
|
|
23
|
+
If feedback targets existing skill, reference in `target`.
|
|
24
|
+
2. If the user wants a reply, ask them to include an email address in `feedback`; use only an address they explicitly provide.
|
|
25
|
+
3. Show every submitted field exactly as it will be sent and ask for explicit permission. Do not submit without approval.
|
|
20
26
|
|
|
21
|
-
|
|
22
|
-
A clear description of what went wrong or what could be improved. Include:
|
|
23
|
-
- What the user was trying to do
|
|
24
|
-
- What the skill did vs what was expected
|
|
25
|
-
- Any specific instructions that were incorrect or missing
|
|
27
|
+
## Submission options
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
What the correct behavior or guidance should be.
|
|
29
|
+
Use the first available option, or the option the user prefers:
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
1. **Authenticated Langfuse MCP, CLI, or Public API** — prefer the `submitFeedback` tool on the Langfuse MCP server. If it is unavailable, discover the current feedback operation with the Langfuse CLI schema/help and submit through the authenticated Public API. Do not ask users to paste credentials into chat.
|
|
32
|
+
2. **Langfuse Docs MCP** — use its unauthenticated `submitFeedback` tool when no authenticated Langfuse interface is available.
|
|
33
|
+
3. **GitHub issue or discussion** — if no MCP/CLI/API is available, or the user wants a public, trackable thread, provide a prefilled discussion link for the user to submit: `https://github.com/langfuse/skills/discussions/new?category=ideas-improvements&title=<url-encoded title>&body=<url-encoded body>`. Use `https://github.com/langfuse/skills/issues/new` if they prefer an issue.
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
Create a GitHub Discussion on the `langfuse/skills` repository using the GraphQL API:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
gh api graphql -f query='
|
|
38
|
-
mutation($repoId: ID!, $categoryId: ID!, $title: String!, $body: String!) {
|
|
39
|
-
createDiscussion(input: {repositoryId: $repoId, categoryId: $categoryId, title: $title, body: $body}) {
|
|
40
|
-
discussion { url }
|
|
41
|
-
}
|
|
42
|
-
}' \
|
|
43
|
-
-f repoId="$(gh api graphql -f query='{ repository(owner: "langfuse", name: "skills") { id } }' --jq '.data.repository.id')" \
|
|
44
|
-
-f categoryId="$(gh api graphql -f query='{ repository(owner: "langfuse", name: "skills") { discussionCategories(first: 10) { nodes { id name } } } }' --jq '.data.repository.discussionCategories.nodes[] | select(.name == "Ideas & Improvements") | .id')" \
|
|
45
|
-
-f title="<concise title>" \
|
|
46
|
-
-f body="<formatted feedback>"
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
If the `gh` CLI is not authenticated or the request fails, give the user this link to create the discussion manually:
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
https://github.com/langfuse/skills/discussions/new?category=ideas-improvements
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
After submission, share the discussion URL with the user.
|
|
35
|
+
Report the Langfuse correlation ID or GitHub URL. If submission fails, give a safe error without exposing credentials or request bodies.
|
|
@@ -45,37 +45,11 @@ Rules:
|
|
|
45
45
|
|
|
46
46
|
### 3. Implement Score Creation
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
Fetch and follow the current [user feedback guide](https://langfuse.com/docs/observability/features/user-feedback) and [score ingestion docs](https://langfuse.com/docs/evaluation/evaluation-methods/scores-via-sdk) before editing code. They contain the current browser and server SDK APIs plus framework-specific patterns for returning trace IDs to the frontend.
|
|
49
49
|
|
|
50
|
-
**For
|
|
50
|
+
**For implicit feedback (server-side):** Create the score where the behavior is already handled in application code.
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
import { LangfuseWeb } from "langfuse";
|
|
54
|
-
|
|
55
|
-
const langfuse = new LangfuseWeb({
|
|
56
|
-
publicKey: process.env.NEXT_PUBLIC_LANGFUSE_PUBLIC_KEY!,
|
|
57
|
-
baseUrl: process.env.NEXT_PUBLIC_LANGFUSE_HOST,
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
langfuse.score({
|
|
61
|
-
traceId,
|
|
62
|
-
name: "user-thumbs",
|
|
63
|
-
value: 1, // 1 = positive, 0 = negative
|
|
64
|
-
dataType: "BOOLEAN",
|
|
65
|
-
comment: optionalUserComment,
|
|
66
|
-
});
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
The trace ID must be available in the frontend for this to work. For Vercel AI SDK, the non-obvious pattern is using `generateMessageId`:
|
|
70
|
-
|
|
71
|
-
```typescript
|
|
72
|
-
import { getActiveTraceId } from "@langfuse/tracing";
|
|
73
|
-
|
|
74
|
-
// Inside route handler wrapped with observe()
|
|
75
|
-
return result.toUIMessageStreamResponse({
|
|
76
|
-
generateMessageId: () => getActiveTraceId() || crypto.randomUUID(),
|
|
77
|
-
});
|
|
78
|
-
```
|
|
52
|
+
**For explicit feedback (frontend):** Make the relevant trace ID available to the frontend and use the current Langfuse browser SDK with a public key only. Never expose a Langfuse secret key in browser code.
|
|
79
53
|
|
|
80
54
|
### 4. Verify
|
|
81
55
|
|
|
@@ -87,6 +61,6 @@ Point users to what they can do with feedback data: filter traces by low scores,
|
|
|
87
61
|
|
|
88
62
|
| Mistake | Problem | Fix |
|
|
89
63
|
|---------|---------|-----|
|
|
90
|
-
| Secret key in frontend code | Security risk | Use
|
|
64
|
+
| Secret key in frontend code | Security risk | Use the current browser SDK with a public key only |
|
|
91
65
|
| Missing `dataType` on boolean scores | Value `1` inferred as `NUMERIC` | Always pass `dataType: "BOOLEAN"` explicitly |
|
|
92
66
|
| Inconsistent score names across the app | Can't aggregate or filter reliably | Pick one name per feedback type, use it everywhere |
|
|
@@ -35,7 +35,8 @@ Discover unstable schemas before use.
|
|
|
35
35
|
|
|
36
36
|
- Inventory every Langfuse SDK, integration, OTEL exporter, initialization site, lockfile, raw request, generated client, script, notebook, and CI call.
|
|
37
37
|
- Upgrade to the latest stable SDK major required by the current docs and apply every applicable breaking change. Record both declared and resolved versions; update an existing lockfile.
|
|
38
|
-
-
|
|
38
|
+
- Find every source of correlating attributes, including session and user IDs, tags, metadata, version, environment, and trace name; do not search only for removed SDK methods.
|
|
39
|
+
- Put overall input/output on the root observation. Establish the documented propagation scope before observation-producing calls so every applicable child receives the attributes needed for filtering and aggregation, including the session ID on cost-bearing generations.
|
|
39
40
|
- For raw `/api/public/ingestion`, use the current Langfuse SDK in Python or JS/TS. For other languages, use the language's native OpenTelemetry API and follow the custom-ingestion guide.
|
|
40
41
|
- When replacing synchronous ingestion, assess buffering, retries, flushing, shutdown, and error propagation. Do not claim identical delivery semantics without verification.
|
|
41
42
|
- For other deprecated APIs, migrate the path, parameters, pagination, filters, field groups, response parsing, and downstream consumer together using the deprecated-API guide.
|
|
@@ -68,6 +69,7 @@ Discover unstable schemas before use.
|
|
|
68
69
|
|
|
69
70
|
- Test applicable hierarchy, root input/output, propagated attributes, public/release/environment behavior, API pagination and parsing, delivery semantics, and absence of deprecated calls.
|
|
70
71
|
- Before production cutover, send representative traces from the migrated instrumentation to a non-production Langfuse project and inspect the resulting observations there. Mocked tests do not verify backend ingestion or project behavior.
|
|
72
|
+
- On a session path, confirm the root and every applicable child observation carry the intended session ID and that session cost includes the cost-bearing children.
|
|
71
73
|
- Re-read rules and integrations after writes. Preserve disabled legacy rules for rollback; never claim completion without checking the Evaluators UI on the target host for legacy rows.
|
|
72
74
|
- The readiness report must contain exactly these seven rows, each marked `ready`, `changed`, `manual action`, or `blocked`: project access; SDK/instrumentation; trace evaluators; dataset evaluators; direct APIs; exports; verification/rollback.
|
|
73
75
|
- In evaluator rows, separate contracts verified against project data from targets suggested only by code inspection. For every row not marked `ready`, include the blocker, next action, and a direct UI link when applicable.
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.7](https://github.com/supabase/agent-skills/compare/v0.1.6...supabase-v0.1.7) (2026-08-12)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **supabase:** add debugging workflows to the supabase skill ([#112](https://github.com/supabase/agent-skills/issues/112)) ([3a4f0ce](https://github.com/supabase/agent-skills/commit/3a4f0ce0782e0cbdcf187c362e8d15d9e324462b))
|
|
9
|
+
|
|
3
10
|
## [0.1.6](https://github.com/supabase/agent-skills/compare/v0.1.5...supabase-v0.1.6) (2026-07-30)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: supabase
|
|
3
|
-
description: "Use when doing ANY task involving Supabase. Triggers: Supabase products (Database, Auth, Edge Functions, Realtime, Storage, Vectors, Cron, Queues); client libraries and SSR integrations (supabase-js, @supabase/ssr) in Next.js, React, SvelteKit, Astro, Remix; auth issues (login, logout, sessions, JWT, cookies, getSession, getUser, getClaims, RLS); Supabase CLI or MCP server; schema changes, migrations, declarative schemas, security audits, Postgres extensions (pg_graphql, pg_cron, pg_vector)."
|
|
3
|
+
description: "Use when doing ANY task involving Supabase. Triggers: Supabase products (Database, Auth, Edge Functions, Realtime, Storage, Vectors, Cron, Queues); client libraries and SSR integrations (supabase-js, @supabase/ssr) in Next.js, React, SvelteKit, Astro, Remix; auth issues (login, logout, sessions, JWT, cookies, getSession, getUser, getClaims, RLS); Supabase CLI or MCP server; schema changes, migrations, declarative schemas, security audits, Postgres extensions (pg_graphql, pg_cron, pg_vector); debugging and troubleshooting errors or unexpected behavior on Supabase projects (HTTP errors, Postgres errors, RLS surprises, permission denied, schema cache issues, timeouts, Edge Function crashes, Realtime drops, Storage failures) and reading or querying logs (Logs Explorer, ClickHouse)."
|
|
4
4
|
metadata:
|
|
5
5
|
author: supabase
|
|
6
6
|
version: "0.1.2"
|
|
@@ -139,6 +139,10 @@ Do NOT use `apply_migration` to change a local database schema — it writes a m
|
|
|
139
139
|
3. **Generate the migration** → `supabase db pull <descriptive-name> --local --yes`
|
|
140
140
|
4. **Verify** → `supabase migration list --local`
|
|
141
141
|
|
|
142
|
+
## Debugging
|
|
143
|
+
|
|
144
|
+
When you get an error on a Supabase-related request, for example an error code from the Supabase REST API, Postgres database, or PostgREST, an empty result, getting blocked by RLS unexpectedly, or an error from a Supabase service like Auth, Realtime, Edge Functions, or Storage, you **must** fetch Supabase's [Monitoring and Debugging](https://supabase.com/docs/guides/monitoring-and-debugging.md) documentation before diagnosing or proposing a fix, rather than working from memory. The same docs also cover performance optimizations, such as slow queries and missing indexes.
|
|
145
|
+
|
|
142
146
|
## Reference Guides
|
|
143
147
|
|
|
144
148
|
- **Skill Feedback** → [references/skill-feedback.md](references/skill-feedback.md)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Siqi Chen
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|