CtrlK
BlogDocsLog inGet started
Tessl Logo

sn-ppt-creative

Creative-mode PPT pipeline. One full-page 16:9 PNG per slide. LLM / VLM calls go through sn-ppt-standard/lib/model_client.py (shared thin client). Text-to-image (the actual png rendering) goes through sn-image-base/scripts/sn_agent_runner.py. Falls back to web image search when T2I generation fails. Expects task_pack.json + info_pack.json already written by sn-ppt-entry.

40

Quality

57%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/sn-ppt-creative/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

70%

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 a well-sequenced, validated workflow and copy-paste-ready code for every stage. Its main weaknesses are some repeated guidance that could be tightened and a set of prompts/ references that point at files not present in the bundle, which breaks progressive disclosure.

Suggestions

Add the missing prompts/ directory (style_from_query.md, style_from_image.md, outline.md, page_prompt.md) or inline the prompt scaffolding so the referenced sys-prompt files actually exist.

De-duplicate the call-routing policy (it appears as a table, inline prose, and Hard Rules #3/#4) into a single authoritative section.

Consider moving the long negative-prompt string and Stage 5/6 behavioral notes into a references/ file to reduce the inline weight while keeping the SKILL.md overview navigable.

DimensionReasoningScore

Conciseness

The body is largely efficient and assumes competence (executable inline python3 -c blocks, terse tables), but it repeats routing rules across the routing table, the Hard Rules, and inline caveats, and includes some restated guidance ('Never mix…') that could be tightened, matching the level-2 'mostly efficient but could be tightened' anchor.

2 / 3

Actionability

Provides fully executable, copy-paste-ready code and commands for every stage (python3 -c blocks importing model_client, sn_agent_runner.py invocations, build_pptx.py, resume_scan.py), each with concrete flags and example output, matching the level-3 'fully executable; copy-paste ready' anchor.

3 / 3

Workflow Clarity

Stages 2–6 are explicitly sequenced with a resume-scan dispatch table, per-page action dispatch, explicit validation checkpoints (assert page_count, JSON parse guards, resume re-entry), and clear failure/feedback handling ('record, echo, continue'; re-validate via resume), matching the level-3 clear-sequence-with-validation anchor.

3 / 3

Progressive Disclosure

The body references $SKILL_DIR/prompts/style_from_query.md, style_from_image.md, outline.md, and page_prompt.md as essential sys-prompt sources, but no prompts/ directory exists in the bundle — the references are dangling rather than one-level-deep and clearly signaled, matching the level-1 'poorly organized / missing referenced files' case.

1 / 3

Total

9

/

12

Passed

Description

45%

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 about what the pipeline does and its component boundaries, but it is written in technical jargon with no 'Use when...' trigger guidance, hurting trigger-term quality and capping completeness. Adding a natural-language trigger clause (e.g., 'Use when the user wants a creative-style PPT with one generated image per slide') would materially improve it.

Suggestions

Add an explicit 'Use when...' clause naming natural user terms such as 'PPT', 'presentation', 'slides', '创意 PPT', '生成 PPT' so the skill triggers on real user phrasing.

Move the deep implementation details (model_client.py, sn_agent_runner.py paths) out of the description and into the body; keep the description at the capability/trigger level.

State the trigger language the user would actually say (e.g. 'creative-style slides', 'one image per slide') to improve distinctiveness against the sn-ppt-standard skill.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'One full-page 16:9 PNG per slide', LLM/VLM via model_client, T2I via sn_agent_runner.py, 'Falls back to web image search when T2I generation fails' — matching the level-3 anchor of several specific concrete actions.

3 / 3

Completeness

Clearly answers 'what' (creative PPT pipeline producing per-slide PNGs), but 'when' is only implied via the entry-skill dependency and lacks an explicit 'Use when...' trigger clause, so per the judging guideline completeness is capped at 2.

2 / 3

Trigger Term Quality

No natural user-facing keywords ('PPT', 'presentation', 'slides', '生成 PPT') appear; the description is dominated by technical jargon ('model_client.py', 'sn_agent_runner.py', 'task_pack.json'), matching the level-1 anchor of no natural keywords / technical jargon.

1 / 3

Distinctiveness Conflict Risk

It targets a specific niche (creative-mode PPT generation) and notes the sn-ppt-standard/s sn-ppt-entry split, but its jargon-heavy phrasing and absence of natural triggers mean it could still overlap with sibling sn-ppt-* skills, matching the level-2 'somewhat specific but could still overlap' anchor.

2 / 3

Total

8

/

12

Passed

Validation

81%

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

Validation13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

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

Warning

Total

13

/

16

Passed

Repository
OpenSenseNova/SenseNova-Skills
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.