.agents/skills/compare/SKILL.md
Domain-aware comparative analysis with clear recommendations. Compares options across auto-detected or user-specified dimensions and produces a qualitative assessment with a clear winner.
npx skillsauth add tkstang/open-agent-toolkit compareInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Domain-aware comparative analysis that evaluates two or more options across auto-detected or user-specified dimensions and produces a qualitative assessment with a clear winner.
Use when:
Don't use when:
Parse from $ARGUMENTS:
Print this banner once at start:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
/compare
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Then print step indicators before beginning work:
[1/5] Parsing arguments…[2/5] Classifying domain…[3/5] Researching options…[4/5] Scoring and ranking…[5/5] Producing output…For long-running operations (web fetches, registry lookups), print a start line and a completion line:
→ Researching {item}…
→ Complete.
Keep it concise; don't print a line for every shell command.
[1/5] Parsing arguments…
Parse from $ARGUMENTS:
If fewer than 2 items are provided, ask the user for clarification:
AskUserQuestionThe prompt should ask: "Please provide at least 2 items to compare."
If --context is specified:
.md files and incorporateContext shapes dimension selection and evaluation focus but does not replace the skill's methodology.
If --context is not specified, skip this step.
[2/5] Classifying domain…
Classify the comparison domain based on the items provided to determine default evaluation dimensions:
| Domain | Default Dimensions | | ------------------------ | -------------------------------------------------------------------------------- | | npm packages | bundle size, API ergonomics, maintenance health, TypeScript support, performance | | architectural approaches | tradeoffs, constraints, operational complexity, team fit | | business strategies | cost, risk, reach, timing | | tools/apps | feature set, pricing, integration ecosystem, UX | | general | auto-detected from item characteristics |
Dimension override rules:
--dimensions, use those instead of defaults.--context was provided, let context criteria influence dimension selection (add or reweight dimensions as appropriate).[3/5] Researching options…
For each item, research against each dimension using available sources:
Print progress for each item:
→ Researching {item}…
→ Complete.
[4/5] Scoring and ranking…
[5/5] Producing output…
Inline output (default):
Condensed comparison with:
Artifact output (--save flag):
Write artifact using the comparative extended schema from .agents/skills/deep-research/references/schema-comparative.md:
Include artifact frontmatter contract:
---
skill: compare
schema: comparative
topic: '{item1} vs {item2} [vs ...]'
model: { self-detected model identifier }
generated_at: { today's date }
---
Model-tagged filename: {topic}-{model-id}.md (e.g., express-vs-koa-opus-4-6.md)
Output destination resolution (only when --save is specified):
If an explicit output path was provided in $ARGUMENTS, use it directly — no prompt.
Otherwise, determine a default suggestion using OAT-aware detection:
.oat/ at repo root (project-level OAT) → suggest .oat/repo/analysis/~/.oat/ (user-level OAT) → suggest ~/.oat/analysis/Then ask the user via AskUserQuestion (Claude Code), structured user-input tooling (Codex), or equivalent:
"Where would you like to write the comparison? (default: {suggested path})"
When /compare is dispatched as a sub-agent from /deep-research or /analyze:
comparative schema FORMAT but returns output INLINE to the orchestrator (no file write, no model-tagged filename)--save flag is NOT used in sub-agent mode/compare react vue
/compare express koa fastify --save
/compare "event sourcing" "CQRS" "traditional CRUD" --context requirements.md
/compare zustand jotai valtio --dimensions "bundle size, learning curve, devtools"
Only one item provided:
AskUserQuestion (Claude Code), structured user-input tooling (Codex), or plain text (fallback)Domain unclear:
--context file not found:
Web search unavailable:
--save produces model-tagged filename with artifact frontmatter--context correctly incorporated when provideddocumentation
Use when OAT implementation changes and repository reference docs must be synchronized. Updates .oat/repo/reference to match current behavior.
business
Merge multiple analysis artifacts into a single coherent report with provenance tracking. Reads existing artifacts from /deep-research, /analyze, and /compare.
testing
Use when the user questions or suspects an agent claim is wrong. Adversarially gathers evidence to verify or refute the claim using the best sources available in the current environment.
tools
Use when prioritizing backlog work or evaluating a roadmap. Produces value-effort ratings, dependency mapping, and execution recommendations.