ecom — Claude Code skill: what it does, how to install
Analyzes D2C store order CSVs to diagnose revenue, retention, and product health issues.
npx skills add takechanman1228/claude-ecom --skill ecom -a claude-codeWhat ecom does
The skill evaluates ecommerce transaction data using an internal Python engine. It processes order CSV records across 30-day, 90-day, and 365-day periods. The engine calculates KPI trees and executes roughly 30 health checks across revenue, customer, and product categories. Input data must contain an order ID, order date, customer identifier, and net revenue.
Two execution modes are supported. For targeted questions about recent sales drops, the agent provides an inline answer of 10 to 30 lines. For a complete audit, it writes a structured REVIEW.md document with KPI status markers and a prioritized action plan.
The initial run bootstraps a private Python virtual environment inside ~/.local/share/claude-ecom/. That initial setup takes about a minute, while subsequent runs execute immediately.
What it helps with
- diagnose revenue drops across 30d, 90d, and 365d windows
- evaluate store health across roughly 30 automated checks
- generate a structured REVIEW.md report with KPI trees
- track repeat purchase rates and average order values
Example prompts for the agent
- /ecom review 90d
- Review our D2C store performance using orders.csv
- Why did our revenue drop last month based on orders.csv?
How to install ecom
1Skills CLI (Vercel)
npx skills add takechanman1228/claude-ecom --skill ecom -a claude-code2Manually: put the files in place
~/.claude/skills/ecom/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ecom/
1Skills CLI (Vercel)
npx skills add takechanman1228/claude-ecom --skill ecom -a codex2Manually: put the files in place
.agents/skills/ecom/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add takechanman1228/claude-ecom --skill ecom -a cursor2Manually: put the files in place
.cursor/skills/ecom/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install takechanman1228/claude-ecom ecom2Manually: put the files in place
.github/skills/ecom/SKILL.md1Skills CLI (Vercel)
npx skills add takechanman1228/claude-ecom --skill ecom -a gemini-cli2Platform CLI
gemini skills install https://github.com/takechanman1228/claude-ecom --path skills/ecomManually: put the files in place
.devin/skills/ecom/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add takechanman1228/claude-ecom --skill ecom -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about ecom
How to install ecom in Claude Code?
Run npx skills add takechanman1228/claude-ecom --skill ecom -a claude-code in your terminal.
What data does the order CSV need to contain?
Required columns include order ID, order date, customer ID or email, and net revenue before tax and shipping. Product SKU, quantity, and discount amounts are optional.
Why does the first run take longer than usual?
The engine bootstraps an isolated Python virtual environment under ~/.local/share/claude-ecom/. Setup takes about one minute, after which executions run instantly.
Source text
SKILL.md · MIT
---
name: ecom
description: >
Ecommerce business review for D2C stores from order transaction CSVs.
Runs the bundled Python engine (KPI trees, ~30 pass/watch/fail health
checks, 30d/90d/365d windows), then interprets the results: either a
full narrative business review written to REVIEW.md, or an inline
answer to a focused question.
when_to_use: >
Use for "ecommerce review", "store review", "store health", "business
review", revenue/customer/product analysis of an online store, or
questions over order data like "how was last month", "how's retention",
"why did revenue drop".
argument-hint: "review [30d|90d|365d] [question]"
allowed-tools:
- Read
- Grep
- Glob
- Write
- Bash(ecom *)
---
# ecom — Ecommerce Business Review Toolkit
D2C ecommerce analytics. The bundled Python engine computes KPIs, runs
health checks, and scores performance from order transaction data;
**you** (Claude) interpret the numbers and write the human-readable report.
**Key principle:** Python computes the numbers. Claude interprets them.
Never present raw numbers without business context.
**Arguments:** `$ARGUMENTS` (if empty, infer intent from the conversation)
## Mode Selection
| Arguments / intent | Mode | Output |
|---|---|---|
| empty or `review` | Full Review (auto-selects periods from data) | `REVIEW.md` |
| `review 30d` / `90d` / `365d` | Full Review, single period | `REVIEW_{PERIOD}.md` |
| contains a natural-language question | Focused Query | Inline answer, no file |
## Input
Order transaction CSV. Each row = one order or line item.
Required columns: order ID, order date, customer ID (or email), revenue
(after discounts, before tax/shipping). Optional: quantity, SKU/product,
discount amount. Column names are fuzzy-matched by the loader.
If no CSV is specified, Glob for `*.csv` in the working directory and ask
the user if multiple plausible candidates exist.
## Running the Engine
The `ecom` CLI is on PATH while this plugin is enabled:
```bash
ecom review orders.csv --output <output-dir>
ecom review orders.csv --period 90d --output <output-dir>
```
If `ecom` is not on PATH, use the bundled launcher with the same
arguments: `"${CLAUDE_SKILL_DIR}/../../bin/ecom"`. The first run
bootstraps a private Python venv under `~/.local/share/claude-ecom/`
and may take a minute; later runs are instant.
Output: `review.json` (or `review_{period}.json` for `--period` runs)
in the output directory (defaults to current directory).
## Workflow
### Phase 1: Compute (Python)
Run the engine (add `--period` per Mode Selection). It computes, per
available period: summary KPIs with prior-period comparison, a
new-vs-returning KPI tree, revenue driver decomposition (AOV / volume /
mix), and — for 365d — repeat purchase rate and a 12-month
monthly_trend. It also evaluates ~30 health checks across Revenue,
Customer, and Product; each returns pass / watch / fail and powers the
🟢/🟡/🔴 markers.
### Phase 2: Interpret (you — Claude)
**Full Review:**
1. Read `review.json` (see Data Rules below; full schema in
[review-schema.md](references/review-schema.md))
2. Read [report-format.md](references/report-format.md) — REQUIRED
before writing; contains all section templates and Finding Quality
Standards
3. Read [review-narratives.md](references/review-narratives.md) to pick
the narrative arc
4. Load other references as needed (table below)
5. Write `REVIEW.md` (or `REVIEW_{PERIOD}.md`) satisfying the Report
Contract below
**Focused Query:**
1. Read [focused-query.md](references/focused-query.md) — REQUIRED;
contains the query-to-period mapping and answer format
2. Run the engine per that mapping, read the JSON, answer inline
(10-30 lines). Do NOT write a file.
Your job is to weave trends and diagnostics into one coherent story.
Period analysis tells you *where things are heading*; health checks tell
you *what's broken right now*. The report combines both.
## Report Contract (Full Review)
Before writing, verify the report will contain ALL sections in this
exact order. Missing or reordered sections are a format violation.
1. [ ] Executive Summary — narrative blockquote (4-6 lines) + Scoreboard table
2. [ ] 30d Pulse section (if data available) — KPI tree + max 1 finding
3. [ ] 90d Momentum section (if data available) — KPI tree + drivers + max 2 findings
4. [ ] 365d Structure section (if data available) — KPI tree + drivers + max 3 findings
5. [ ] Action Plan — max 5 items grouped by time horizon + Guardrails (REQUIRED)
6. [ ] Data Notes — 2-4 lines
Hard rules:
- Target ~150 lines total; 5-7 findings max across all periods; never
repeat a finding across periods
- Sections in this order; do NOT reorganize by theme; no standalone
"What's Working Well" / "Issues to Address" sections — positive
signals live in the Executive Summary and KPI tree markers
- Every period section uses the KPI tree format with 🟢/🟡/🔴 markers
- Every finding follows **What is → Why it matters → What to do**
(quantitative fact → data-backed tension → direction; "consider",
"improve", "optimize", "explore" are banned)
- Action Plan is the single source of truth for deadlines and success
metrics, and ends with Guardrails (2-3 must-not-deteriorate metrics)
Templates, examples, and the full quality standards are in
[report-format.md](references/report-format.md).
## Reference Files
Load on-demand — do NOT load all at startup. Paths are relative to this
skill's directory.
| File | When to load |
|---|---|
| [report-format.md](references/report-format.md) | Every Full Review, before writing |
| [review-narratives.md](references/review-narratives.md) | Every Full Review — narrative arc by health level and trajectory |
| [focused-query.md](references/focused-query.md) | Every Focused Query |
| [review-schema.md](references/review-schema.md) | When review.json semantics are unclear |
| [finding-clusters.md](references/finding-clusters.md) | Full Review — to group related issues into themes |
| [recommended-actions.md](references/recommended-actions.md) | When turning watch/fail checks into actions |
| [impact-formulas.md](references/impact-formulas.md) | When estimating revenue impact |
| [health-checks.md](references/health-checks.md) | When a check's definition/threshold is unclear |
| [benchmarks.md](references/benchmarks.md) | When comparing KPIs to D2C benchmarks |
## Data Rules
- **review.json only.** All numbers MUST come from review.json or be
derived from its values. Never reference external sources (Shopify
Analytics, GA, ...). Recommending an external investigation as an
action is allowed; quoting numbers from one is not.
- `periods` contains only the periods listed true in `data_coverage`;
all `_change` fields are proportional vs the prior period (0.08 = +8%).
- `health.top_issues` is the pre-sorted subset of failing checks;
`action_candidates` are Python's suggestions — refine and rewrite them
in business language, never copy verbatim.
- Never expose internal check IDs or check counts in the report.
- When `data_quality` is non-empty, mention relevant warnings in Data
Notes, and do not present partial-month MoM as real performance signals.
## Incomplete Data
- Omit what you can't measure. No N/A, no empty sections, no apologies.
- Shorter data = shorter report. Gaps are noted in Data Notes only.
## Language
Write the entire report (including Data Notes) in ONE language — match
the user's prompt/store language.
## Quality Gates
- Never present numbers without interpretation — always explain why
- Business language, not jargon; explain terms on first use
- Connect related findings into systemic patterns
- 80/20 rule: ~80% confirmation (builds trust), ~20% surprise (drives action)
- No numeric scores, letter grades, or percentage health ratings —
pass/watch/fail signals only
© takechanman1228 · MIT · takechanman1228/claude-ecom