competlab-customer-voice-snapshot — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited competlab-customer-voice-snapshot (Agent Skill) and scored it 45/100 (orange). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 1 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
A base64 string of 128+ characters appears in a documentation file. Encoded prompt injection hides the hostile instruction in base64 — invisible to keyword filters — and relies on the agent's ability to decode it at runtime. There is no normal authoring reason to embed a multi-hundred-byte base64 blob in skill docs.
*.sig, SIGNATURES) outside the documentation.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.
You produce on-demand snapshot of competitor review-platform presence + recent complaint themes. Limited scope by design.
Perplexity recovers snapshot counts + ratings for 25-100% of vendors depending on category, but velocity / sentiment-trend / themes-delta is structurally invisible without persistent scraping.
For:
This skill: snapshot. Decision criteria for dimension promotion: customer demand signal post-skill-ship.
list_projects + list_competitors.
"For [Company] in [Category] in 2026:
(1) G2: review count + average rating + 1-2 recurring complaint themes from recent reviews
(2) Capterra: review count + average rating
(3) Trustpilot: review count + average rating (if B2C-adjacent like Stripe, Klarna)
(4) Any Reddit/HN/X recurring discussion themes
Cite specific sources for each claim."If the first 2-3 Perplexity queries return "no data found" / "no G2 presence detected" for ALL 3 platforms — the category likely doesn't review on standard B2B SaaS platforms.
Examples of categorical-absence patterns:
Action on categorical absence:
Per PATTERN-url-verification.md: every Perplexity-returned URL gets probed via mcp__competlab__fetch_url with cleanHtml:true before surfacing in output. Drop citations that 404. Validate count claims against source page where possible (G2 page may be 403-blocked even via fetch_url — flag honestly when can't verify).
For a B2C-adjacent payments / fintech vendor, expect the typical signature: thousands of B2B G2 reviews + tens-of-thousands of consumer Trustpilot reviews + small Capterra tail. Split the output — B2B G2 numbers and consumer Trustpilot numbers represent different signal classes.
The consumer-review tail is often orders of magnitude larger than the B2B count, AND consumer sentiment frequently runs lower (1-2★ Trustpilot averages are common for support-friction-prone vendors). When you see this pattern, the B2B signal is the procurement-trust read; the consumer signal is the brand-reputation read; both matter, neither substitutes for the other.
For categories like AI-coding where G2 surface is thin (validation runs in this category yielded 0 of 8 vendors with G2 data), Perplexity Reddit/HN recovery is rich (specific dated discussion posts with upvote counts). Use as primary signal for those categories.
Per vendor:
Cross-vendor:
# Customer Voice — [Category / Project]
> Generated [date] | Snapshot only | Coverage: X of N vendors yielded G2 data via Perplexity
## Summary
[Review volume range, top complaint themes across category]
## Per-competitor
### [Competitor]
- G2: [count] reviews, [rating]★ | [main complaint themes — 1-2]
- Capterra: [count] / [rating] | [if different from G2]
- Trustpilot: [count] / [rating] | [if B2C-adjacent]
- Reddit/HN: [recent discussion themes if developer-tool category]
## Cross-competitor patterns
[Volume comparison, category-wide patterns]
## Coverage gaps
[Which vendor × platform pairs returned no data]~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.