Token导航 LogoToken导航

Agent Skill · 前端设计

integrating-convex-expo(积分凸博览会)

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

integrating-convex-expo 是前端设计类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证信息还不明确,第三方扫描已通过,按安装量在前端设计类的 10,216 个 Skill 里排第 4,179。

总安装 964周安装 39GitHub Stars 公开资料未说明下载 303核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:integrating-convex-expo(积分凸博览会)
来源仓库:https://github.com/tristanmanchester/agent-skills
仓库路径:skills/integrating-convex-expo
安装命令:
npx skills add https://github.com/tristanmanchester/agent-skills --skill integrating-convex-expo
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/tristanmanchester/agent-skills --skill integrating-convex-expo

这个 Skill 是做什么的

前端设计类 Skill 关注页面结构、视觉规范和组件写法,输出通常是可运行的界面代码。

辅助前端页面、组件和样式逻辑的开发与维护。适合生成或审查 React、Next.js、Tailwind 相关代码。使用时需结合项目设计系统和构建方式。涉及页面改动时应配合本地预览确认效果。integrating-convex-expo 属于前端设计类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/integrating-convex-expo

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/tristanmanchester/agent-skills --skill integra…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

integrating-convex-expo 怎么安装?

在终端执行 npx skills add https://github.com/tristanmanchester/agent-skills --skill integrating-conve…。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

integrating-convex-expo 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

integrating-convex-expo 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

integrating-convex-expo 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

integrating-convex-expo 用的人多吗?

公开数据是累计安装 964 次,近一周安装 39 次,下载 303 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

integrating-convex-expo 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理前端设计类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

前端设计类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
frontend-design

前端设计 · Codex、Claude

8,823,360126,072只读MIT通过
vercel-composition-patterns

Vercel 组合模式 · Codex、Claude

3,858,81625,893需要联网MIT通过
vercel-react-native-skills

Vercel React native skills 前端 · Codex、Claude

2,468,66425,878只读MIT通过
adapt

adapt 搜索 · Codex、Claude

2,027,04023,125操作浏览器未明确通过
bolder

bolder 分析 · Codex、Claude

2,004,28823,130只读未明确通过
integrating-convex-expo

积分凸博览会 · 本页

964—接触敏感数据未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Integrating Convex with Expo (React Native)

Use this skill to add, repair, extend, or harden a Convex backend for an Expo app without drifting into web-only patterns or generic React Native advice.

Use this skill for

  • Adding Convex to an existing Expo or Expo Router app.
  • Fixing broken environment setup, provider wiring, or generated API imports.
  • Building an end-to-end feature slice: schema, indexes, backend functions, frontend hooks, and validation.
  • Choosing and implementing auth for Expo + Convex.
  • Uploading files from Expo URIs into Convex storage.
  • Refactoring for pagination, indexes, migrations, or reusable components.
  • Hardening a project before preview or production release.

Do not use this skill for

  • Pure Expo UI, animation, navigation, or styling work with no Convex involvement.
  • Convex projects whose frontend is not Expo or React Native.
  • Generic backend architecture discussions that do not need Expo-specific environment or client wiring.

Success criteria

A good outcome should leave the project with:

  1. A single, correctly scoped Convex client and provider.
  2. Working EXPO_PUBLIC_CONVEX_URL handling in local development and EAS.
  3. Backend functions that match Convex best practices for validators, auth, actions, and query performance.
  4. Frontend hooks using generated api references with clear loading, empty, and error states.
  5. A validation pass using scripts/validate_project.py.
  6. A clear path for future growth: pagination, indexes, auth wrappers, migrations, and linting.

Non-negotiables

  • Keep npx convex dev running while developing or repairing the integration.
  • Read the deployment URL from process.env.EXPO_PUBLIC_CONVEX_URL.
  • Mirror that value into EAS environments for preview and production builds.
  • Create exactly one ConvexReactClient per app, outside render paths.
  • Mount the provider at the true root: app/_layout.tsx, src/app/_layout.tsx, or App.tsx.
  • In Expo and React Native, set unsavedChangesWarning: false.
  • Import generated references from convex/_generated/api rather than stringly typed names.
  • Treat all client-callable Convex functions as untrusted entry points.
  • Add args validators to public functions, and prefer returns validators as well.
  • Keep public wrappers thin; move repeated logic into helpers, internal functions, or custom wrappers.
  • Do not use Date.now() or new Date() inside query logic.
  • Do not use Node-only APIs or third-party SDKs inside queries or mutations.
  • Put external API calls, heavy compute, or Node-only libraries in action or internalAction files; if a file starts with "use node", keep it action-only.
  • Avoid .filter() and unbounded .collect() on large tables; prefer indexes plus pagination.
  • Await every promise.
  • Prefer TypeScript strict mode and the official Convex ESLint plugin.

