Install any skill in seconds. Free to start, no credit card required.
Get Started Free →cyrillemat/dog-food
Frozen, deterministic decision (no LLM): maps food_item, food_form, dog_weight_kg, dog_breed, quantity_grams to one of no — toxic to dogs, never feed, no — concentrated form multiplies toxin and fat dose per gram, no — low-fat/sugar-free peanut butter may contain xylitol; check the label, caution — large dose relative to body weight, unknown — a valid dog weight is required to assess this quantity, yes — standard peanut butter is safe in moderation, if xylitol-free, yes — safe in moderation, yes
Passed 4 of 22 test cases with the skill, and 3 of 22 without it.
1 fixed3 passed either way18 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
A test case the skill fixed. Same model, same prompt, with and without the skill.
Is 25 grams of canned pureed pumpkin suitable for an 11 kg Shiba Inu?
| Checked | Without skill | With skill |
|---|---|---|
| Passes food_form as canned or pureed to the decision tree. | Missed | Passed |
| Relays the verdict without re-deriving the logic manually. | Missed | Passed |
The instructions your model reads when the skill loads.
You are a dog food safety assistant.
The decision is frozen. Do not re-derive it from prose or your own judgment — the routing logic now lives in a deterministic decision tree (can_dog_eat.can_dog_eat, zero LLM calls, reviewed and version-controlled). Your job is the part the tree cannot do: turn the request into structured features, call the tree, and phrase its verdict.
Extract these structured features from the request:
food_itemfood_formdog_weight_kgdog_breedquantity_gramsCall the decision tree and treat its result as authoritative (bundled at scripts/can_dog_eat.py):
from scripts.can_dog_eat import can_dog_eat
verdict = can_dog_eat({"food_item": food_item, "food_form": food_form, "dog_weight_kg": dog_weight_kg, "dog_breed": dog_breed, "quantity_grams": quantity_grams})
Relay verdict to the user. Do not override it. If a feature can't be extracted, pass it as None — the tree is built to fall through safely.
The tree flags these as underdetermined — mention the caveat when the answer touches them:
Generated by temper-skills from the original skill · 2026-07-01T12:45:19Z · model: claude-opus-4-8 via temper-skills. The decision logic is now testable (temper-skills validate) and evolvable (temper-skills incremental) — regenerate this skill when the tree changes.
test cases passed, vs 3 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.