Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add OrcaQubits/agentic-commerce-skills-plugins --skill medusa-modulesgit clone --depth 1 https://github.com/OrcaQubits/agentic-commerce-skills-pluginsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/orcaqubits/agentic-commerce-skills-plugins/medusa-modules)<a href="https://agentmods.dev/skills/orcaqubits/agentic-commerce-skills-plugins/medusa-modules"><img src="https://agentmods.dev/badge/skills/orcaqubits/agentic-commerce-skills-plugins/medusa-modules/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/orcaqubits/agentic-commerce-skills-plugins/medusa-modules"><img src="https://agentmods.dev/badge/skills/orcaqubits/agentic-commerce-skills-plugins/medusa-modules.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00039 | $0.01492 |
| Opus 5 | $0.00019 | $0.00746 |
| Sonnet 5 | $0.00008 | $0.00298 |
| Haiku 4.5 | $0.00004 | $0.00149 |
Grade A, and why
medusa-modules scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 178 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Medusa v2 Custom Modules
Before writing code
Fetch live docs:
- Fetch
https://docs.medusajs.com/learn/fundamentals/modulesfor module overview - Web-search
site:docs.medusajs.com DML data model referencefor model property types - Web-search
site:docs.medusajs.com MedusaService methodsfor base service API - Web-search
site:docs.medusajs.com module linksfor linking modules together - Web-search
site:docs.medusajs.com module container registrationfor dependency injection
Module Concept
A module is a self-contained package of functionality in Medusa v2:
- Encapsulates data models, services, and business logic
- Registered in
medusa-config.tsunder themodulesarray - Accessed from workflows, API routes, and subscribers via the dependency container
- Modules communicate through links, not direct imports
Module Directory Structure
| File | Purpose |
|---|---|
src/modules/my-module/models/my-entity.ts |
DML data model |
src/modules/my-module/service.ts |
Service extending MedusaService |
src/modules/my-module/loaders/seed.ts |
Optional loader (runs on startup) |
src/modules/my-module/migrations/ |
Auto-generated by CLI |
src/modules/my-module/index.ts |
Module definition export |
DML Data Models
Property Types
| DML Type | Database Column | Notes |
|---|---|---|
model.id() |
Primary key UUID | Auto-generated |
model.text() |
text / varchar |
String fields |
model.number() |
integer |
Numeric fields |
model.bigNumber() |
numeric |
Precise decimals (prices) |
model.boolean() |
boolean |
True/false |
model.dateTime() |
timestamptz |
Date/time values |
model.json() |
jsonb |
Arbitrary JSON |
model.enum() |
enum |
Constrained values |
model.array() |
array |
Array of primitives |
Relationship Types
| Relationship | DML Method | Description |
|---|---|---|
| Has One | model.hasOne() |
One-to-one owned |
| Has Many | model.hasMany() |
One-to-many owned |
| Belongs To | model.belongsTo() |
Inverse of hasOne/hasMany |
| Many to Many | model.manyToMany() |
Junction table auto-created |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 178 lines · 39 tokens per session scan A 6eeaf236b5df
medusa-modules is a skill published in the GitHub repository OrcaQubits/agentic-commerce-skills-plugins (39 stars, last pushed 2d ago), licensed MIT. It adds 39 tokens to every session and 1,492 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-15.
Other skills, from other repositories
archestra-dev-interactions-migrations
Use BEFORE writing or running any Drizzle migration that touches the interactions table (or any other very large, write-hot table). The interactions table is the platform's biggest, append-heavy table — every LLM proxy call writes a row — so a careless migration can take a write-blocking lock and stall the proxy.…
archestra-dev-llm-providers
Use when adding an LLM provider, changing proxy adapters or provider routes, fixing streaming/tool-call translation bugs, editing model fetchers or model handling, or touching provider credentials/enums and model constants.
archestra-dev-backend
Use when adding or changing Archestra backend routes, models, services, API request/response schemas, endpoint permissions, or OpenAPI/codegen for the generated API client.
debridge
Complete deBridge Protocol SDK for building cross-chain bridges, message passing, and token transfers on Solana. Use when building cross-chain applications, bridging assets between Solana and EVM chains, or implementing trustless external calls.
mppx
TypeScript SDK for the Payment HTTP Authentication Scheme. Handles 402 Payment Required flows with Tempo, Stripe, and other payment methods. Use when integrating payments or mppx into a client or server application.
near-intents
Cross-chain token swap integration using NEAR Intents 1Click API. Use when building swap widgets, bridge interfaces, or multi-chain transfers across EVM, Solana, NEAR, TON, Stellar, and Tron.