CtrlK
BlogDocsLog inGet started
Tessl Logo

report

Turn an exploration (threads, findings, charts) into a single Markdown report — note, blog post, executive summary, KPI dashboard, slide brief, or multi-section analytical report, with embedded charts.

64

Quality

78%

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

Fix and improve this skill with Tessl

tessl review fix ./py-src/data_formulator/analyst/skills/report/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

86%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.

The body is highly actionable with exact embed syntax and worked examples, a clearly sequenced workflow gated by the write_report committing action, and well-organized sections appropriate for a single-file skill. Minor conciseness tightening and the absence of an explicit validate/retry loop keep it just short of full marks on those two dimensions.

Suggestions

Consolidate the repeated 'inspect before calling write_report' instructions into one place to tighten conciseness.

Consider adding an explicit pre-commit self-check (e.g., verify every chart discussed is embedded and every chart_id is valid before calling write_report) to add a clear validation checkpoint.

Trim the six-item output-form list in the Style section if any formats are rarely requested, to further reduce token load.

DimensionReasoningScore

Conciseness

The body is mostly efficient with tight guardrails and concrete format specs, but a few sections repeat the inspect-before-write instruction ('do all chart/data inspection first' stated in multiple places) and the style list could be slightly trimmed.

4 / 5

Actionability

It gives copy-paste-ready guidance: the exact chart embed syntax '![Caption](chart://chart_id)', a concrete example '![Monthly trade balance trend](chart://chart-123)', and a literal markdown table example, covering the common cases the skill handles.

5 / 5

Workflow Clarity

The sequence is clear — inspect charts/data first, compose the full report, then commit by calling write_report (which ends the turn) — with the explicit checkpoint that the report is delivered 'as-is' after the call; it lacks an explicit validate-and-retry feedback loop, but the write_report tool is the validation gate so this is a minor gap rather than a missing checkpoint for a destructive op.

4 / 5

Progressive Disclosure

No bundle files exist (references/scripts/assets are absent), and for a single-file skill under ~120 lines the body is well-organized into clearly signaled sections (Emitting the report, Context, Ground the report, Inspecting charts, Write the report with sub-sections, Guardrails), satisfying the simple-skill exception for progressive disclosure.

5 / 5

Total

18

/

20

Passed

Description

71%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 specific and concrete about the many report forms it produces, but the description field omits an explicit 'Use when...' trigger clause, which the rubric caps at completeness 3. Trigger-term coverage is good but missing the most natural user phrasings.

Suggestions

Add an explicit 'Use when...' clause to the description itself (e.g., 'Use when the user asks to write up, summarize, or report on an exploration'), so completeness is not capped at 3 by relying on the separate when_to_use field.

Include natural user phrasings like 'write up' and 'summarize' as trigger terms in the description to raise trigger_term_quality.

State the negative boundary directly in the description ('Not for producing a single new chart') to strengthen distinctiveness.

DimensionReasoningScore

Specificity

Lists multiple concrete output forms ('note, blog post, executive summary, KPI dashboard, slide brief, or multi-section analytical report') plus the concrete action of producing 'a single Markdown report ... with embedded charts', giving comprehensive coverage of what the skill produces.

5 / 5

Completeness

The 'what' is clear and detailed, but the description field itself has no 'when' / 'Use when...' clause; per the rubric a missing explicit trigger guidance caps completeness at 3, even though a separate when_to_use frontmatter field exists.

3 / 5

Trigger Term Quality

Natural terms like 'report', 'note', 'blog post', 'executive summary', 'KPI dashboard', and 'slide brief' appear, but the description field lacks the common phrasings a user would say ('write up', 'summarize') and any explicit 'Use when...' trigger phrasing, so coverage is good but not comprehensive.

4 / 5

Distinctiveness Conflict Risk

The niche (turning an exploration into a Markdown report) is fairly distinct and the contrast with chart production is implied, but it could still overlap with general writing skills since the description field does not state the negative boundary ('not for producing a single new chart') explicitly.

4 / 5

Total

16

/

20

Passed

Validation

87%

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

Validation14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 3 suspicious

Warning

Total

14

/

16

Passed

Repository
microsoft/data-formulator
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.