ソース情報
- リポジトリ
- saleor/apps
- ソースの最終更新活動
- 2026年1月27日 13:25
- 検出された SKILL.md の言語
- 英語
- スター
- 162
- フォーク
- 407
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/saleor/apps --skill add-environment-variableコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
Styling and layout guide for Saleor Apps using modern macaw-ui and @saleor/apps-ui-next. Use when creating, refactoring, or modifying React components in apps or packages/ui-next — especially layout, spacing, colors, borders, setup checklists, or settings cards. Triggers on component creation, UI refactors, and style-related tasks in the apps monorepo.
Scaffold a new shared package in the saleor-apps monorepo under ./packages/. Use when asked to "create a package", "add a new package", "scaffold a package", "new shared library", or any task that involves creating a new reusable package in the saleor-apps monorepo. Handles all boilerplate - package.json, tsconfig, eslint, vitest, turbo, lint-staged configs, and src/index.ts.
SOC 職業分類に基づく
SKILL.md を表示中
| name | Add Environment Variable |
| description | Use when adding a new environment variable to an app. |
When adding a new environment variable to an app, follow these steps:
Find the env.ts or env.mjs file in the app that uses @t3-oss/env-nextjs. Common locations:
apps/<app-name>/src/env.tsapps/<app-name>/src/lib/env.tsThe createEnv function has three sections:
client: For variables prefixed with NEXT_PUBLIC_ (exposed to browser)server: For server-only variables (secrets, API keys, configuration)shared: For variables used in both client and server (like NODE_ENV)Use appropriate Zod schemas with validation:
// Required string
MY_VAR: z.string(),
// Optional string
MY_VAR: z.string().optional(),
// String with default value (preferred over defaults elsewhere in code)
MY_VAR: z.string().optional().default("default-value"),
// Number (use z.coerce for env vars)
MY_VAR: z.coerce.number().optional().default(5000),
// Enum
MY_VAR: z.enum(["option1", "option2"]).optional().default("option1"),
// Boolean (use the booleanSchema helper already defined in the file)
MY_VAR: booleanSchema.optional().default("false"),
// Positive number with constraints
MY_VAR: z.coerce.number().positive().optional().default(14),
// Comma-separated list transformed to array
MY_VAR: z
.string()
.optional()
.transform((s) => {
if (!s) return [];
return s.split(",").map((item) => item.trim());
}),
Add a JSDoc-style comment above the variable explaining its purpose:
server: {
// Timeout in milliseconds for Algolia API requests
ALGOLIA_TIMEOUT_MS: z.coerce.number().optional().default(5000),
// Number of items to process in a single batch during Strapi sync
STRAPI_BATCH_SIZE: z.coerce.number().optional().default(50),
}
Every variable must also be added to the runtimeEnv object:
runtimeEnv: {
// ... existing vars
MY_VAR: process.env.MY_VAR,
}
Always define default values in the env.ts file, not in the consuming code.
Bad:
// In env.ts
MY_TIMEOUT: z.coerce.number().optional(),
// In some-service.ts
const timeout = env.MY_TIMEOUT ?? 5000; // DON'T DO THIS
Good:
// In env.ts
// Timeout for external API calls in milliseconds
MY_TIMEOUT: z.coerce.number().optional().default(5000),
// In some-service.ts
const timeout = env.MY_TIMEOUT; // Already has the default
If the app has a .env.example file, add the new variable there with a placeholder or example value.
Adding MY_SERVICE_TIMEOUT_MS to the CMS app:
// In apps/cms/src/env.ts
export const env = createEnv({
server: {
// ... existing vars
// Timeout in milliseconds for My Service API calls
MY_SERVICE_TIMEOUT_MS: z.coerce.number().optional().default(10_000),
},
runtimeEnv: {
// ... existing vars
MY_SERVICE_TIMEOUT_MS: process.env.MY_SERVICE_TIMEOUT_MS,
},
});
Usage in code:
import { env } from "@/env";
const client = new MyServiceClient({
timeout: env.MY_SERVICE_TIMEOUT_MS,
});