CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

flask-project-starter

Scaffold a production-ready Flask 3.x application with application factory, Blueprints, SQLAlchemy, JWT auth, and Gunicorn deployment.

Quality

72%

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 ./backend-python/flask-project-starter/SKILL.md
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.

The body is highly actionable and efficient — complete, executable code for every layer of a Flask app — but it is a monolithic single-file skill with no progressive disclosure and a workflow whose validation checkpoints are implicit and whose scaffold/first-steps ordering is inconsistent. Splitting the pattern library into reference files and adding an explicit verification step would address the weakest dimensions.

Suggestions

Move the 'Essential Patterns' implementations (models, schemas, routes, auth, CLI, conftest, tests) and 'Integration Notes' into references/ files (e.g., references/patterns.md, references/integrations.md), keeping SKILL.md as an overview with well-signaled one-level-deep links.

Add explicit validation checkpoints to the workflow, e.g., '4. Run `pytest` and confirm 2 tests pass before starting the dev server' in First Steps.

Fix the ordering inconsistency: the Scaffold Command runs `flask --app src/app db init/upgrade` before any venv/dependency installation exists — defer the Flask CLI invocations to after the install step in First Steps.

DimensionReasoningScore

Conciseness

The body is code-dense with almost no concept explanation Claude already knows (e.g., no 'Flask is a microframework' prose), and comments like '# Load .env before reading any config — ... explicit is better than implicit' are purposeful. It is not anchor 5 because there is minor redundancy: migration commands appear in both 'Scaffold Command' and 'Common Commands', and the opening blockquote duplicates the frontmatter description verbatim. It is well above anchor 3's 'some unnecessary explanation'.

4 / 5

Actionability

Nearly everything is copy-paste-ready: complete pyproject.toml, full source files (config.py, extensions, factory, models, routes, auth, CLI, conftest, tests), and concrete commands ("gunicorn \"app:create_app()\" --bind 0.0.0.0:8000 --workers 4 --chdir src"). It falls short of anchor 5 on a minor gap: the 'Scaffold Command' runs `flask --app src/app db init` and `flask db upgrade` before any venv creation or dependency installation exists, so that block is not executable as ordered.

4 / 5

Workflow Clarity

'First Steps After Scaffold' provides a clear numbered 1-6 sequence, but validation checkpoints are missing or implicit — the only check is a final curl, with no 'run pytest' verification step. Additionally the sequence conflicts with the 'Scaffold Command', which invokes the Flask CLI before the First Steps install step. This matches anchor 3 ('sequence present but checkpoints missing or implicit') rather than anchor 4's 'most checkpoints present'.

3 / 5

Progressive Disclosure

Section headers are clear (Prerequisites, Scaffold Command, Project Structure, Key Conventions, Essential Patterns, First Steps, Common Commands, Integration Notes), but the ~430-line body inlines everything with zero bundle files: the full pattern implementations (models, schemas, routes, auth, CLI, tests) and the Integration Notes clearly belong in separate reference files. This matches anchor 3 ('some structure... content that should be separate is inline') rather than anchor 4, where most content would be appropriately placed in references.

3 / 5

Total

14

/

20

Passed

Description

70%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, stack-distinctive, and free of fluff, but it omits any 'Use when...' trigger guidance, capping completeness at 3. Adding an explicit trigger clause would raise both completeness and trigger-term coverage.

Suggestions

Append a trigger clause such as: 'Use when the user asks to create, scaffold, or bootstrap a Flask project, set up a Flask REST API with JWT auth, or deploy Flask with Gunicorn.'

Include natural user phrasings/synonyms like 'set up a Flask app', 'Flask boilerplate/starter', and 'Flask REST API' to broaden trigger-term coverage.

Consider naming the deployment target environment (e.g., 'Docker/Gunicorn production deployment') to sharpen the when-to-use boundary.

DimensionReasoningScore

Specificity

Quotes: "Scaffold a production-ready Flask 3.x application with application factory, Blueprints, SQLAlchemy, JWT auth, and Gunicorn deployment" names the domain plus several specific concrete components. It falls just short of anchor 5 because "scaffold" is the single action verb and the rest are included components rather than a comprehensive list of distinct actions, but it is well above anchor 3's '1-2 concrete actions'.

4 / 5

Completeness

The 'what' is explicit ("Scaffold a production-ready Flask 3.x application with application factory, Blueprints, SQLAlchemy, JWT auth, and Gunicorn deployment"), but there is no 'Use when...' clause or any equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. It is not 4 because the 'when' is entirely missing rather than merely imprecise.

3 / 5

Trigger Term Quality

Natural terms a user would say are present ("Flask", "SQLAlchemy", "JWT auth", "Gunicorn", "Blueprints"), matching anchor 4's 'good keyword coverage; a few natural terms missing'. It is not anchor 5 because common user phrasings like 'set up/create a Flask app', 'Flask boilerplate', or 'Flask REST API' are absent.

4 / 5

Distinctiveness Conflict Risk

The description pins a clear niche via "Flask 3.x", "Blueprints", "SQLAlchemy", "JWT auth", and "Gunicorn deployment" — a stack-specific trigger set with minimal overlap risk against other skills, matching anchor 5. It is not 4 because it does not merely overlap with 'closely related skills'; only another Flask starter could collide.

5 / 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.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (508 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

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

Warning

Total

14

/

16

Passed

Repository

achreftlili/deep-dev-skills

Path

backend-python/flask-project-starter/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.