Zach Sif Cvr Threshold Analyzer
zach22-1999/amazon-skills
基于领星 ASIN 360 或同类日业务报表,以及用户自己 SIF MCP 导出的日级关键词自然排名 JSON,回测 CVR 与核心词/稳定词自然排名波动的关系,并输出观察线、危险线、广告 CVR 确认线。
Best practices for building commerce applications with Medusa v2, the headless e-commerce framework.
$ npx skills add Mindrally/skills --skill medusa-development -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Mindrally/skills medusa-development --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Mindrally/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/medusa-development .claude/skills/medusa-development && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "medusa-development" agent skill from https://github.com/Mindrally/skills/tree/main/medusa-development into .claude/skills/medusa-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "medusa-development", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Mindrally/skills/tree/main/medusa-developmentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Mindrally/skills --skill medusa-development -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Mindrally/skills medusa-development --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Mindrally/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/medusa-development .agents/skills/medusa-development && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "medusa-development" agent skill from https://github.com/Mindrally/skills/tree/main/medusa-development into .agents/skills/medusa-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "medusa-development", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Mindrally/skills --skill medusa-development -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Mindrally/skills medusa-development --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Mindrally/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/medusa-development .cursor/skills/medusa-development && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "medusa-development" agent skill from https://github.com/Mindrally/skills/tree/main/medusa-development into .cursor/skills/medusa-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "medusa-development", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Mindrally/skills.git --path medusa-development--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Mindrally/skills --skill medusa-development -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Mindrally/skills medusa-development --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Mindrally/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/medusa-development .gemini/skills/medusa-development && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "medusa-development" agent skill from https://github.com/Mindrally/skills/tree/main/medusa-development into .gemini/skills/medusa-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "medusa-development", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Mindrally/skills medusa-developmentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Mindrally/skills --skill medusa-development -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Mindrally/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/medusa-development .github/skills/medusa-development && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "medusa-development" agent skill from https://github.com/Mindrally/skills/tree/main/medusa-development into .github/skills/medusa-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "medusa-development", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Mindrally/skills --skill medusa-development -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Mindrally/skills medusa-development --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Mindrally/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/medusa-development .opencode/skills/medusa-development && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "medusa-development" agent skill from https://github.com/Mindrally/skills/tree/main/medusa-development into .opencode/skills/medusa-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "medusa-development", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
medusa-developmentBest practices for building commerce applications with Medusa v2, the headless e-commerce framework.
Medusa Development is an agent skill from Mindrally/skills. Best practices for building commerce applications with Medusa v2, the headless e-commerce framework. Use when defining Medusa data models, writing workflows and steps with the Workflow SDK, creating API routes or subscribers, building module services that extend MedusaService, throwing MedusaError, or customizing the Medusa admin dashboard.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Sales & Support, covering E-commerce operations. It works with Medusa. The repository describes itself as: 255+ Claude Code skills converted from Cursor rules. Expert coding guidelines for every major framework and language. The licence is Apache-2.0.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 9718410. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.medusajs.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Medusa Development loads about 2.7k tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 805 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Mindrally/skills at commit 9718410, republished under its Apache-2.0 licence (© Mindrally). 805 words, ~2,708 tokens.
.claude/skills/medusa-development/SKILL.md (or your agent's skills folder).Medusa is a headless commerce framework built around modules, data models, and workflows; almost every piece of business logic — from an API route to a scheduled job — should be expressed as a workflow made of discrete, composable steps.
model utility from @medusajs/framework/utils to declare the module's data model(s) under src/modules/<module>/models/.src/modules/<module>/service.ts that extends MedusaService when the module has data models, exposing async methods for domain operations.medusa-config.ts so Medusa's container can resolve it.createStep from @medusajs/framework/workflows-sdk, including a compensation function for anything that needs to be undone on failure.createWorkflow, using transform for data shaping and when for conditional branches.req.scope.resolve("query") or the workflow-level useQueryGraphStep) to fetch data instead of calling module services directly for reads.MedusaError (from @medusajs/framework/utils) instead of a plain Error, so the API layer can map it to the correct HTTP status and error code.import { MedusaError } from "@medusajs/framework/utils"
if (!product) {
throw new MedusaError(
MedusaError.Types.NOT_FOUND,
`Product with id "${productId}" was not found`
)
}model utility from @medusajs/framework/utils to define data models.model.define should be snake_case.id field to a data model, always make it a primary key with .primaryKey().id field — any other identifier should be a text field instead.// src/modules/loyalty/models/loyalty-account.ts
import { model } from "@medusajs/framework/utils"
const LoyaltyAccount = model.define("loyalty_account", {
id: model.id().primaryKey(),
customer_id: model.text(),
points_balance: model.number().default(0),
tier: model.enum(["bronze", "silver", "gold"]).default("bronze"),
})
export default LoyaltyAccountMedusaService so it inherits generated CRUD methods for each model.// src/modules/loyalty/service.ts
import { MedusaService } from "@medusajs/framework/utils"
import LoyaltyAccount from "./models/loyalty-account"
class LoyaltyModuleService extends MedusaService({
LoyaltyAccount,
}) {
async addPoints(accountId: string, points: number) {
const account = await this.retrieveLoyaltyAccount(accountId)
return await this.updateLoyaltyAccounts({
id: account.id,
points_balance: account.points_balance + points,
})
}
}
export default LoyaltyModuleService@medusajs/framework/workflows-sdk) to define it.transform for any data transformation between steps — don't manipulate step output directly in the workflow function body.when to define conditional branches instead of a plain if around step calls.await when calling steps inside a workflow — step invocation returns a special reference the workflow engine resolves, and await-ing it breaks the workflow's ability to orchestrate compensation and retries.async — the function body only describes the step graph, it doesn't execute imperatively.// src/workflows/redeem-loyalty-points.ts
import {
createStep,
createWorkflow,
StepResponse,
transform,
when,
WorkflowResponse,
} from "@medusajs/framework/workflows-sdk"
import { MedusaError } from "@medusajs/framework/utils"
import { LOYALTY_MODULE } from "../modules/loyalty"
import LoyaltyModuleService from "../modules/loyalty/service"
type RedeemPointsInput = {
accountId: string
points: number
}
const deductPointsStep = createStep(
"deduct-points-step",
async (input: RedeemPointsInput, { container }) => {
const loyaltyService: LoyaltyModuleService = container.resolve(LOYALTY_MODULE)
const account = await loyaltyService.retrieveLoyaltyAccount(input.accountId)
if (account.points_balance < input.points) {
throw new MedusaError(
MedusaError.Types.INVALID_DATA,
"Insufficient points balance"
)
}
const previousBalance = account.points_balance
const updated = await loyaltyService.updateLoyaltyAccounts({
id: account.id,
points_balance: previousBalance - input.points,
})
return new StepResponse(updated, { accountId: account.id, previousBalance })
},
async (compensationInput, { container }) => {
if (!compensationInput) return
const loyaltyService: LoyaltyModuleService = container.resolve(LOYALTY_MODULE)
await loyaltyService.updateLoyaltyAccounts({
id: compensationInput.accountId,
points_balance: compensationInput.previousBalance,
})
}
)
export const redeemLoyaltyPointsWorkflow = createWorkflow(
"redeem-loyalty-points",
(input: RedeemPointsInput) => {
const account = deductPointsStep(input)
const tierDowngrade = when(account, (acc) => acc.points_balance === 0)
.then(() => {
return transform({ account }, (data) => ({
...data.account,
tier: "bronze" as const,
}))
})
return new WorkflowResponse(account)
}
)src/api/; the route handler should validate input, call the workflow, and shape the HTTP response — nothing more.// src/api/store/loyalty/[id]/route.ts
import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http"
export async function GET(req: MedusaRequest, res: MedusaResponse) {
const query = req.scope.resolve("query")
const { data: accounts } = await query.graph({
entity: "loyalty_account",
fields: ["id", "points_balance", "tier"],
filters: { id: req.params.id },
})
res.json({ loyalty_account: accounts[0] })
}
export async function POST(req: MedusaRequest, res: MedusaResponse) {
const { result } = await redeemLoyaltyPointsWorkflow(req.scope).run({
input: req.validatedBody as { accountId: string; points: number },
})
res.json({ loyalty_account: result })
}// src/subscribers/order-placed.ts
import type { SubscriberArgs, SubscriberConfig } from "@medusajs/framework"
import { redeemLoyaltyPointsWorkflow } from "../workflows/redeem-loyalty-points"
export default async function orderPlacedHandler({ event, container }: SubscriberArgs<{ id: string }>) {
await redeemLoyaltyPointsWorkflow(container).run({
input: { accountId: event.data.id, points: 0 },
})
}
export const config: SubscriberConfig = { event: "order.placed" }@medusajs/js-sdk) rather than raw fetch.// src/admin/widgets/loyalty-widget.tsx
import { defineWidgetConfig } from "@medusajs/admin-sdk"
import { useQuery } from "@tanstack/react-query"
import { sdk } from "../lib/sdk"
const LoyaltyWidget = ({ data }: { data: { id: string } }) => {
const { data: result } = useQuery({
queryFn: () => sdk.admin.customer.retrieve(data.id),
queryKey: ["customer", data.id],
})
return <p className="text-ui-fg-subtle">{result?.customer.email}</p>
}
export const config = defineWidgetConfig({ zone: "customer.details.after" })
export default LoyaltyWidgetError instead of MedusaError, which loses the mapped HTTP status code and structured error type on the API response.model.define name in camelCase instead of snake_case, causing inconsistency with the rest of the schema.© Mindrally, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in medusa-development of Mindrally/skills.
Open the folder on GitHubat commit 9718410
Medusa Development next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Medusa Development this skillMindrally/skills | 268 | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Zach Sif Cvr Threshold Analyzerzach22-1999/amazon-skills | 207 | 1 repos | ~982 | Automated safety check: Notes | MIT | |
| Maishouaahl/skills | 162 | 2 repos | ~175 | Automated safety check: Pass | MIT | |
| Checkout Purchasekeypo-us/keypo-cli | 182 | — | ~880 | Automated safety check: Notes | None | |
| Afaafadtc/afa-dtc-skills | 168 | — | ~2.6k | Automated safety check: Pass | Custom licence | |
| Fix Visual StabilityEtaYang10th/spark-skills | 111 | — | ~3.7k | Automated safety check: Pass | None |
zach22-1999/amazon-skills
基于领星 ASIN 360 或同类日业务报表,以及用户自己 SIF MCP 导出的日级关键词自然排名 JSON,回测 CVR 与核心词/稳定词自然排名波动的关系,并输出观察线、危险线、广告 CVR 确认线。
aahl/skills
商品价格全网对比技能,获取商品在淘宝(Taobao)、天猫(TMall)、京东(JD.com)、拼多多(PinDuoDuo)、抖音(Douyin)、快手(KaiShou)的最优价格、优惠券,当用户想购物或者获取优惠信息时使用。Get the best price, coupons for goods on Chinese e-commerce platforms, compare…
keypo-us/keypo-cli
A skill your agent uses when the user asks to buy a product from the Shopify store.
afadtc/afa-dtc-skills
AFA DTC 全链路独立站操盘系统——系统入口、一级路由器、工作流编排器,统筹品牌基建、付费获客、有机增长、变现留存、运营扩张五大业务线。Use when user mentions: 独立站, DTC, 电商, ecommerce, Shopify, 品牌站, 独立站运营, DTC品牌, 全链路, 操盘, 独立站诊断, 独立站增长, 独立站策略.
EtaYang10th/spark-skills
Fix visual stability issues in Next.js e-commerce apps — covers CLS (Cumulative Layout Shift), FOIT (Flash of Invisible Text), and theme flicker
browser-act/skills
Search Taobao and Tmall product listings by keyword, returning paginated product cards with title, price, shop, image, sales, and tags.
Mindrally/skills
Best practices for analytics, data analysis, and visualization using Python, pandas, matplotlib, seaborn, and Jupyter notebooks.
Mindrally/skills
Best practices for AutoML and hyperparameter search with Optuna, Ray Tune, and PyCaret, covering search-space design, validation splits, and leakage prevention.
Mindrally/skills
Best practices for writing Blender Python add-ons using the bpy API, covering operators, panels, properties, registration, and API-safe scripting.
Mindrally/skills
Expert guidelines for Chrome extension development with Manifest V3, covering security, performance, and best practices.
Mindrally/skills
Clean, maintainable, human-readable code principles combined with anti-over-engineering discipline: naming, single responsibility, DRY, and scoping changes to exactly what was requested.
Mindrally/skills
Comprehensive design system guidelines for building consistent, accessible, and scalable component libraries.
Works with
Categories
Best practices for building commerce applications with Medusa v2, the headless e-commerce framework. Medusa Development is an agent skill from Mindrally/skills. Best practices for building commerce applications with Medusa v2, the headless e-commerce framework.
Medusa Development fits situations like: defining Medusa data models; writing workflows and steps with the Workflow SDK; creating API routes; building module services that extend MedusaService.
Run `npx skills add Mindrally/skills --skill medusa-development -a claude-code`. Or copy the skill folder (medusa-development in Mindrally/skills) into .claude/skills/medusa-development in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Mindrally/skills --skill medusa-development -a codex`. Or copy the skill folder (medusa-development in Mindrally/skills) into .agents/skills/medusa-development in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Mindrally/skills --skill medusa-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/medusa-development, .gemini/skills/medusa-development, .github/skills/medusa-development and .opencode/skills/medusa-development in your project.
SKILL.md names no scripts, command-line tools or credentials: Medusa Development is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: docs.medusajs.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Medusa Development is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Medusa Development: Zach Sif Cvr Threshold Analyzer (zach22-1999/amazon-skills, 207 stars), Maishou (aahl/skills, 162 stars), Checkout Purchase (keypo-us/keypo-cli, 182 stars) and Afa (afadtc/afa-dtc-skills, 168 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Mindrally (a GitHub organization) maintains it in Mindrally/skills, which has 268 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on September 3, 2026.
Source: Mindrally/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.