First-pass triage

Before making changes, inspect the project and classify the job.

1. Identify the app entrypoint

Check for:

  • app/_layout.tsx or src/app/_layout.tsx for Expo Router.
  • App.tsx or App.jsx for classic entrypoints.

2. Audit Convex state

Look for:

  • package.json dependencies: convex, expo, auth libraries, ESLint tooling.
  • convex/ and convex/_generated/.
  • .env.local, .env, .env.development, .env.production.
  • eas.json if cloud builds matter.
  • Existing provider usage: ConvexProvider, ConvexProviderWithClerk, or custom auth wrappers.
  • Existing schema and indexes in convex/schema.ts.
  • Existing public functions with missing validators, auth checks, or pagination.

3. Run the validator

From the project root:

python scripts/validate_project.py --root <project-root>

Use --json for machine-readable output or --fail-on-warning when you want stricter gating.

4. Choose the workflow

  • Bootstrap / repair baseline: missing Convex setup, env vars, provider, or generated API.
  • Build a feature slice: add backend data and UI together.
  • Auth: add or repair sign-in and backend authorization.
  • File uploads: move media or documents from device URIs into Convex storage.
  • Scale / harden: indexes, pagination, components, linting, production checklist.
  • Migration: reshape existing tables or gradually move from another backend.

Workflow A — Bootstrap or repair the baseline integration

Step 1: Install or confirm the client package

npx expo install convex

Step 2: Create or reconnect the Convex project

npx convex dev

Expect this to:

  • create or connect a Convex project,
  • create convex/ if missing,
  • generate convex/_generated/,
  • write EXPO_PUBLIC_CONVEX_URL to .env.local,
  • and keep syncing while the command runs.

Step 3: Ensure the root provider exists

For Expo Router:

import { ConvexProvider, ConvexReactClient } from "convex/react";
import { Stack } from "expo-router";

const convex = new ConvexReactClient(process.env.EXPO_PUBLIC_CONVEX_URL!, {
  unsavedChangesWarning: false,
});

export default function RootLayout() {
  return (
    <ConvexProvider client={convex}>
      <Stack />
    </ConvexProvider>
  );
}

For classic App.tsx, wrap the top-level navigation tree the same way.

Step 4: Confirm generated imports

Use:

import { api } from "../convex/_generated/api";

or the correct relative path for the project layout. Do not hand-write function names.

Step 5: Verify development and build environments

Read references/eas-env.md and ensure the same deployment URL policy is reflected in EAS.

Step 6: Validate and smoke-test

  • Start the Expo app.
  • Confirm useQuery(...) moves from undefined to real data.
  • Run python scripts/validate_project.py --root <project-root>.
  • If needed, scaffold the canonical example with python scripts/scaffold_tasks_example.py --root <project-root>.

Workflow B — Build a feature slice end to end

Build each feature in the order below.

1. Model the access pattern first

Before touching code, answer:

  • Is the data public, user-scoped, org-scoped, or admin-only?
  • Will the list stay small, or should it paginate?
  • Which fields are lookup keys and therefore need indexes?
  • Does any step require an external API, AI SDK, Stripe, or Node API?

2. Design the schema

Add or extend convex/schema.ts before the function layer whenever the model is stabilising.

Use references/schema-and-indexes.md for:

  • flat relational modelling,
  • foreign-key indexing,
  • compound indexes around actual query shapes,
  • bounded array guidance,
  • and pagination thresholds.

3. Implement backend functions

Use references/functions.md for the detailed patterns.

Default rules:

  • query for deterministic reads.
  • mutation for writes.
  • action or internalAction for external APIs, third-party SDKs, or Node-only code.
  • internalQuery or internalMutation for logic that should never be callable from the client.

4. Enforce access on the backend

If the feature is not public, do one of these:

  • explicit ctx.auth.getUserIdentity() checks in each function, or
  • reusable custom wrappers via convex-helpers.

See references/auth.md and references/components-and-helpers.md.

5. Wire the frontend

Use references/frontend-patterns.md.

