Investigate a candidate library, dependency, or file format against a fixed question set and end with exactly one cited recommendation (adopt / keep_current / reject / needs_more_research) -- never "it depends." Validates the structured output against a JSON schema before writing a human-readable finding. Use when choosing between candidate npm packages, dependencies, or file formats for a specific integration point, or when a plan or ADR decision hinges on an unverified factual claim about a library (does it escape by default, does it bundle cleanly, is it maintained). Do NOT use for one-line version lookups, purely subjective preference calls with no verifiable claim, or a technology choice already settled by an existing ADR -- supersede the ADR instead. Triggers: "evaluate this library", "investigate this dependency", "compare X vs Y", "properly evaluate this technology", "which format should we use", "is this package maintained".
73
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Investigate a candidate library, dependency, or file format against a fixed question set, and end with exactly one verifiable recommendation -- never "it depends." A production decision recorded without cited evidence is a guess, not a finding; this skill exists to close that gap. Produces a schema-validated structured record plus a human-readable write-up in the project's dated findings directory (see Finding Record Layout for the exact path and shape).
create-context-file skill to persist the human-readable finding, and the context-index
skill to regenerate the index afterwards -- do not run this evaluation if neither is available in the current
environment.A verdict without a cited source is a guess, not a finding -- the schema enforces at least one piece of evidence
per question for exactly this reason. needs_more_research is a legitimate recommendation when the evidence is
genuinely inconclusive, but it MUST NEVER be used to avoid picking a side when the evidence already points one
way. One recommendation, not a comparison table with no conclusion: the point of this skill is to convert
"it depends" into a decision someone can act on in production.
usage/usage-rs vs. clap, recorded in a dated plan under .context/plans/).Fix the question set. By default, use five dimensions (correctness, integration_fit, footprint,
maturity, practical_fit); PREFER substituting or adding a dimension when the default five don't fit the
technology under review (e.g. a file-format choice may need a tooling dimension instead of integration_fit).
The schema requires at least one question, not exactly five, so adapt this UNLESS the default set already
covers the decision.
Dispatch a research subagent (foreground -- the result is needed before continuing). Give it:
Cargo.toml pin, the mise.toml toolchain, an existing call site) without reading
the actual source first -- a generic claim about "how a crate usually behaves" is not evidence about this
project's actual dependency graph or toolchain.assets/templates/tech-evaluation-scaffold.yaml, and an instruction to write its output as
YAML matching that shape to a path you specify.adopt / keep_current /
reject / needs_more_research, with a non-hedging rationale and a single imperative next action.Run the validator and check its exit code before trusting the YAML:
scripts/validate-tech-evaluation.sh <path-to-yaml>
# exit 0 → schema-valid, safe to render into a finding
# exit 1 → missing evidence, an out-of-enum verdict, or a too-short rationaleIf validation fails, send the YAML back to the subagent rather than manually patching it into shape -- a pitfall this schema exists specifically to catch.
Render the human-readable finding with the context-file skill (type: FINDING, dated and filed under the
project's findings directory). See Finding Record Layout for the exact
path convention and section layout expected.
Regenerate the context index (context-index skill) so the finding is discoverable, and confirm the new
file is present in the regenerated index before reporting the evaluation as complete.
If the evaluation feeds a plans decision or an ADR, link the finding from there via related: -- this skill
produces evidence, not a decision record in its own right.
NEVER accept a recommendation with an empty or single-word rationale.
WHY: The schema's minLength on rationale exists because "it's better" is not a rationale -- it gives the
next reader nothing to check the reasoning against.
# BAD
rationale: "seems fine"
# GOOD
rationale: >
X does not pull in a runtime dependency on libclang (confirmed from its Cargo.toml), unlike the
alternative, which would break the project's cross-compilation targets in mise.toml.NEVER let a subagent answer from memory when the claim concerns this repository.
WHY: A generic claim about "how crate X usually behaves" is not evidence about this project's actual
Cargo.toml dependency graph or mise.toml toolchain -- verify against the real files, not training data.
BAD: Trusting "crate X is pure Rust, no native deps" without checking.
GOOD: Instructing the subagent to read the actual Cargo.toml/Cargo.lock and cite the file/line.
NEVER skip the schema validation step because the YAML "looks right."
WHY: The validator catches exactly the failure modes a rushed read misses.
GOOD: ALWAYS run validate-tech-evaluation.sh before rendering the human-readable finding.
| Topic | Reference | When to Use |
|---|---|---|
| Question dimensions in depth, with worked examples per dimension | Question Dimensions | Choosing or substituting a dimension for an unusual technology (file format, spec, protocol) |
| Finding record layout, section-by-section | Finding Record Layout | Rendering the human-readable write-up in step 4 |
| Template | assets/templates/tech-evaluation-scaffold.yaml | Structuring the subagent's YAML output |
| Schema | assets/schemas/tech-evaluation.schema.json | Understanding what the validator checks |
| Validation script | scripts/validate-tech-evaluation.sh | Running step 3 |
This skill follows the repository convention of YAML template + JSON Schema + validation script for structured
artifacts (see plan-review's review-report trio for the precedent this one is modelled on).
a1083f4
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.