glebis/elimination-research
This skill should be used for elimination-style research where the user wants to choose from a shortlist of products, tools, services, vendors, or other options using explicit criteria, numeric evidence, tournament-style comparison, source/domain classification, image-supported consumer reports, raw data tables, and ownership-cost estimates for replaceable parts. Use this skill whenever the user asks to compare options, buy something, shortlist candidates, rank alternatives, generate a "don't make me think" report, or produce a full audit report with raw numeric data.
npx skills add https://github.com/glebis/claude-skills --skill elimination-research
Generate a reproducible elimination-research package: a shortlist dataset, numeric scoring model, quick consumer report, full audit report, raw data JSON, source/domain audit, purchase/info links, contextual images, and ownership-cost estimates.
Use this skill to turn fuzzy "which one should I choose?" requests into a clean decision workflow with explicit criteria and inspectable data.
Follow this sequence for new comparisons:
references/workflow.md for the full operating procedure.cenno popup questions when available. Use closed choices and include a free-text comment field.references/dataset-schema.md.scripts/generate_elimination_report.py to generate reports.Ask these at the start of a new comparison, not inside the final report:
Always include a comment field for constraints that do not fit the closed choices.
Produce these files in the chosen output directory:
quick_report.html — consumer-facing "don't make me think" report with cards/table switch, images in context, rounded prices, links, and visible ownership summaries.report.html — full audit report with task, criteria, scoring, raw numeric data, source/domain tables, tournament, and embedded JSON.report.md — markdown version of the full audit report.final_report.json — normalized report payload.raw_research_data.json — collected dataset before rendering.image_search_results.json — cached Google image-search output when image refresh is used.The quick report should keep numeric detail behind expandable evidence links, but the full report must expose all numeric data as tables.
Run the bundled generator from the skill directory:
python3 scripts/generate_elimination_report.py \
--dataset assets/examples/consumer_goods_dataset.example.json \
--output-dir /tmp/elimination-report \
--max-price-eur 200
Common options:
--dataset PATH Structured shortlist dataset JSON
--output-dir PATH Output directory
--max-price-eur NUMBER Purchase-price ceiling override
--price-limit-basis FIELD Usually device_price_eur or three_year_cost_eur
--question TEXT Override report task question
--market TEXT Purchase market/country
--currency TEXT Currency label
--domain-registry PATH Optional domain registry JSON
--refresh-images Refresh Google Custom Search image data
--image-results NUMBER Image results per candidate when refreshing
For Google Images, load keys only from environment variables or SOPS-encrypted dotenv files. Never commit plaintext keys. The image helper checks GOOGLE_CUSTOM_SEARCH_JSON_API_KEY, GOOGLE_CUSTOM_SEARCH_API_KEY, GOOGLE_CUSTOM_SEARCH_CX, and GOOGLE_IMAGE_SEARCH_ENV_FILE.
Read references/dataset-schema.md before creating or editing the dataset.
Key requirements:
device_price_eur.replacement_unit_price_eur, replacement_quantity_3y, replacement_interval_months, and replacement_part_name.item_links or source references so each item has 1-3 purchase/info links.For consumer reports:
For audit reports:
Before handing off:
python3 -m json.tool.quick_report.html and verify the card/table switch replaces the options view rather than stacking table below cards.report.html includes raw numeric columns for device price, replacement allowance, part unit price, interval, quantity, and three-year cost.Take glebis/elimination-research from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.