epicmerch-mcp 1.3.12 → 1.3.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/skills/epicmerch.md +61 -34
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "epicmerch-mcp",
3
- "version": "1.3.12",
3
+ "version": "1.3.13",
4
4
  "description": "MCP server for EpicMerch — integrates e-commerce into Claude and ChatGPT",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: epicmerch
3
- description: EpicMerch umbrella — guided 6-step onboarding wizard for new merchants (ends with a full smoke test against the live API), plus an intent router for merchants who already know what they want (scaffold a storefront, set up payments, add a Buy Now button, manage a store, migrate from Shopify, verify the store).
3
+ description: EpicMerch umbrella — guided 6-step onboarding wizard for new merchants that ALWAYS ends by auto-running a live end-to-end order test (/epicmerch-e2e), plus an intent router for merchants who already know what they want (scaffold a storefront, set up payments, add a Buy Now button, manage a store, migrate from Shopify, verify the store). Verification is the non-negotiable definition of done for any build.
4
4
  ---
5
5
 
6
6
  # EpicMerch — the umbrella
@@ -21,6 +21,18 @@ If ambiguous, ask ONE disambiguating question: *"Want me to walk you through a f
21
21
 
22
22
  ---
23
23
 
24
+ ## DEFINITION OF DONE — read this before you finish (applies to BOTH modes)
25
+
26
+ **`/epicmerch` is not complete until a live end-to-end test has run and passed.**
27
+
28
+ This holds no matter how the build happened — the wizard's scaffold step, an intent-mode `/epicmerch-storefront`, OR a fully custom build you designed through brainstorming (e.g. a themed multi-page store). However you got here, the LAST thing you do before telling the merchant "your store is set up" is run **`/epicmerch-e2e`** (full pipeline) — falling back to `/epicmerch-verify` only if the server's test-login isn't configured.
29
+
30
+ Common trap: a design-heavy request ("build me a saree store") pulls you into scope/theme/spec brainstorming and a custom build, and the flow ends at "looks good!" without ever testing against the live API. **Don't let that happen.** After the storefront files are written and the `.env` has a real API key, run the e2e/verify gate. A store that was never tested against the live API is not done — that's exactly how the cart-shape / productId / out-of-stock bugs reached real merchants.
31
+
32
+ If you realize you're wrapping up `/epicmerch` and haven't run the test → run it now.
33
+
34
+ ---
35
+
24
36
  ## Step A — Wizard mode (guided onboarding)
25
37
 
26
38
  The merchant either said nothing or asked to "start". Walk them through the 5 steps below **in order**. After each step, briefly recap (`✓ done` or `✗ skipped — <reason>`) and move on. Don't dump all 5 questions at once; one step at a time.
@@ -130,35 +142,48 @@ Ask:
130
142
  - Yes → run `/epicmerch-magic-checkout`. (That skill verifies Razorpay is configured first; if step 2 set it up, this just works.)
131
143
  - No / skip → `✗ Skipped.` (They can always add it later by saying *"add a Buy Now button"*.)
132
144
 
