CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

xlsx-skill

Unified read / write / stats / recalc / chart capability for Excel / CSV (.xlsx / .xlsm / .csv / .tsv). Trigger scenarios: reading cells, summarizing, grouping, highest/lowest values, total revenue, editing cell values or formulas, inserting rows/columns, adding total rows, inserting charts (bar/line/pie), freezing panes, auto-filter, conditional formatting, CSV ↔ XLSX conversion, building rosters / sales sheets / financial models, diagnosing #REF! / #DIV/0! formula errors, triggering recalculation. Typical phrasings: "who has the highest sales in this sheet", "total Q1 revenue", "change B2 to 500", "add a total row", "create a new roster", "convert csv to xlsx", "freeze the first row", "highlight negatives in column A red". Load this skill whenever the user mentions an .xlsx / .csv file or the final deliverable is a spreadsheet.

68

Quality

86%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

65%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, highly actionable skill body with real executable code and an honest limitations note about exceljs charts, but it is monolithic: five full demos inlined with zero progressive-disclosure references, a chart-rendering gap in a headline use case, and no explicit verify-after-write feedback loop despite destructive in-place rewrites. The read-first/write-second workflow is clear, yet the missing validation checkpoint caps workflow clarity.

Suggestions

Add an explicit post-write verification loop: after JsSandbox writes, re-run ExcelInspect(summary) or ExcelInspect(errors) on the output file and fix-and-retry (e.g. via JsSandbox edit-and-run) before reporting success — this addresses the destructive in-place rewrites like wb.xlsx.writeFile('sales_q1.xlsx').

Split the five demos into a references/ or examples/ bundle (e.g. examples/create-sheet.md, examples/csv-import.md) and keep a short quick-start plus tool table inline in SKILL.md, turning the monolith into a one-level-deep overview.

Complete the chart workflow (a listed trigger scenario): show or link the chartjs-node-canvas code that renders bar.png before the addImage embedding step, instead of "Assume bar.png was generated".

DimensionReasoningScore

Conciseness

The body is dense and assumes Claude's competence — no "what is Excel" or library tutorials — and the pitfalls table is high-value per token. However, ~213 lines with five full inline code demos shows minor over-length: demo 2.4 (manual CSV→XLSX code) largely duplicates the simpler "DocConvert(from='csv', to='xlsx')" path mentioned right below it, and demo 2.3 spends lines explaining what exceljs cannot do. This fits "efficient; minor instances of over-explanation that could be trimmed" rather than the every-token-earns-its-place anchor.

4 / 5

Actionability

Mostly executable, copy-paste-ready exceljs code covering creation, modification, conditional formatting, conversion, and error diagnosis, plus concrete tool invocations ("ExcelInspect { action: 'summary', filePath: '…' }", "JsSandbox(action='edit-and-run', scriptPath=…, edits=[…])") and a symptom/cause/fix pitfalls table. The one notable gap is the chart workflow — a headline trigger use case — where the core rendering step is waved off with "Assume bar.png was generated by chartjs-node-canvas", so the user must supply the missing code themselves. This is "mostly executable with minor gaps", not fully ready.

4 / 5

Workflow Clarity

The sequence is clearly laid out (read via ExcelInspect summary → drill into values/formulas/errors → write via JsSandbox → pitfalls), and pre-flight error checking exists ("Run ExcelInspect(errors) first"). However, the skill's write operations are destructive in place — demo 2.2 calls wb.xlsx.writeFile('sales_q1.xlsx') overwriting the input file — and there is no explicit post-write verification step (validate → fix → retry) after modification. Per the rubric, missing validation in destructive/batch workflows caps workflow clarity at 3.

3 / 5

Progressive Disclosure

Sections are clearly organized with headers, a tool table, and numbered sections, but the skill is a 213-line monolith with no references/, scripts/, or assets/ bundle: all five multi-try-line code demos are inlined in SKILL.md. Content that clearly belongs in separate files (the demo gallery, the pitfalls detail) sits inline with no external references at all — matching "some structure but content that should be separate is inline". The under-50-lines exception for a 5 does not apply.

3 / 5

Total

14

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is an exemplary trigger document: it explicitly states what the skill does and when to load it, enumerates concrete capabilities without fluff, and packs in natural user phrasings and all relevant file extensions. Third-person voice is used consistently, and the only conceivable criticism — that "Trigger scenarios" and "Typical phrasings" partially duplicate each other — is functional redundancy for trigger matching rather than padding.

DimensionReasoningScore

Specificity

The description lists many concrete, explicitly stated actions — "reading cells, summarizing, grouping, highest/lowest values", "editing cell values or formulas, inserting rows/columns, adding total rows, inserting charts (bar/line/pie), freezing panes, auto-filter, conditional formatting, CSV ↔ XLSX conversion", "diagnosing #REF! / #DIV/0! formula errors, triggering recalculation" — comprehensive coverage of the spreadsheet domain with no vague filler. Third person voice is used throughout ("Unified read / write / stats / recalc / chart capability"), so no voice penalty applies.

5 / 5

Completeness

Both questions are answered explicitly: the opening sentence states what the skill does ("Unified read / write / stats / recalc / chart capability for Excel / CSV"), and the closing sentence gives an explicit when-clause: "Load this skill whenever the user mentions an .xlsx / .csv file or the final deliverable is a spreadsheet." This matches the top anchor exactly.

5 / 5

Trigger Term Quality

Trigger terms include file extensions (.xlsx / .xlsm / .csv / .tsv) plus natural user phrasings such as "who has the highest sales in this sheet", "change B2 to 500", "freeze the first row", "highlight negatives in column A red" — comprehensive coverage including synonyms and the exact wordings users would naturally say.

5 / 5

Distinctiveness Conflict Risk

The skill occupies a clear niche — spreadsheet files with named extensions — and the load condition is gated on spreadsheet files or spreadsheet deliverables, minimizing conflict risk. Some generic-sounding phrases ("total Q1 revenue", "building rosters / sales sheets / financial models") could co-occur with data-analysis or SQL skills, but the explicit file-extension gate keeps them anchored to this niche; this is minimal, not minor-overlap, risk.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

itsablabla/openloaf-web

Path

apps/server/src/ai/builtin-skills/xlsx/en/SKILL.md

Reviewed

Table of Contents

Is this your skill?

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.