Always handle:

  • loading: useQuery(...) === undefined,
  • empty state,
  • mutation pending state where relevant,
  • recoverable errors,
  • and pagination for unbounded lists.

6. Validate the slice

Before finishing:

  • run the validator with the project root,
  • run lint and typecheck if the project has them,
  • verify the feature on device or simulator,
  • and update or add indexes before shipping.

Workflow C — Authentication and authorization

Pick one auth story and keep the stack coherent.

Option 1: Clerk

Good when the app already uses Clerk or wants a polished auth product.

Option 2: Convex Auth

Good when you want a Convex-native auth stack and are comfortable adopting a beta library.

Option 3: Existing JWT or OIDC provider

Good when the product already depends on Auth0, WorkOS, a company IdP, or another OIDC flow.

Rules regardless of provider

  • Backend authorization is mandatory; client-side gating is only for UX.
  • If you persist users in Convex, index by a stable identifier such as tokenIdentifier.
  • Check ownership, organisation membership, or role on every protected function.
  • Prefer helper functions or custom wrappers instead of repeating auth boilerplate.
  • Use internal functions for privileged internal-only operations.

Read references/auth.md for a decision matrix and implementation patterns.

Workflow D — File uploads from Expo

Use Convex upload URLs rather than trying to push raw files through a mutation.

Recommended flow:

  1. public or protected mutation returns ctx.storage.generateUploadUrl(),
  2. client loads the local file:// URI with fetch(uri) and converts it to a Blob,
  3. client POSTs the blob to the upload URL,
  4. second mutation stores the returned storageId plus app-specific metadata,
  5. optional scheduled or action-based post-processing happens afterwards.

Read references/file-uploads.md.

Workflow E — Scale and harden

Once the baseline works, raise the quality bar.

Performance

  • Replace .filter() scans with indexed queries where possible.
  • Replace unbounded .collect() with take, first, or paginated queries.
  • Use usePaginatedQuery for growing feeds, notifications, and infinite-scroll screens.
  • Push repeated or reusable feature areas into Convex components when boundaries are clear.

Safety

  • Add validators consistently.
  • Keep privileged logic behind internal functions.
  • Use ConvexError or clear return shapes for expected failures.
  • Never trust IDs from the client without checking ownership or membership.

Maintainability

  • Turn on @convex-dev/eslint-plugin.
  • Use TypeScript strict mode.
  • Keep wrappers thin and move shared logic into plain TypeScript helpers.
  • Separate "use node" action files from regular runtime files.

Read references/production-checklist.md.

Workflow F — Migrations

When changing a live schema, prefer additive transitions.

Default migration strategy:

  1. add new fields or tables in a backwards-compatible way,
  2. dual-read or dual-write if the shape is changing,
  3. backfill existing documents in idempotent batches,
  4. switch readers and writers,
  5. then remove the old shape.

Use internal functions or scheduled jobs for backfills, and keep migrations restart-safe.

Read references/migrations.md.

Fast troubleshooting path

If the app is broken, check these in order:

  1. Is npx convex dev running and free of TypeScript errors?
  2. Does .env.local contain EXPO_PUBLIC_CONVEX_URL?
  3. Was Metro restarted after the env file changed?
  4. Is there exactly one ConvexReactClient?
  5. Is the provider mounted at the real root?
  6. Does convex/_generated/api exist, and are imports pointing at it correctly?
  7. Are public functions missing args or returns validators?
  8. Is a query using Date.now(), .filter(), or unbounded .collect()?
  9. Is a "use node" file incorrectly mixing queries or mutations?
  10. Is auth mismatched between the client provider and the backend config?

See references/troubleshooting.md.

Available scripts

  • scripts/validate_project.py

- Validates the project rooted at --root or, if copied into a repo, the current working tree. - Validates Expo and Convex dependencies. - Checks env files, provider wiring, generated code, validator presence, "use node" misuse, and common query anti-patterns. - Supports --json, --root, and --fail-on-warning.

  • scripts/scaffold_tasks_example.py

- Dry-run by default. - Can generate sampleData.jsonl, convex/schema.ts, convex/tasks.ts, and an optional Expo screen file. - Supports --write, --overwrite, --ui-file, and --json.

References

Load only the file that matches the current task.

平台分布

Codex

35.13%
按下载量换算106

Claude

29.13%
按下载量换算88

Cursor

17.41%
按下载量换算53

Gemini CLI

8.81%
按下载量换算27

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills