CtrlK
BlogDocsLog inGet started
Tessl Logo

imperative-to-declarative-flet

Convert an imperative Flet Python app in which controls are mutated and then page.update is called to declarative style using flet.component, flet.observable and state hooks.

64

Quality

77%

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 ./.agents/skills/imperative-to-declarative-flet/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

87%

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

A tight, highly actionable porting guide with executable fragments and clean organization; its main gap is the absence of an explicit verification step to confirm the declarative copy matches the original app's behavior.

Suggestions

Add a final workflow step to verify the port: run the new folder and confirm routing, dialogs, and assets behave like the original imperative app, with a fallback to re-check route_change/state wiring if they diverge.

Consider an explicit checklist mapping each original page.update() call site to its declarative replacement so none are missed during the port.

DimensionReasoningScore

Conciseness

Lean and dense throughout: no padding or explanation of concepts Claude already knows, assumes competence, and every section earns its tokens with specific guidance.

3 / 3

Actionability

Provides real, executable Python fragments (ft.run(lambda page: page.render(App), assets_dir=…), page.fonts dict, getattr/isinstance route pattern) rather than pseudocode, at the right granularity for a refactor guide.

3 / 3

Workflow Clarity

A clear 6-step sequence with a 'Common pitfalls (and fixes)' recovery section, but no explicit verification checkpoint (e.g. run the ported app and confirm behavioral parity with the original).

2 / 3

Progressive Disclosure

A single self-contained file with well-organized sections (Outcomes, state strategy, workflow, pitfalls) and no nested or dangling references; appropriately flat for a skill of this size with no bundle files.

3 / 3

Total

11

/

12

Passed

Description

67%

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

A specific, well-scoped description that clearly conveys what the skill does and occupies a distinct niche, but it lacks an explicit trigger ('Use when…') clause and relies on API names rather than natural-language variations users would say.

Suggestions

Add an explicit 'Use when …' clause, e.g. 'Use when porting or refactoring a Flet Python app from imperative page.update style to components mode.'

Broaden trigger terms with natural phrasings users would actually say ('Flet app', 'components mode', 'port', 'refactor', 'hooks'), not only API names.

Keep the concrete mechanism phrasing (controls mutated + page.update) as it strongly aids distinctiveness.

DimensionReasoningScore

Specificity

Names the domain (Flet Python app), the transformation (imperative→declarative), the mechanism (controls mutated then page.update called), and concrete target APIs (flet.component, flet.observable, state hooks) — multiple specific actions in third person.

3 / 3

Completeness

Clearly answers 'what' (convert imperative Flet app to declarative) but provides no explicit 'Use when…' trigger guidance, so 'when' is only implied — capping completeness at 2 per the guideline.

2 / 3

Trigger Term Quality

Contains relevant domain terms (Flet, imperative, declarative, page.update) but leans on API names and omits common natural-language variations a user might say (e.g. 'components mode', 'port', 'refactor').

2 / 3

Distinctiveness Conflict Risk

A narrow, specific niche (Flet imperative→declarative porting) with distinct technical triggers that make it very unlikely to fire for the wrong skill.

3 / 3

Total

10

/

12

Passed

Validation

93%

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

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository
flet-dev/flet
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.