133
- ### Wizard step 6/6 — Verify the storefront
134
-
135
- Before declaring victory, run an end-to-end smoke test to make sure
136
- the site can actually talk to the API. Catches bugs like wrong field
137
- names, missing variants, stale orderItems shape the kind of thing
138
- that would otherwise show up as a 422 only when a real customer hits
139
- checkout.
140
-
141
- > "Last step — let me run a smoke test to confirm everything works."
142
-
143
- Run `/epicmerch-verify` (or, if not in a slash-command client, fetch
144
- https://api.epicmerch.in/api/skills/epicmerch-verify.md and follow it).
145
- The verify skill does NOT send OTP and does NOT charge real money;
146
- it tests every read-only path and validates the checkout payload
147
- shape, then gives the merchant a 4-line manual recipe for the actual
148
- cart checkout Razorpay test-card flow.
149
-
150
- **If any check fails:** do NOT just print the failure and stop. Route
151
- to `/epicmerch-debug` automatically it has a four-check playbook for
152
- the most common failure modes (OTP not persisting, products not
153
- loading, INSUFFICIENT_STOCK on checkout, cart returning 401) and will
154
- diagnose + fix without further merchant intervention. After debug runs,
155
- re-run `/epicmerch-verify` to confirm the fix held.
156
-
157
- Only proceed to wrap-up when verify is fully green.
145
+ ### Wizard step 6/6 — Verify the storefront (MANDATORY — always runs)
146
+
147
+ **This step is NOT optional and is NOT skippable.** Whether the store was
148
+ built by the wizard's scaffold step OR by a custom/brainstormed build,
149
+ the final action of `/epicmerch` is ALWAYS to run a live test against the
150
+ API. Do not print a "your store is set up" wrap-up until this has run and
151
+ passed. If you find yourself about to end the `/epicmerch` flow without
152
+ having run a verification, STOP and run it now.
153
+
154
+ > "Last step — let me run a live end-to-end test to confirm everything actually works."
155
+
156
+ **Run `/epicmerch-e2e` automatically.** It's the deepest check: it gets a
157
+ customer session, creates a throwaway test product, adds it to a cart,
158
+ creates a real order (exercising stock reservation + Razorpay order
159
+ creation, no charge), verifies every response shape, then cleans up
160
+ (cancels the order, deletes the product). This proves the WHOLE pipeline,
161
+ not just read paths.
162
+
163
+ `/epicmerch-e2e` gets its customer token via the server's env-gated test
164
+ phone (`store_auth_send_otp` + `store_auth_verify_otp` against
165
+ `E2E_TEST_PHONE`), so it needs no OTP/SMS and no manual login.
166
+
167
+ **Graceful fallback** — if `/epicmerch-e2e`'s token step fails because the
168
+ server doesn't have `E2E_TEST_PHONE`/`E2E_TEST_OTP` configured (you'll see
169
+ a normal SMS channel instead of `e2e-test`, or a 401 on verify), fall back
170
+ to `/epicmerch-verify` — it tests every read path + the checkout payload
171
+ shape with no token needed, then gives a manual cart→checkout test recipe.
172
+ Tell the merchant: *"Ran the read-path + payload checks; to enable the
173
+ fully-automated order test, ask your EpicMerch operator to set
174
+ E2E_TEST_PHONE/E2E_TEST_OTP on the server."*
175
+
176
+ **If any check fails:** do NOT just print the failure and stop. Route to
177
+ `/epicmerch-debug` automatically — its four-check playbook (OTP not
178
+ persisting, products not loading, INSUFFICIENT_STOCK on checkout, cart
179
+ 401) diagnoses + fixes without further merchant intervention. Then re-run
180
+ the test to confirm the fix held.
181
+
182
+ Only proceed to wrap-up when the test is fully green.
158
183
 
159
184
  ### Wizard wrap-up
160
185
 
161
- Print a one-block recap after `/epicmerch-verify` finishes:
186
+ Print a one-block recap after the step-6 test finishes:
162
187
 
163
188
  ```
164
189
  ━━━ Your store is set up ━━━
@@ -168,13 +193,13 @@ Print a one-block recap after `/epicmerch-verify` finishes:
168
193
  ✓ Catalog: <N> products
169
194
  ✓ Storefront: scaffolded into <project> (or "skipped — no project")
170
195
  ✗ Buy Now button: skipped (or ✓ if they added it)
171
- Smoke test: all read paths + checkout shape pass
196
+ End-to-end test: product cart order cleanup all passed
197
+ (or "✓ Read-path + payload checks passed; order test skipped —
198
+ E2E_TEST_PHONE not configured on server")
172
199
 
173
- Next: restart your dev server (`npm run dev`) to pick up `.env`, then
174
- follow the manual recipe in Phase 4 of the verify report to test the
175
- final cart checkout Razorpay flow with the test card. Ask me
176
- about analytics, notifications, or abandoned-cart messages whenever
177
- you're ready.
200
+ Next: restart your dev server (`npm run dev`) to pick up `.env`. Your
201
+ store works end-to-end. Ask me about analytics, notifications, or
202
+ abandoned-cart messages whenever you're ready.
178
203
  ```
179
204
 
180
205
  ---
@@ -223,11 +248,13 @@ If the fetch fails, fall back to the high-level intent using the MCP tools you h
223
248
 
224
249
  Briefly recap and ask if anything else is needed. One short sentence, not three follow-ups.
225
250
 
251
+ **If the sub-flow built or changed the storefront** (`/epicmerch-storefront`, `/epicmerch-orders`, `/epicmerch-products`, `/epicmerch-magic-checkout`, or a custom build), run the **Definition of Done** gate above before recapping — `/epicmerch-e2e` (or `/epicmerch-verify` fallback). Don't say "done" on anything that touched checkout without testing it live. (Pure config sub-flows like Razorpay/Stripe setup don't need the storefront e2e, but a quick `merchant_diagnose` confirms they took.)
252
+
226
253
  Examples:
227
254
 
228
255
  > "Razorpay is now live on your store. Want a Buy Now button too?" *(routes to `/epicmerch-magic-checkout`)*
229
256
 
230
- > "Storefront scaffolded. Restart your dev server (`npm run dev`) to load `.env`. Need anything else — payments, Shopify migration, analytics?"
257
+ > "Storefront scaffolded and end-to-end tested (product → cart → order all pass). Restart your dev server (`npm run dev`) to load `.env`. Need anything else — payments, Shopify migration, analytics?"
231
258
 
232
259
  ---
233
260