analyzing-dtc-stores — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited analyzing-dtc-stores (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Produces an investor-grade teardown of a DTC brand from its public URL. Read-only — never writes to the store, sends email, or posts anywhere.
store_url — brand's primary storefront.depth — quick | standard (default) | deep.focus — free-text bias (e.g. "supply chain", "acquisition target fit").--no-save — return the report inline and skip saving.store_url, depth, focus, --no-save.brand_slug from the domain (e.g. brandname.com → brand-name).assets/report-template.md to a working draft. Do not save to the final path yet.Run scripts/recon.py --url <store_url> to fetch homepage, robots.txt, sitemap, JSON-LD, and detect platform + apps (Shopify/Klaviyo/Gorgias/Recharge/Triple Whale signatures). Output cached in .cache/recon-[slug].json. Feeds the Tech Stack and Agentic Readiness sections.
Load references/sources-playbook.md — required reading, it maps each report section to prescribed sources.
Run every applicable script. Fail gracefully: if a source is unreachable, log [source unavailable] in the report's Sources section and continue — never halt.
Mandatory scripts (all depths):
scripts/meta_ad_library.py --brand <brand> — active ad count, creative lifespan distribution.scripts/importyeti_lookup.py --brand <brand> — supplier + country-of-origin + shipment volume. Mandatory — the #1 skipped source.scripts/similarweb_lookup.py --domain <domain> — traffic with the 50K/mo accuracy floor flag.scripts/store_leads_lookup.py --domain <domain> — Shopify plan, app stack, revenue bracket.scripts/reviews_scan.py --brand <brand> --domain <domain> — Trustpilot + Amazon + YouTube review URLs.scripts/reddit_search.py --brand <brand> — Reddit sentiment via OpenAI web search (requires OPENAI_API_KEY). Returns structured JSON: thread_count, sentiment, top_praise_theme, top_complaint_theme. "0 threads" is a valid finding — log it in §10.Additional for `standard` and `deep`:
scripts/amazon_bsr.py --brand <brand> — BSR + est. monthly unit sales for top SKUs.For the reasoning steps (brand story, competitive strategic group, verdict framing) use WebSearch + WebFetch directly.
Read references/unit-economics-benchmarks.md for category COGS / CAC / LTV ranges. Run scripts/unit_econ.py --category <cat> --aov <aov> --cac <cac> to produce a CM1 → CM2 → CM3 waterfall. Every figure must carry stated assumptions and a ~ (est., method: …) prefix.
Fill the 16-section template in order. Principles:
[1][2] — the Sources section at the end is the numbered index.For depth=deep: after the draft, present three alternative verdict framings (bull, bear, contrarian) and let the user pick before finalising.
Run scripts/validate_report.py --path <draft>. The script fails loud with a remediation list if:
~.revolutionary, disruptive, game-changing, cutting-edge, seamless, unparalleled).Fix every failure and re-run. Do not proceed to Step 7 until the validator exits 0.
Run scripts/save_report.py --path <draft> --slug <brand_slug> (honors --no-save). Returns the final path. Then output to chat: final path + a 5-bullet executive summary (≤120 words total).
Ask the user exactly once: "Any corrections to this teardown before I log it?"
Route the response:
references/learnings.md.references/edge-cases.md.assets/approved-examples/.Style: crisp, evidence-led, numerate, slightly sceptical. Voice of a senior analyst writing for a partner with 10 minutes. Length: 1,500–3,000 words for standard.
~ (est., method: …) and show the math.importyeti_lookup.py has run; a "no shipment records found" result still counts.references/ — load on demand, don't embed.references/sources-playbook.md is required reading at Step 3. Not optional.scripts/validate_report.py is a hard gate at Step 6. Not optional.quick depth — a "no records found" entry is an acceptable result, silence is not.revolutionary, disruptive, game-changing, cutting-edge, seamless, unparalleled.<!-- Built with Agent Engineer Master — get your own production-ready skill: www.agentengineermaster.com/skill-engineer -->
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.