BC جاك العلم
Personal Shopper — multi-agent product/service research and recommendation for Saudi Arabia. USE WHEN: - User asks to find, compare, recommend, or buy a product or service - "what's the best X", "compare X vs Y", "find me a good X" - "أبغى أشتري", "وش أفضل", "قارن لي", "ابحث لي عن" - User asks "is this a good deal" or "should I buy X or Y" - Product comparison by specs, price, or value DON'T USE WHEN: - Market analysis for business entry → use mckinsey-research - Comparing companies as businesses (not products) → use mckinsey-research - Price tracking over time or deal alerts → not supported - Reviewing/troubleshooting a product they already own → answer directly - Simple factual question about a product ("how much RAM does iPhone have") → answer directly - Order placement, returns, or refunds → not supported EDGE CASES: - "أبغى أشتري لابتوب" → this skill - "أبغى أفتح متجر لابتوبات" → mckinsey-research (business, not purchase) - "وش أفضل شاشة" → this skill - "وش حجم سوق الشاشات" → mckinsey-research - "هل السعر هذا حلو على أمازون" → this skill - "حلل لي سوق التجارة الإلكترونية" → mckinsey-research - "قارن لي بين منتجين" → this skill - "قارن لي بين شركتين" → mckinsey-research INPUTS: Product type or name, budget (optional), use case (optional), preferences (optional) TOOLS: sessions_spawn (sub-agents), web_fetch, web_search, camofox_* (with strict limits per agent) OUTPUT: HTML report saved to shopping-reports/{date}-{slug}.html (Arabic, RTL, mobile-friendly) SUCCESS: User gets 3 ranked options with verified prices, source URLs, coupons, and a clear recommendation
Personal Shopper — multi-agent product/service research and recommendation for Saudi Arabia.
As a process C 51/100 · Has gaps — weak spots: result and completion, inputs and preconditions, consistency
How to improve
- Shorten the description to 1024 characters.
- The SKILL.md body is over 5,000 tokens: move reference detail into references/ and load it when needed.
- Your own cases (evals/evals.json, 4–6 real requests with expected answers): the full check would then run those instead of a model-drafted suite.
- A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.
Guard findings · 0
✓ No critical or high findings
Files scanned: 7. Evidence is masked. Grey chips explain why severity was lowered.
Against the Agent Skills spec
- error
description-longdescription is 1593 chars, limit 1024 - warning
name-formatname should be kebab-case (lowercase letters, digits, hyphens) - warning
body-longSKILL.md body ≈ 7309 tokens (recommended < 5000); move details to references/ - note
description-budgetdescription takes 1593 of the ~15000-char shared budget for all skills - note
frontmatter-keyunknown frontmatter key "trigger" - note
frontmatter-keyunknown frontmatter key "locale" - note
frontmatter-keyunknown frontmatter key "region" - note
frontmatter-keyunknown frontmatter key "currency" - note
frontmatter-keyunknown frontmatter key "output" - note
frontmatter-keyunknown frontmatter key "output_dir" - note
frontmatter-keyunknown frontmatter key "always" - note
frontmatter-keyunknown frontmatter key "security"
Process rating: all ten parameters 51/100
- 0Result and completion. Does not say what the result is
- 0Inputs and preconditions. Does not say what the process needs to start
- 0Progress reporting. Says nothing while it works
- 40Consistency. Frontmatter name (جاك العلم) differs from the folder (personal-shopper)
- 50When it triggers. No condition that starts the skill
- 60Tools and files. Uses tools (bash, read, web) that frontmatter does not declare
- 70Execution cost. Instruction body is 7309 tokens
- 85Steps. 105 steps, 1 vague phrases
- 100Failures and branches. 1 branches, has a failure section
- 100Running it twice. Mutating operations check current state
- medium Safety rules and hard prohibitions inside a skill: they belong in the system prompt, here they protect nothing
- low 15 top-level sections: this looks like several domains in one skill
Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.
Quality signals
- +3Description length 1592: 120–800 characters recommended
- +3Output format is not stated: the model decides each time
- +1No license
- +2Single-language instructions
- +5Description quotes 18 example trigger phrases
- +4Description says when NOT to use the skill
- +4Structure: 48 headings
- +3Step-by-step instructions: 105 items
- +4Has examples (23 code blocks)
- +4Reference files are cited in the instructions (2 of 6)
Quality base 70; lint remarks subtract, signals add up to 100. Result: 48.