[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CHX1NARGVYWP08DA615NE8":3,"skill-same:01M6CHX1NARGVYWP08DA615NE8":103},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6CHX1NARGVYWP08DA615NE8","project-setup",null,"Initialize development toolchains and conventions for new projects. Includes AGENTS.md, Prettier formatting, Vitest testing, AI agent skills, next-intl internationalization, and optional SaaS features (Supabase Auth\u002FDB, Creem payments). Use when initializing new projects, scaffolding project structure, or configuring development toolchains.","Yukiniro\u002Fskills","Yukiniro","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F21242087?v=4","01M6CHWDY0NKQKGFCYMGSCTQ2X","Zhanghao","01M6CHWE1Z4CEH54PB0XJESZ0Z",0,"MIT","https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fproject-setup\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"setup","project setup","testing","ai agent","project structure","auth","development","supabase","payments","saas","vitest","projects","initialize","use","vitest testing","2026-11-10 10:12:30",false,"---\nname: project-setup\ndescription: Initialize development toolchains and conventions for new projects. Includes AGENTS.md, Prettier formatting, Vitest testing, AI agent skills, next-intl internationalization, and optional SaaS features (Supabase Auth\u002FDB, Creem payments). Use when initializing new projects, scaffolding project structure, or configuring development toolchains.\n---\n\n# Project Setup\n\nQuickly configure development toolchains, code standards, and AI agent skills for new projects. Automatically detects the project environment and adapts to the host project's package manager, framework, and existing toolchain. For Next.js SaaS projects, optionally configures Supabase authentication, database access, and Creem payment\u002Fsubscription integration.\n\n## Use Cases\n\n- Initialize development environment for new projects\n- Add standardized toolchain to existing projects\n- Configure code formatting, test framework, and AI skills\n- Configure internationalization for Next.js projects\n- Configure Supabase Auth, Database, and Creem subscription for Next.js SaaS projects\n\n## Workflow\n\nWhen executing the following steps, always detect the environment first, then adjust configuration based on the actual setup.\n\n### Step 1: Environment Detection\n\nBefore performing any operations, gather host project information:\n\n**Check package manager** (determine by lockfile):\n\n- `pnpm-lock.yaml` → use `pnpm add -D`\n- `yarn.lock` → use `yarn add -D`\n- `package-lock.json` → use `npm install -D`\n- `bun.lockb` → use `bun add -D`\n\n**Check project type** (read `package.json` dependencies):\n\n- Contains `next` → Next.js project\n- Contains `vite` → Vite project\n- Other → Generic Node.js project\n\n**Check TypeScript**:\n\n- `tsconfig.json` exists → TypeScript project (config files use `.ts`)\n- Does not exist → JavaScript project (config files use `.js` or `.mjs`)\n\n**Check existing toolchain** (read `package.json` devDependencies):\n\n- `@antfu\u002Feslint-config` + `eslint-plugin-format` → Prettier already integrated via ESLint\n- `eslint-plugin-prettier` → Prettier already integrated via ESLint\n- `prettier` → Standalone Prettier already exists\n- `vitest` → Vitest already exists\n\n**Check build tools**:\n\n- Vite project: check for `vite.config.ts` \u002F `vite.config.js`\n\n**Check SaaS dependencies** (read `package.json` dependencies):\n\n- `@supabase\u002Fsupabase-js` or `@supabase\u002Fssr` → Supabase project (auth and\u002For database)\n- Check for `.env.local` or `.env.example` containing `CREEM_API_KEY` → Creem payment configured\n\n**Check SaaS file structure**:\n\n- `lib\u002Fsupabase\u002F` directory exists → Supabase client layer already set up\n- `app\u002Fapi\u002Fwebhooks\u002Fcreem\u002F` directory exists → Creem webhook handler already present\n- `lib\u002Fproducts.ts` or `lib\u002Fplans.ts` exists → Payment\u002Fsubscription product config present\n\n### Step 2: Feature Selection\n\nAfter environment detection, ask the user which optional features they want to configure. If the user has already specified the modules in their initial request, skip the inquiry and proceed directly.\n\nPresent the following options to the user:\n\n```\nPlease select the features to configure (multiple selections allowed):\n\nDefault (always enabled):\n- [x] AGENTS.md project conventions\n- [x] Prettier code formatting\n- [x] Vitest testing framework\n- [x] AI Agent Skills\n- [x] ESLint code linting\n\nOptional (select as needed):\n- [ ] next-intl internationalization (Next.js projects)\n- [ ] Supabase Auth authentication\n- [ ] Supabase Database\n- [ ] Creem Subscription payments\n```\n\nIf environment detection found existing modules, annotate the options accordingly (e.g., \"Supabase Auth (already detected)\").\n\nThe following steps 3-6 and 11 are always executed. Steps 7-10 are only executed if the user selected them.\n\n### Step 3: Create AGENTS.md\n\nRead the template from `templates\u002FAGENTS.md` and adjust based on detection results:\n\n1. Replace package manager commands (`pnpm` \u002F `yarn` \u002F `npm` \u002F `bun`)\n2. Adjust build commands and file structure descriptions based on project type\n3. If TypeScript project, ensure `type-check` command is included\n4. Write the adjusted content to `AGENTS.md` in the project root\n\n### Step 4: Configure Prettier\n\nRefer to `templates\u002Fprettier.config.md`.\n\n**If Prettier is already integrated via ESLint** (`@antfu\u002Feslint-config` or `eslint-plugin-prettier`):\n\n- Skip installation and config file creation\n- Only verify `package.json` has `format` and `format:check` scripts\n- If missing, add scripts suitable for the ESLint integration approach\n\n**If no Prettier**:\n\n1. Install using the detected package manager: `\u003Cpm> add -D prettier`\n2. Create `.prettierrc` config file\n3. Create `.prettierignore` file\n4. Add scripts to `package.json`:\n   ```json\n   {\n     \"format\": \"prettier --write .\",\n     \"format:check\": \"prettier --check .\"\n   }\n   ```\n\n**If Prettier already exists**:\n\n- Check for config file, create one if missing\n- Check for scripts, add them if missing\n\n### Step 5: Configure Vitest\n\nRefer to `templates\u002Fvitest.config.md`.\n\n**If Vitest already exists**:\n\n- Check for config file, create one if missing\n- Check for test scripts, add them if missing\n\n**If no Vitest**:\n\n1. Install using the detected package manager:\n\n   ```bash\n   \u003Cpm> add -D vitest @vitest\u002Fcoverage-v8\n   ```\n\n2. Create config file:\n   - **Vite project**: Add test config to `vite.config.ts`, or create standalone `vitest.config.ts`\n   - **Next.js \u002F other projects**: Create standalone `vitest.config.ts` or `vitest.config.mjs`\n   - Use `.ts` extension (TypeScript project) or `.mjs` extension (JavaScript project)\n\n3. Add scripts to `package.json`:\n\n   ```json\n   {\n     \"test\": \"vitest\",\n     \"test:run\": \"vitest run\",\n     \"test:coverage\": \"vitest run --coverage\",\n     \"test:ui\": \"vitest --ui\"\n   }\n   ```\n\n4. Optional: Create `vitest.setup.ts` for global test configuration\n\n### Step 6: Install AI Agent Skills\n\nUse the `npx skills add` command to install third-party skills into project-level `.cursor\u002F`, `.claude\u002F`, and `.agents\u002F` directories.\n\n**Important**: Ensure you run these commands from the project root.\n\nExecute the following commands sequentially (run each command individually, wait for completion before running the next):\n\n```bash\n# 1. Vercel React best practices + web design guidelines\nnpx skills add vercel-labs\u002Fagent-skills --skill vercel-react-best-practices web-design-guidelines --agent cursor claude-code agents -y\n\n# 2. Frontend design guidelines\nnpx skills add anthropics\u002Fskills --skill frontend-design --agent cursor claude-code agents -y\n\n# 3. shadcn\u002Fui component patterns\nnpx skills add giuseppe-trisciuoglio\u002Fdeveloper-kit --skill shadcn-ui --agent cursor claude-code agents -y\n\n# 4. Vitest testing framework\nnpx skills add antfu\u002Fskills --skill vitest --agent cursor claude-code agents -y\n```\n\n**Notes**:\n\n- These commands will automatically create `.cursor\u002Fskills\u002F`, `.claude\u002Fskills\u002F`, and `.agents\u002Fskills\u002F` directories\n- If a command fails, check network connectivity and npm configuration\n- Once installed, these skills will be available in all supported AI agents\n\n### Step 7: Configure next-intl (User selected)\n\nRefer to `templates\u002Fnext-intl.config.md`.\n\n**Only execute this step if the user selected next-intl in Step 2.**\n\n1. Install using the detected package manager:\n\n   ```bash\n   \u003Cpm> add next-intl\n   ```\n\n2. Create `i18n\u002F` directory and config files:\n   - `i18n\u002Frouting.ts` - Define supported locales and default locale\n   - `i18n\u002Frequest.ts` - Configure request handling\n   - `i18n\u002Fnavigation.ts` - Export internationalized navigation components\n\n3. Create `languages\u002F` directory and translation files:\n   - `languages\u002Fen.json` - English translations\n   - `languages\u002Fzh-CN.json` - Simplified Chinese translations\n   - Add other languages as needed\n\n4. Use `proxy.ts` instead of `middleware.ts`, otherwise you will get a warning: `The \"middleware\" file convention is deprecated. Please use \"proxy\" instead. Learn more: https:\u002F\u002Fnextjs.org\u002Fdocs\u002Fmessages\u002Fmiddleware-to-proxy`\n\n5. Update `AGENTS.md` to add internationalization-related instructions\n\n### Step 8: Configure Supabase Auth (User selected)\n\nRefer to `templates\u002Fsupabase-auth.config.md`.\n\n**Only execute this step if the user selected Supabase Auth in Step 2.**\n\n**If Supabase Auth is already configured** (`lib\u002Fsupabase\u002Fclient.ts` exists):\n\n- Verify all three client variants exist (browser, server, middleware)\n- Check for auth callback route\n- Check for auth middleware\u002Fproxy configuration\n- Skip to the next step\n\n**If no Supabase Auth**:\n\n1. Install using the detected package manager:\n\n   ```bash\n   \u003Cpm> add @supabase\u002Fsupabase-js @supabase\u002Fssr\n   ```\n\n2. Create `lib\u002Fsupabase\u002F` directory with client files:\n   - `lib\u002Fsupabase\u002Fclient.ts` - Browser client (uses `createBrowserClient`)\n   - `lib\u002Fsupabase\u002Fserver.ts` - Server client (uses `createServerClient` with cookie management)\n   - `lib\u002Fsupabase\u002Fmiddleware.ts` - Middleware client (for auth in proxy\u002Fmiddleware)\n\n3. Create auth callback route:\n   - `app\u002Fauth\u002Fcallback\u002Froute.ts` - OAuth callback handler (exchanges code for session)\n\n4. Configure auth middleware:\n   - Next.js 16+: Add auth logic to `proxy.ts` (not `middleware.ts`)\n   - Next.js 15 and earlier: Add auth logic to `middleware.ts`\n   - Protect authenticated routes (e.g., `\u002Fwork`, `\u002Fdashboard`)\n   - Redirect unauthenticated users to login page\n\n5. Add environment variables to `.env.example`:\n   - `NEXT_PUBLIC_SUPABASE_URL`\n   - `NEXT_PUBLIC_SUPABASE_ANON_KEY`\n\n6. Optional: Create `hooks\u002Fuse-auth.ts` custom hook for client-side auth state\n\n### Step 9: Configure Supabase Database (User selected)\n\nRefer to `templates\u002Fsupabase-db.config.md`.\n\n**Only execute this step if the user selected Supabase Database in Step 2.**\n\n**If Supabase database queries already exist** (grep for `.from(` in `lib\u002F` or `app\u002F`):\n\n- Verify server client is configured for database operations\n- Check for admin client if webhook handlers exist\n- Skip to the next step\n\n**If no Supabase Database setup**:\n\n1. Ensure `@supabase\u002Fsupabase-js` is installed (should be done in Step 8)\n\n2. Verify server client in `lib\u002Fsupabase\u002Fserver.ts` supports database queries\n\n3. Create admin client for server-side operations requiring elevated privileges:\n   - `lib\u002Fsupabase\u002Fadmin.ts` - Uses `SUPABASE_SERVICE_ROLE_KEY` (server-only, never exposed to client)\n\n4. Create database type definitions:\n   - Define TypeScript types for your database tables\n   - Or use `npx supabase gen types typescript` to auto-generate from schema\n\n5. Add environment variables to `.env.example`:\n   - `SUPABASE_SERVICE_ROLE_KEY` (server-only)\n\n6. Document Row-Level Security (RLS) conventions:\n   - All tables should have RLS enabled\n   - Filter by `user_id` for user-scoped data\n   - Use service role key only in trusted server-side contexts\n\n### Step 10: Configure Creem Subscription (User selected)\n\nRefer to `templates\u002Fcreem-subscription.config.md`.\n\n**Only execute this step if the user selected Creem Subscription in Step 2.**\n\n**If Creem is already configured** (`app\u002Fapi\u002Fwebhooks\u002Fcreem\u002F` exists):\n\n- Verify webhook handler, product config, and checkout flow\n- Skip to the next step\n\n**If no Creem setup**:\n\n1. Create product\u002Fplan configuration:\n   - `lib\u002Fproducts.ts` - Define product tiers, pricing, feature limits, Creem product IDs\n   - `lib\u002Fconstants.ts` - Define free\u002Fpro tier limits, optional whitelist\n\n2. Create checkout server action:\n   - `app\u002Factions\u002Fsubscription.ts` - `createCheckout()` and `getSubscriptionStatus()` server actions\n   - Calls Creem API to create checkout session\n   - Returns checkout URL for client-side redirect\n\n3. Create webhook handler:\n   - `app\u002Fapi\u002Fwebhooks\u002Fcreem\u002Froute.ts` - POST handler for Creem webhook events\n   - Implement HMAC-SHA256 signature verification\n   - Handle events: `checkout.completed`, `subscription.active`, `subscription.paid`, `subscription.canceled`, `subscription.expired`, `subscription.paused`, `subscription.past_due`, `subscription.scheduled_cancel`\n   - Update subscription status in Supabase database using admin client\n\n4. Create subscription utilities:\n   - `hooks\u002Fuse-subscription.ts` - Client-side hook for subscription status (uses SWR)\n   - Implement tier-based feature gating (free vs pro limits)\n\n5. Add environment variables to `.env.example`:\n   - `CREEM_API_KEY` - Creem API key\n   - `CREEM_WEBHOOK_SECRET` - Webhook signature verification secret\n   - `NODE_TARGET` - Environment target (production\u002Fstaging)\n   - `NEXT_PUBLIC_SITE_URL` - Site URL for checkout redirect\n   - `NEXT_PUBLIC_PROJECT_ID` - Creem product ID\n\n6. Create `subscriptions` table in Supabase (provide SQL to user):\n   - Columns: `id`, `user_id`, `creem_subscription_id`, `creem_customer_id`, `status`, `product_id`, `current_period_start`, `current_period_end`\n   - Enable RLS with user-scoped read policy\n\n### Step 11: Configure Lint\n\nConfigure ESLint based on https:\u002F\u002Fgithub.com\u002Fantfu\u002Feslint-config. The config should include:\n\n```js\nimport antfu from \"@antfu\u002Feslint-config\";\n\nexport default antfu({\n  formatters: true,\n  react: true,\n  stylistic: false,\n  ignores: [\n    \".agents\u002F**\u002F*\",\n    \".claude\u002F**\u002F*\",\n    \".cursor\u002F**\u002F*\",\n    \".vscode\u002F**\u002F*\",\n    \"components\u002Fai-elements\u002F**\u002F*\",\n    \"components\u002Fui\u002F**\u002F*\",\n  ],\n});\n```\n\n### Step 12: Verification Checklist\n\nAfter completing all configurations, present the following checklist to the user. Only include items that were actually configured based on the user's selection in Step 2:\n\n```\n✓ Project Setup Complete\n\nEnvironment Info:\n- Package manager: \u003Cdetected-pm>\n- Project type: \u003Cdetected-type>\n- TypeScript: \u003Cyes\u002Fno>\n\nCompleted Configurations:\n- [x] AGENTS.md created\n- [x] Prettier configured (\u003Cstandalone\u002FESLint-integrated\u002Falready existed>)\n- [x] Vitest configured (\u003Cnewly installed\u002Falready existed>)\n- [x] AI Skills installed (4 skills)\n- [x] ESLint configured\n- [x] next-intl configured (if selected)\n- [x] Supabase Auth configured (if selected)\n- [x] Supabase Database configured (if selected)\n- [x] Creem Subscription configured (if selected)\n\nNext Steps:\n1. Run `\u003Cpm> install` to install dependencies\n2. Run `\u003Cpm> run format` to format code\n3. Run `\u003Cpm> run test` to verify test configuration\n4. Review AGENTS.md for project conventions\n5. Set up Supabase project at https:\u002F\u002Fsupabase.com and add env vars (if Supabase selected)\n6. Configure Creem account at https:\u002F\u002Fcreem.io and add env vars (if Creem selected)\n```\n\n## Template Files\n\nThis skill includes the following template files in the `templates\u002F` directory:\n\n- `AGENTS.md` - Project development conventions template\n- `prettier.config.md` - Prettier configuration reference\n- `vitest.config.md` - Vitest configuration reference\n- `next-intl.config.md` - next-intl configuration reference\n- `supabase-auth.config.md` - Supabase Auth configuration reference\n- `supabase-db.config.md` - Supabase Database configuration reference\n- `creem-subscription.config.md` - Creem payment\u002Fsubscription configuration reference\n\nRead these template files for detailed configuration content when executing setup.\n\n## Troubleshooting\n\n### Prettier and ESLint Conflicts\n\nIf the project uses both Prettier and ESLint, ensure:\n\n- When using `@antfu\u002Feslint-config`, the formatters option is enabled\n- When using `eslint-plugin-prettier`, extends is configured correctly\n- When using standalone Prettier, add `.prettierignore` to avoid formatting conflicts\n\n### Vitest Configuration in Next.js\n\nNext.js projects require special Vitest configuration:\n\n- Use the `next()` helper to handle Next.js-specific features\n- Configure path alias mapping (`@\u002F` → `.\u002Fsrc\u002F`)\n- Set the correct test environment (usually `node` or `jsdom`)\n\n### Supabase Auth Issues\n\nIf authentication is not working:\n\n- Verify `NEXT_PUBLIC_SUPABASE_URL` and `NEXT_PUBLIC_SUPABASE_ANON_KEY` are set correctly\n- Check that the auth callback route matches the redirect URL in Supabase dashboard\n- Ensure `proxy.ts` (Next.js 16) or `middleware.ts` correctly refreshes the session\n- For OAuth providers, verify the callback URL is registered in Supabase Auth settings\n\n### Creem Webhook Issues\n\nIf webhooks are not being received:\n\n- Verify `CREEM_WEBHOOK_SECRET` matches the secret in Creem dashboard\n- Ensure the webhook URL is publicly accessible (use ngrok for local development)\n- Read the request body as raw text (`req.text()`) before parsing for signature verification\n- Check HMAC-SHA256 signature verification logic\n- Review webhook event payload structure against Creem API documentation\n\n### Skills Installation Failure\n\nIf `npx skills add` fails:\n\n- Check network connectivity\n- Try clearing npm cache: `npm cache clean --force`\n- Manually set npm registry: `npm config set registry https:\u002F\u002Fregistry.npmjs.org\u002F`\n- Review detailed error messages and follow the instructions\n\n## Best Practices\n\n1. **Environment detection first**: Always detect the environment first to avoid assumptions about project configuration\n2. **Avoid overwriting**: Check for existing configurations; only create new files when missing\n3. **Adapt to package manager**: Use the project's existing package manager for consistency\n4. **Incremental configuration**: Configure basic tools first, then add advanced features\n5. **Verify configuration**: After setup, suggest users run relevant commands to verify\n","# Project Setup\n\nQuickly configure development toolchains, code standards, and AI agent skills for new projects. Automatically detects the project environment and adapts to the host project's package manager, framework, and existing toolchain. For Next.js SaaS projects, optionally configures Supabase authentication, database access, and Creem payment\u002Fsubscription integration.\n\n## Use Cases\n\n- Initialize development environment for new projects\n- Add standardized toolchain to existing projects\n- Configure code formatting, test framework, and AI skills\n- Configure internationalization for Next.js projects\n- Configure Supabase Auth, Database, and Creem subscription for Next.js SaaS projects\n\n## Workflow\n\nWhen executing the following steps, always detect the environment first, then adjust configuration based on the actual setup.\n\n### Step 1: Environment Detection\n\nBefore performing any operations, gather host project information:\n\n**Check package manager** (determine by lockfile):\n\n- `pnpm-lock.yaml` → use `pnpm add -D`\n- `yarn.lock` → use `yarn add -D`\n- `package-lock.json` → use `npm install -D`\n- `bun.lockb` → use `bun add -D`\n\n**Check project type** (read `package.json` dependencies):\n\n- Contains `next` → Next.js project\n- Contains `vite` → Vite project\n- Other → Generic Node.js project\n\n**Check TypeScript**:\n\n- `tsconfig.json` exists → TypeScript project (config files use `.ts`)\n- Does not exist → JavaScript project (config files use `.js` or `.mjs`)\n\n**Check existing toolchain** (read `package.json` devDependencies):\n\n- `@antfu\u002Feslint-config` + `eslint-plugin-format` → Prettier already integrated via ESLint\n- `eslint-plugin-prettier` → Prettier already integrated via ESLint\n- `prettier` → Standalone Prettier already exists\n- `vitest` → Vitest already exists\n\n**Check build tools**:\n\n- Vite project: check for `vite.config.ts` \u002F `vite.config.js`\n\n**Check SaaS dependencies** (read `package.json` dependencies):\n\n- `@supabase\u002Fsupabase-js` or `@supabase\u002Fssr` → Supabase project (auth and\u002For database)\n- Check for `.env.local` or `.env.example` containing `CREEM_API_KEY` → Creem payment configured\n\n**Check SaaS file structure**:\n\n- `lib\u002Fsupabase\u002F` directory exists → Supabase client layer already set up\n- `app\u002Fapi\u002Fwebhooks\u002Fcreem\u002F` directory exists → Creem webhook handler already present\n- `lib\u002Fproducts.ts` or `lib\u002Fplans.ts` exists → Payment\u002Fsubscription product config present\n\n### Step 2: Feature Selection\n\nAfter environment detection, ask the user which optional features they want to configure. If the user has already specified the modules in their initial request, skip the inquiry and proceed directly.\n\nPresent the following options to the user:\n\n```\nPlease select the features to configure (multiple selections allowed):\n\nDefault (always enabled):\n- [x] AGENTS.md project conventions\n- [x] Prettier code formatting\n- [x] Vitest testing framework\n- [x] AI Agent Skills\n- [x] ESLint code linting\n\nOptional (select as needed):\n- [ ] next-intl internationalization (Next.js projects)\n- [ ] Supabase Auth authentication\n- [ ] Supabase Database\n- [ ] Creem Subscription payments\n```\n\nIf environment detection found existing modules, annotate the options accordingly (e.g., \"Supabase Auth (already detected)\").\n\nThe following steps 3-6 and 11 are always executed. Steps 7-10 are only executed if the user selected them.\n\n### Step 3: Create AGENTS.md\n\nRead the template from `templates\u002FAGENTS.md` and adjust based on detection results:\n\n1. Replace package manager commands (`pnpm` \u002F `yarn` \u002F `npm` \u002F `bun`)\n2. Adjust build commands and file structure descriptions based on project type\n3. If TypeScript project, ensure `type-check` command is included\n4. Write the adjusted content to `AGENTS.md` in the project root\n\n### Step 4: Configure Prettier\n\nRefer to `templates\u002Fprettier.config.md`.\n\n**If Prettier is already integrated via ESLint** (`@antfu\u002Feslint-config` or `eslint-plugin-prettier`):\n\n- Skip installation and config file creation\n- Only verify `package.json` has `format` and `format:check` scripts\n- If missing, add scripts suitable for the ESLint integration approach\n\n**If no Prettier**:\n\n1. Install using the detected package manager: `\u003Cpm> add -D prettier`\n2. Create `.prettierrc` config file\n3. Create `.prettierignore` file\n4. Add scripts to `package.json`:\n   ```json\n   {\n     \"format\": \"prettier --write .\",\n     \"format:check\": \"prettier --check .\"\n   }\n   ```\n\n**If Prettier already exists**:\n\n- Check for config file, create one if missing\n- Check for scripts, add them if missing\n\n### Step 5: Configure Vitest\n\nRefer to `templates\u002Fvitest.config.md`.\n\n**If Vitest already exists**:\n\n- Check for config file, create one if missing\n- Check for test scripts, add them if missing\n\n**If no Vitest**:\n\n1. Install using the detected package manager:\n\n   ```bash\n   \u003Cpm> add -D vitest @vitest\u002Fcoverage-v8\n   ```\n\n2. Create config file:\n   - **Vite project**: Add test config to `vite.config.ts`, or create standalone `vitest.config.ts`\n   - **Next.js \u002F other projects**: Create standalone `vitest.config.ts` or `vitest.config.mjs`\n   - Use `.ts` extension (TypeScript project) or `.mjs` extension (JavaScript project)\n\n3. Add scripts to `package.json`:\n\n   ```json\n   {\n     \"test\": \"vitest\",\n     \"test:run\": \"vitest run\",\n     \"test:coverage\": \"vitest run --coverage\",\n     \"test:ui\": \"vitest --ui\"\n   }\n   ```\n\n4. Optional: Create `vitest.setup.ts` for global test configuration\n\n### Step 6: Install AI Agent Skills\n\nUse the `npx skills add` command to install third-party skills into project-level `.cursor\u002F`, `.claude\u002F`, and `.agents\u002F` directories.\n\n**Important**: Ensure you run these commands from the project root.\n\nExecute the following commands sequentially (run each command individually, wait for completion before running the next):\n\n```bash\n# 1. Vercel React best practices + web design guidelines\nnpx skills add vercel-labs\u002Fagent-skills --skill vercel-react-best-practices web-design-guidelines --agent cursor claude-code agents -y\n\n# 2. Frontend design guidelines\nnpx skills add anthropics\u002Fskills --skill frontend-design --agent cursor claude-code agents -y\n\n# 3. shadcn\u002Fui component patterns\nnpx skills add giuseppe-trisciuoglio\u002Fdeveloper-kit --skill shadcn-ui --agent cursor claude-code agents -y\n\n# 4. Vitest testing framework\nnpx skills add antfu\u002Fskills --skill vitest --agent cursor claude-code agents -y\n```\n\n**Notes**:\n\n- These commands will automatically create `.cursor\u002Fskills\u002F`, `.claude\u002Fskills\u002F`, and `.agents\u002Fskills\u002F` directories\n- If a command fails, check network connectivity and npm configuration\n- Once installed, these skills will be available in all supported AI agents\n\n### Step 7: Configure next-intl (User selected)\n\nRefer to `templates\u002Fnext-intl.config.md`.\n\n**Only execute this step if the user selected next-intl in Step 2.**\n\n1. Install using the detected package manager:\n\n   ```bash\n   \u003Cpm> add next-intl\n   ```\n\n2. Create `i18n\u002F` directory and config files:\n   - `i18n\u002Frouting.ts` - Define supported locales and default locale\n   - `i18n\u002Frequest.ts` - Configure request handling\n   - `i18n\u002Fnavigation.ts` - Export internationalized navigation components\n\n3. Create `languages\u002F` directory and translation files:\n   - `languages\u002Fen.json` - English translations\n   - `languages\u002Fzh-CN.json` - Simplified Chinese translations\n   - Add other languages as needed\n\n4. Use `proxy.ts` instead of `middleware.ts`, otherwise you will get a warning: `The \"middleware\" file convention is deprecated. Please use \"proxy\" instead. Learn more: https:\u002F\u002Fnextjs.org\u002Fdocs\u002Fmessages\u002Fmiddleware-to-proxy`\n\n5. Update `AGENTS.md` to add internationalization-related instructions\n\n### Step 8: Configure Supabase Auth (User selected)\n\nRefer to `templates\u002Fsupabase-auth.config.md`.\n\n**Only execute this step if the user selected Supabase Auth in Step 2.**\n\n**If Supabase Auth is already configured** (`lib\u002Fsupabase\u002Fclient.ts` exists):\n\n- Verify all three client variants exist (browser, server, middleware)\n- Check for auth callback route\n- Check for auth middleware\u002Fproxy configuration\n- Skip to the next step\n\n**If no Supabase Auth**:\n\n1. Install using the detected package manager:\n\n   ```bash\n   \u003Cpm> add @supabase\u002Fsupabase-js @supabase\u002Fssr\n   ```\n\n2. Create `lib\u002Fsupabase\u002F` directory with client files:\n   - `lib\u002Fsupabase\u002Fclient.ts` - Browser client (uses `createBrowserClient`)\n   - `lib\u002Fsupabase\u002Fserver.ts` - Server client (uses `createServerClient` with cookie management)\n   - `lib\u002Fsupabase\u002Fmiddleware.ts` - Middleware client (for auth in proxy\u002Fmiddleware)\n\n3. Create auth callback route:\n   - `app\u002Fauth\u002Fcallback\u002Froute.ts` - OAuth callback handler (exchanges code for session)\n\n4. Configure auth middleware:\n   - Next.js 16+: Add auth logic to `proxy.ts` (not `middleware.ts`)\n   - Next.js 15 and earlier: Add auth logic to `middleware.ts`\n   - Protect authenticated routes (e.g., `\u002Fwork`, `\u002Fdashboard`)\n   - Redirect unauthenticated users to login page\n\n5. Add environment variables to `.env.example`:\n   - `NEXT_PUBLIC_SUPABASE_URL`\n   - `NEXT_PUBLIC_SUPABASE_ANON_KEY`\n\n6. Optional: Create `hooks\u002Fuse-auth.ts` custom hook for client-side auth state\n\n### Step 9: Configure Supabase Database (User selected)\n\nRefer to `templates\u002Fsupabase-db.config.md`.\n\n**Only execute this step if the user selected Supabase Database in Step 2.**\n\n**If Supabase database queries already exist** (grep for `.from(` in `lib\u002F` or `app\u002F`):\n\n- Verify server client is configured for database operations\n- Check for admin client if webhook handlers exist\n- Skip to the next step\n\n**If no Supabase Database setup**:\n\n1. Ensure `@supabase\u002Fsupabase-js` is installed (should be done in Step 8)\n\n2. Verify server client in `lib\u002Fsupabase\u002Fserver.ts` supports database queries\n\n3. Create admin client for server-side operations requiring elevated privileges:\n   - `lib\u002Fsupabase\u002Fadmin.ts` - Uses `SUPABASE_SERVICE_ROLE_KEY` (server-only, never exposed to client)\n\n4. Create database type definitions:\n   - Define TypeScript types for your database tables\n   - Or use `npx supabase gen types typescript` to auto-generate from schema\n\n5. Add environment variables to `.env.example`:\n   - `SUPABASE_SERVICE_ROLE_KEY` (server-only)\n\n6. Document Row-Level Security (RLS) conventions:\n   - All tables should have RLS enabled\n   - Filter by `user_id` for user-scoped data\n   - Use service role key only in trusted server-side contexts\n\n### Step 10: Configure Creem Subscription (User selected)\n\nRefer to `templates\u002Fcreem-subscription.config.md`.\n\n**Only execute this step if the user selected Creem Subscription in Step 2.**\n\n**If Creem is already configured** (`app\u002Fapi\u002Fwebhooks\u002Fcreem\u002F` exists):\n\n- Verify webhook handler, product config, and checkout flow\n- Skip to the next step\n\n**If no Creem setup**:\n\n1. Create product\u002Fplan configuration:\n   - `lib\u002Fproducts.ts` - Define product tiers, pricing, feature limits, Creem product IDs\n   - `lib\u002Fconstants.ts` - Define free\u002Fpro tier limits, optional whitelist\n\n2. Create checkout server action:\n   - `app\u002Factions\u002Fsubscription.ts` - `createCheckout()` and `getSubscriptionStatus()` server actions\n   - Calls Creem API to create checkout session\n   - Returns checkout URL for client-side redirect\n\n3. Create webhook handler:\n   - `app\u002Fapi\u002Fwebhooks\u002Fcreem\u002Froute.ts` - POST handler for Creem webhook events\n   - Implement HMAC-SHA256 signature verification\n   - Handle events: `checkout.completed`, `subscription.active`, `subscription.paid`, `subscription.canceled`, `subscription.expired`, `subscription.paused`, `subscription.past_due`, `subscription.scheduled_cancel`\n   - Update subscription status in Supabase database using admin client\n\n4. Create subscription utilities:\n   - `hooks\u002Fuse-subscription.ts` - Client-side hook for subscription status (uses SWR)\n   - Implement tier-based feature gating (free vs pro limits)\n\n5. Add environment variables to `.env.example`:\n   - `CREEM_API_KEY` - Creem API key\n   - `CREEM_WEBHOOK_SECRET` - Webhook signature verification secret\n   - `NODE_TARGET` - Environment target (production\u002Fstaging)\n   - `NEXT_PUBLIC_SITE_URL` - Site URL for checkout redirect\n   - `NEXT_PUBLIC_PROJECT_ID` - Creem product ID\n\n6. Create `subscriptions` table in Supabase (provide SQL to user):\n   - Columns: `id`, `user_id`, `creem_subscription_id`, `creem_customer_id`, `status`, `product_id`, `current_period_start`, `current_period_end`\n   - Enable RLS with user-scoped read policy\n\n### Step 11: Configure Lint\n\nConfigure ESLint based on https:\u002F\u002Fgithub.com\u002Fantfu\u002Feslint-config. The config should include:\n\n```js\nimport antfu from \"@antfu\u002Feslint-config\";\n\nexport default antfu({\n  formatters: true,\n  react: true,\n  stylistic: false,\n  ignores: [\n    \".agents\u002F**\u002F*\",\n    \".claude\u002F**\u002F*\",\n    \".cursor\u002F**\u002F*\",\n    \".vscode\u002F**\u002F*\",\n    \"components\u002Fai-elements\u002F**\u002F*\",\n    \"components\u002Fui\u002F**\u002F*\",\n  ],\n});\n```\n\n### Step 12: Verification Checklist\n\nAfter completing all configurations, present the following checklist to the user. Only include items that were actually configured based on the user's selection in Step 2:\n\n```\n✓ Project Setup Complete\n\nEnvironment Info:\n- Package manager: \u003Cdetected-pm>\n- Project type: \u003Cdetected-type>\n- TypeScript: \u003Cyes\u002Fno>\n\nCompleted Configurations:\n- [x] AGENTS.md created\n- [x] Prettier configured (\u003Cstandalone\u002FESLint-integrated\u002Falready existed>)\n- [x] Vitest configured (\u003Cnewly installed\u002Falready existed>)\n- [x] AI Skills installed (4 skills)\n- [x] ESLint configured\n- [x] next-intl configured (if selected)\n- [x] Supabase Auth configured (if selected)\n- [x] Supabase Database configured (if selected)\n- [x] Creem Subscription configured (if selected)\n\nNext Steps:\n1. Run `\u003Cpm> install` to install dependencies\n2. Run `\u003Cpm> run format` to format code\n3. Run `\u003Cpm> run test` to verify test configuration\n4. Review AGENTS.md for project conventions\n5. Set up Supabase project at https:\u002F\u002Fsupabase.com and add env vars (if Supabase selected)\n6. Configure Creem account at https:\u002F\u002Fcreem.io and add env vars (if Creem selected)\n```\n\n## Template Files\n\nThis skill includes the following template files in the `templates\u002F` directory:\n\n- `AGENTS.md` - Project development conventions template\n- `prettier.config.md` - Prettier configuration reference\n- `vitest.config.md` - Vitest configuration reference\n- `next-intl.config.md` - next-intl configuration reference\n- `supabase-auth.config.md` - Supabase Auth configuration reference\n- `supabase-db.config.md` - Supabase Database configuration reference\n- `creem-subscription.config.md` - Creem payment\u002Fsubscription configuration reference\n\nRead these template files for detailed configuration content when executing setup.\n\n## Troubleshooting\n\n### Prettier and ESLint Conflicts\n\nIf the project uses both Prettier and ESLint, ensure:\n\n- When using `@antfu\u002Feslint-config`, the formatters option is enabled\n- When using `eslint-plugin-prettier`, extends is configured correctly\n- When using standalone Prettier, add `.prettierignore` to avoid formatting conflicts\n\n### Vitest Configuration in Next.js\n\nNext.js projects require special Vitest configuration:\n\n- Use the `next()` helper to handle Next.js-specific features\n- Configure path alias mapping (`@\u002F` → `.\u002Fsrc\u002F`)\n- Set the correct test environment (usually `node` or `jsdom`)\n\n### Supabase Auth Issues\n\nIf authentication is not working:\n\n- Verify `NEXT_PUBLIC_SUPABASE_URL` and `NEXT_PUBLIC_SUPABASE_ANON_KEY` are set correctly\n- Check that the auth callback route matches the redirect URL in Supabase dashboard\n- Ensure `proxy.ts` (Next.js 16) or `middleware.ts` correctly refreshes the session\n- For OAuth providers, verify the callback URL is registered in Supabase Auth settings\n\n### Creem Webhook Issues\n\nIf webhooks are not being received:\n\n- Verify `CREEM_WEBHOOK_SECRET` matches the secret in Creem dashboard\n- Ensure the webhook URL is publicly accessible (use ngrok for local development)\n- Read the request body as raw text (`req.text()`) before parsing for signature verification\n- Check HMAC-SHA256 signature verification logic\n- Review webhook event payload structure against Creem API documentation\n\n### Skills Installation Failure\n\nIf `npx skills add` fails:\n\n- Check network connectivity\n- Try clearing npm cache: `npm cache clean --force`\n- Manually set npm registry: `npm config set registry https:\u002F\u002Fregistry.npmjs.org\u002F`\n- Review detailed error messages and follow the instructions\n\n## Best Practices\n\n1. **Environment detection first**: Always detect the environment first to avoid assumptions about project configuration\n2. **Avoid overwriting**: Check for existing configurations; only create new files when missing\n3. **Adapt to package manager**: Use the project's existing package manager for consistency\n4. **Incremental configuration**: Configure basic tools first, then add advanced features\n5. **Verify configuration**: After setup, suggest users run relevant commands to verify\n",{"name":5,"description":7},"main","bdc113818552fc6973af63a3890b61d9777b677d","skills\u002Fproject-setup","https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills","https:\u002F\u002Fskills.sh\u002Fyukiniro\u002Fskills","https:\u002F\u002Fgithub.com\u002FYukiniro","zhanghao.zone","Done is better than perfect.","2026-10-17 22:26:31",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add Yukiniro\u002Fskills --skill project-setup",{"tool":59,"command":60},"bunx","bunx skills add Yukiniro\u002Fskills --skill project-setup",{"tool":62,"command":63},"pnpm","pnpm dlx skills add Yukiniro\u002Fskills --skill project-setup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fproject-setup\u002FSKILL.md",true,[67,73,79,83,87,91,95,99],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"LICENSE.txt","LICENSE","许可证",1066,"https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fproject-setup\u002FLICENSE.txt",{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"templates\u002FAGENTS.md","REFERENCE","参考文档",7706,"https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fproject-setup\u002Ftemplates\u002FAGENTS.md",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"templates\u002Fcreem-subscription.config.md",15392,"https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fproject-setup\u002Ftemplates\u002Fcreem-subscription.config.md",{"path":84,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":85,"sourceHtmlUrl":86},"templates\u002Fnext-intl.config.md",11640,"https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fproject-setup\u002Ftemplates\u002Fnext-intl.config.md",{"path":88,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":89,"sourceHtmlUrl":90},"templates\u002Fprettier.config.md",6640,"https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fproject-setup\u002Ftemplates\u002Fprettier.config.md",{"path":92,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":93,"sourceHtmlUrl":94},"templates\u002Fsupabase-auth.config.md",14618,"https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fproject-setup\u002Ftemplates\u002Fsupabase-auth.config.md",{"path":96,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":97,"sourceHtmlUrl":98},"templates\u002Fsupabase-db.config.md",11653,"https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fproject-setup\u002Ftemplates\u002Fsupabase-db.config.md",{"path":100,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":101,"sourceHtmlUrl":102},"templates\u002Fvitest.config.md",11478,"https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fproject-setup\u002Ftemplates\u002Fvitest.config.md",[104,114,137,156,172,183],{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":111,"publishedAt":39},"01M6CHXN4VA42C1N988S7BWCMG","template-skill","Replace with description of the skill and when to use it.","https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Ftemplate\u002FSKILL.md",[110],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[112,113,37],"template skill","template",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":125,"publishedAt":39},"01M6CHXJMHXG22G9TQPPN498ZV","work-weekly-report","Generate structured weekly work summaries from daily work logs. Use when: user provides daily work logs\u002Fnotes and asks to create a weekly report\u002Fsummary (周报\u002F周工作总结), or when user pastes fragmented daily entries and wants them consolidated into a categorized summary. Triggers on keywords: 周报, 周工作总结, weekly summary, weekly report, 工作日志整理, 每日日志汇总.","https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fwork-weekly-report\u002FSKILL.md",[120],{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[126,127,128,129,130,131,132,133,134,37,135,136],"report","work","Weekly Report","work weekly report","create","notes","generate","logs","user","daily","summary",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":144,"publishedAt":39},"01M6CHXFF4NJ91DZ197XD462N8","squash-commits","Squash all commits on the current branch (relative to the main branch) into a single commit while preserving the branch name. Use when: user wants to squash commits, clean up branch history, compress multiple commits into one, or tidy up before merging. Triggers on: squash commits, 压缩提交, 合并提交, clean up commits, compress commits, squash branch, 整理提交记录, 合并为一个提交. Make sure to use this skill whenever the user mentions squashing, compressing, or cleaning up commit history on a branch, even if they don't use the exact term \"squash\".","https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsquash-commits\u002FSKILL.md",[143],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[145,146,147,148,149,150,151,134,37,152,153,44,154,155],"commits","squash commits","squash","history","branch","compress","压缩","up","clean","tidy","commit",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":39},"01M6CHXCM56VNQFDYXZ8NQT3A9","smart-commit","Automated Git commit with Conventional Commits format. Analyzes staged changes, determines commit type and scope, detects description language from commit history (defaults to English), and generates a complete commit message. Use when the user says \"commit\", \"smart commit\", \"提交代码\", \"帮我提交\", or any variation of requesting a git commit with an auto-generated message.","https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsmart-commit\u002FSKILL.md",[],[163,155,164,165,166,167,145,168,148,134,169,37,170,171],"smart commit","auto","git commit","git","commit message","format","generated","conventional commits","language",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":178,"publishedAt":39},"01M6CHXAZNH6HMY4DW6663QJ25","setup-agents-md","创建、初始化或更新 AGENTS.md 通用工程原则文档时使用。触发词包括“创建 AGENTS.md”、“更新 AGENTS.md”、“初始化 AGENTS.md”、“setup AGENTS.md”、“create AGENTS.md”、“update AGENTS.md”。","https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsetup-agents-md\u002FSKILL.md",[],[179,180,24,181,130,182],"setup agents md","agents md","文档","update",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":195,"publishedAt":39},"01M6CHX7J863WH94J35ZVN8EMZ","resume-screener","Evaluate and grade resumes against job requirements using a 10-level grading system (C, B-, B, B+, A-, A, A+, S, SS, SSS). Provides multi-dimensional scoring with evidence-based reasoning and hiring recommendations. Use when screening candidates, comparing applicants, assessing resume-job fit, or filtering resumes. Supports Chinese and English resumes in any format (PDF, DOCX, text, image).","https:\u002F\u002Fgithub.com\u002FYukiniro\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fresume-screener\u002FSKILL.md",[189,192],{"categoryNo":190,"categoryName":191,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":193,"categoryName":194,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000038","人力资源",[196,197,198,199,200,201,202,168,203,204,37,205,206,207],"resume screener","resume","PDF","image","reasoning","Hiring","system","text","filtering","evidence","chinese","docx"]